e1732a364fed
|
4e700d7475
|
重构advLayer代码,完全使用通用接口.
|
2022-04-27 19:56:13 +08:00 |
|
e1732a364fed
|
f28f0d0bee
|
修订代码, 默认loglevel 改为 Log_info.
对一般用户而言,还是需要使用Info等级 来了解一下 一般的 日志情况,等到使用熟练之后,且确认运行没有错误后, 可以自行调为 warning 来提升性能
发现 bubble包 还自己引入了 命令行参数,这十分不可取,所以我们还是直接使用其代码。
将其它包中 的 命令行参数 统一 移动 到 cmd/verysimple 中;tls lazy 特性因为还在 调试阶段,所以 命令行参数 仍然放到 v2ray_simple 包中。
|
2022-04-26 13:22:18 +08:00 |
|
e1732a364fed
|
9d5b553e01
|
重构代码, 修订文档
|
2022-04-26 09:16:12 +08:00 |
|
hahafool
|
27872e7dfc
|
rename
|
2022-04-25 18:33:24 +08:00 |
|
hahafool
|
cb6966e9fc
|
实现 quic 0-rtt
|
2022-04-25 17:59:00 +08:00 |
|
hahafool
|
73b14b9a9a
|
修订代码
|
2022-04-24 20:52:05 +08:00 |
|
hahafool
|
345aaa88bb
|
修订panic捕获的代码;将 grpc的 mult的配置改为"grpc_multi"
|
2022-04-24 20:43:00 +08:00 |
|
hahafool
|
c761e007a2
|
修复udp监听失败的错误没有捕获导致空指针bug;main中捕获panic;
|
2022-04-24 20:18:59 +08:00 |
|
hahafool
|
fb1e639c55
|
添加 grpc multiMode, 应该与xray兼容
|
2022-04-24 20:04:10 +08:00 |
|
hahafool
|
4c6e5b79c4
|
修订文档, makefile, 代码; 添加vless的v1添加mux支持.
减少 firstPayload的timeout,从1秒减少到100ms.
v1 的mux 和trojan一样,使用 smux + simplesocks的方式。
|
2022-04-22 19:00:50 +08:00 |
|
hahafool
|
22fc0722f3
|
修订文档, 代码; 添加reject协议,与v2ray的blackhole等价;
RejectClient 直接在 proxy包内实现,而不是放在子包。
把direct也放到了proxy中。因为 direct和 reject是两个通用client,不需要单列出来。
|
2022-04-22 13:51:36 +08:00 |
|
hahafool
|
a1a15770d2
|
修订代码, 文档.
令tls随机证书的国别和组织等信息随机化,在证书文件不存在时不退出程序, 而是使用随机证书继续运行。
不再提供 现成的 证书。
|
2022-04-22 12:40:23 +08:00 |
|
hahafool
|
e7ae557b91
|
修订文档, sockopt 和 utils包的代码.
|
2022-04-21 21:34:56 +08:00 |
|
hahafool
|
9a1afe18c9
|
修订netLayer和proxy包的代码; 添加日志文件功能;试图添加tproxy功能
|
2022-04-20 09:18:49 +08:00 |
|
hahafool
|
6ecbfe7b18
|
修订文档;添加http伪装头;修复一个path的bug
http头配置同时 支持ws。添加相关的示例文件.
修复 path 为 "/" 时无法连接的bug, 这是因为原代码在 requestfilter.go中, bs[5] == ' ' 这个判断没有过滤 Get / http1.1 等类似的情况
将 filter.go 重命名为 requestfilter.go ,因为现在也产生了过滤response的可能性。
|
2022-04-18 21:59:46 +08:00 |
|
hahahrfool
|
e5c38d6c8c
|
全面修订代码,文档
|
2022-04-17 11:43:19 +08:00 |
|
hahahrfool
|
d9f3b5d0e6
|
修订文档,代码;减少发布包编译的数量;修复“包头”变成“握手包”的漏洞
根据vless/trojan的协议标准,首包必须要包头和payload一起发送,而之前的vs架构分开发送了,这会导致可探测。已在本commit修复。
使用 captive.apple.com 和 http://www.msftconnecttest.com/connecttest.txt 作为测试url,而不用baidu和qq。这样在非中国国家进行测试 也可以正常了。
|
2022-04-16 22:25:37 +08:00 |
|
hahahrfool
|
8eecbacc57
|
netLayer.RandPort 添加 mustValid, isudp参数, 保证端口可用.
|
2022-04-16 10:10:06 +08:00 |
|
hahahrfool
|
47d83216a6
|
修订文档,代码; 令NewAddrFromAny支持解析url字符串
|
2022-04-15 18:48:03 +08:00 |
|
hahahrfool
|
49a269c0cd
|
修订文档,代码
|
2022-04-15 16:37:25 +08:00 |
|
hahahrfool
|
c39678032b
|
解决trojan无法兼容trojan-go客户端的问题.
|
2022-04-15 15:10:28 +08:00 |
|
hahahrfool
|
476c59fd28
|
修订代码,文档; 试图实现socks5客户端;
|
2022-04-15 13:48:07 +08:00 |
|
hahahrfool
|
d1f2696c1d
|
修订代码,示例;修复trojan的mux在传递udp时的bug; 添加内层mux的udp的测试
|
2022-04-15 11:35:15 +08:00 |
|
hahahrfool
|
ab46349c8b
|
修订代码,文档;实现了trojan的smux并通过了go test
|
2022-04-15 10:28:48 +08:00 |
|
hahahrfool
|
96d98fd65a
|
修订代码,文档,注释;试图实现内层smux;dial配置添加use_mux选项
为了实现内层mux,对 main.go 里的函数做了一些重构,
现在 handshakeInserver_and_passToOutClient 会调用 handshakeInserver 函数 和 passToOutClient 函数
且 fallback部分的代码提出来 放到了 checkfallback 函数中
内层mux还未经过测试
|
2022-04-14 20:46:14 +08:00 |
|
hahahrfool
|
d548fe205f
|
修订代码, 文档,注释, 修复udp转发的问题
之前的代码在symmetric时, 向多个地址发送信息时,会出问题。因为只进行了多拨号,没有多监听。
这次使用chan 来解决。
|
2022-04-14 11:09:08 +08:00 |
|
hahahrfool
|
53c61b18a7
|
为内层mux做准备;添加simplesocks协议;将测试代码放入proxy包,成为共用函数.
现在 vless/trojan/simplesocks 共同使用相同的测试代码, 在 proxy/commonTest 中
simplesocks 已经通过了测试。另外发现 trojan的udp部分没有使用 io.ReadFull 导致大udp包的读取会出错,已修复.
|
2022-04-12 08:19:46 +08:00 |
|
hahahrfool
|
f4842fc5e6
|
修订文档,代码; 部分支持socks5的udp客户端; 修复v1的udp multi问题;
发现之前的代码虽然通过了 go test 测试,但是因为test 代码并不全面,导致没有触发 multi
这次设计了新的test代码,可以触发multi,并顺便找出了之前main.go 的代码存在的问题,并修复了。
修复 socks5 转发 udp时, 返回udp地址为0.0.0.0的问题。因为socks5的握手是不包含请求的, 所以要额外加一步读取udp请求。
也因为这个 “初次地址”问题,给 RelayUDP_separate 加了一个 firstAddr 参数。
|
2022-04-12 00:38:56 +08:00 |
|
hahahrfool
|
6ad41552da
|
修订文档,示例
|
2022-04-11 22:13:51 +08:00 |
|
hahahrfool
|
375c95fa4e
|
进一步修订代码、文档, 完善vless v1并通过go test.添加 vless1_udp_multi 配置
添加 vless_v1 示例文件。
|
2022-04-11 20:13:52 +08:00 |
|
hahahrfool
|
c5ab5a201c
|
由新的udp架构重新设计udp分离信道传输方式和vless v1协议并初步实现代码
|
2022-04-11 18:47:35 +08:00 |
|
hahahrfool
|
6dca31545b
|
修订代码; 移除 SetUDPDialFunc 方法
|
2022-04-11 13:30:24 +08:00 |
|
hahahrfool
|
ca01f2494b
|
修订文档, 修订、优化代码
netLayer的 Relay 和 Relay_UDP 函数现在同时记录下载以及上传总流量
为了给 udp 的 单路 fullcone 机制作准备, 代码作出如下改动:
main.go 中的 dialClient 现在分成 dialClient 和 dialClient_andRelay 这两个函数。
变更 proxy.Client 接口,新增 IsUDP_MultiChannel 和 SetUDPDialFunc 方法
移除 vless v1部分的 crumfurs代码。 因为现在最新计划 将不再使用单独 crumfurs信道。
可参考 最新 vless_v1.md 文档中的改变。
|
2022-04-11 12:03:53 +08:00 |
|
hahahrfool
|
1caa5e26c8
|
修订代码;修复udp direct 时 重复dial的问题
|
2022-04-11 08:21:32 +08:00 |
|
hahahrfool
|
a418808b81
|
修订代码
|
2022-04-10 22:28:06 +08:00 |
|
hahahrfool
|
a225a7409d
|
修订文档,示例;修复trojan的udp的bug以及dokodemo的udp的bug;
在根目录添加 trojan 的 udp 的go test,并通过了测试
|
2022-04-10 21:42:38 +08:00 |
|
hahahrfool
|
aad3632e3d
|
修订代码、文档
|
2022-04-10 12:09:49 +08:00 |
|
hahahrfool
|
4b3ebe8a26
|
修订文档,代码; 交互模式 支持trojan协议以及生成trojan分享链接.
|
2022-04-10 11:23:04 +08:00 |
|
hahahrfool
|
55abc3ec35
|
修订代码; 添加advLayer支持所有协议的 打印功能
|
2022-04-10 09:44:38 +08:00 |
|
hahahrfool
|
0598508348
|
将 ws/grpc/quic 文件夹全部移动到 advLayer 文件夹;修订文档
|
2022-04-10 09:10:43 +08:00 |
|
hahahrfool
|
50de20ce12
|
修订代码
|
2022-04-10 08:52:40 +08:00 |
|
hahahrfool
|
651bd12e72
|
修订代码;重命名netLayer一些结构和接口
Uni_UDPConn 重新改名为 UDPConn, 添加方法以让其实现 MsgConn 接口
MsgConn接口名称改变,
ReadFrom 改为 ReadMsgFrom, WriteTo 改为 WriteMsgTo
|
2022-04-09 14:18:54 +08:00 |
|
hahahrfool
|
86e631b491
|
修订代码,注释
|
2022-04-09 02:00:03 +08:00 |
|
hahahrfool
|
af06147e89
|
修订代码
|
2022-04-08 23:52:46 +08:00 |
|
hahahrfool
|
8d0775f2dc
|
修订代码、示例; 添加quic的maxStreamCountInOneSession配置
|
2022-04-08 23:23:11 +08:00 |
|
hahahrfool
|
3dc53554df
|
修订代码, 实现trojan协议
|
2022-04-08 22:44:01 +08:00 |
|
hahahrfool
|
ce735dbb99
|
修订udp代码; dial配置 添加 fullcone 选项;默认为非fullcone
现在整个程序均通过了go test, main 也可以正常运行了。
Relay_UDP 函数添加流量计数;
发现之前 Relay函数的流量计数 在main.go里参数传反了,导致实际上计数的是上传而不是下载,已修复
对fullcone的情况做了特别考量。MsgConn的 Close函数在fullcone时不能随便被调用。
因此我添加了一个 CloseConnWithRaddr(raddr Addr) error 方法,以及 Fullcone() bool 方法
在utils包的init部分使用 rand 随机种子
|
2022-04-08 20:31:59 +08:00 |
|
hahahrfool
|
447bd8749a
|
重构所有udp部分的代码! 摒弃了过去非常复杂的upd转发机制;
不再使用 UDP_Putter 等机制去转发udp,而是用一个 netLayer.MsgConn 结构
proxy.Server 和 proxy.Client 接口改动,
Client在握手udp时不再使用handshake方法, 而是用新的 EstablishUDPChannel 方法
Server 在 Handshake时会选择性返回两种接口,io.ReadWriteCloser 用于tcp, netLayer.MsgConn 用于 udp
此时vless、socks5、direct 的udp转发都已经成功经过了 go test 验证, 但是 main.go 还未修改。
|
2022-04-08 13:49:56 +08:00 |
|
hahahrfool
|
d3ec3fddcd
|
修订示例、代码;为添加trojan 作准备
|
2022-04-08 10:42:01 +08:00 |
|
hahahrfool
|
6291babff3
|
修订代码, 示例, 优化quic,设最大多路复用路数 为 4路.
之前代码使用纯单路且stream上限为320个,idle时间为2小时
现在自己思考发现完全不合理。
单个session内存在的stream数量 越少性能越高
重构了quic部分的代码。
添加一种主动记录服务端能承受的最大stream数量的机制,每次建立新stream时都试图找到 stream最少的一条可用session。
这种缓存session的做法实际上类似 连接池技术。
修复一些小问题.
|
2022-04-07 22:31:29 +08:00 |
|