Commit Graph

32 Commits

Author SHA1 Message Date
e1732a364fed
95e0ce32e9 修订文档,代码;添加-dt, -geosite命令行参数, 以及相关的toml配置中的app配置
-dt可调节拨号超时秒数,app配置:dial_timeout
-geosite:app配置:geosite_folder
-geoip: app配置:geoip_file
2022-12-05 01:59:30 +08:00
e1732a364fed
b517f9d4de 整理文档,代码; go.mod -> 1.19 2022-12-04 22:35:26 +08:00
e1732a364fed
a9a746ba2f 多项对接口的修改,为ss做准备:
取消Client的LocalAddr,改为 LocalTCPAddr 和 LocalUDPAddr
删除direct中的对应条目。这样可更清晰地配置双本地地址

将设置sendthrough设置双地址的代码移动到 proxy.newClient函数

这样不仅direct可指定不同的tcp和udp的本地地址,任何client协议都可以了

为ClientCreator 接口 添加 UseUDPAsMsgConn 方法,direct和ss返回true

在ss的client的EstablishUDPChannel进行自行拨号

在ss的server建立后,自动循环监听udp,绕过vs的基本监听机制。因为vs架构的限制,一个代理只能有一个唯一的传输层协议。

ServerCreator 接口 添加 AfterCommonConfServer 方法
2022-12-03 23:51:51 +08:00
e1732a364fed
5fcaee22d1 定义dual类型的Network,用于direct,ss和socks5
这三种协议在实际传输时可能同时用到tcp和udp. 如果没给出Network值,
那么默认的Network应该为dual
2022-12-03 16:39:02 +08:00
e1732a364fed
d3c7a0f6df 修复simplesocks中atype类型用错的问题
trojan同问题解决后,立刻意识到simplesocks也犯了同样的错误。
2022-12-03 13:09:09 +08:00
e1732a364fed
761e06a3d8 解决lazy在vless v1不可用的问题, fix #170 2022-11-05 16:01:33 +08:00
e1732a364fed
2c901f1fde try解决splice的问题, 关联#160 里面第二个发现的问题
这是一个古老的bug;过去一直认为unix可以用于splice,
这次重新查看资料才知道,只有tcp可以splice写入
2022-11-04 22:46:32 +08:00
e1732a364fed
2c0ec27dbd 修缮vmess,防止空指针panic;修缮test代码 2022-10-27 12:40:59 +08:00
e1732a364fed
8bde5e460b 改进proxy的测试代码;vmess在不给出security时直接使用auto 2022-10-27 12:24:35 +08:00
e1732a364fed
e788186d0a 实现按不同url格式进行初始化的特性
添加doc/url.md 解释文档
本commit修改了所有proxy的creator,以支持新的接口

	URLToDialConf(url *url.URL, iv *DialConf, format int) (*DialConf, error)

	URLToListenConf(url *url.URL, iv *ListenConf, format int) (*ListenConf, error)

这两者替代了原来的 NewClientFromUrl 以及 NewServerFromUrl

目前只是支持了vs标准格式;各个协议的原生格式等以后慢慢加。

未经过测试.
2022-10-27 11:43:44 +08:00
e1732a364fed
cd8734a719 继续优化日志输出 和 注释 2022-09-14 10:22:01 +08:00
e1732a364fed
0cd4b0de6e 修复 shadowsocks 和 simplesocks 无法传输 ipv6的bug 2022-06-06 21:23:57 +08:00
e1732a364fed
c222b2ca8f 修订代码 2022-05-16 10:56:15 +08:00
e1732a364fed
961bde8d6d 令所有proxy均支持fullcone配置.只有当listen和dial都为fullcone时,才真fullcone 2022-05-15 23:20:33 +08:00
e1732a364fed
dfb7043624 修改udp握手的定义,新增udp的firstPayload参数;(尚未在main.go中支持) 2022-05-14 18:39:29 +08:00
e1732a364fed
9c40033ce7 在golang lint的帮助下全面修订代码 2022-05-07 10:19:59 +08:00
e1732a364fed
ef89beb653 修订代码;修复socks5的dial连不上的愚蠢bug 2022-05-06 21:36:37 +08:00
e1732a364fed
5a32239c83 修订代码,示例;在test代码中添加Close,以试图减少githubaction报错率. 2022-05-06 20:02:00 +08:00
e1732a364fed
5d31ee4cfe 修订代码拼写 2022-05-06 17:26:20 +08:00
e1732a364fed
e43b920b4b 修订文档,Makefile,代码
令Makefile记录每次编译所用的 tag,这样用不同tag进行编译时,make可以感知到不同.
2022-05-05 18:10:22 +08:00
e1732a364fed
00c25b914f 重命名proxy的一些接口和接口方法 2022-05-05 08:28:23 +08:00
e1732a364fed
1bac60b50f 修订代码,文档 2022-04-29 18:23:50 +08:00
hahafool
27872e7dfc rename 2022-04-25 18:33:24 +08:00
hahafool
e7ae557b91 修订文档, sockopt 和 utils包的代码. 2022-04-21 21:34:56 +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
476c59fd28 修订代码,文档; 试图实现socks5客户端; 2022-04-15 13:48:07 +08:00
hahahrfool
ab46349c8b 修订代码,文档;实现了trojan的smux并通过了go test 2022-04-15 10:28:48 +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