Commit Graph

280 Commits

Author SHA1 Message Date
e1732a364fed
2e5a33feb1 修订文档,示例,代码;解决http头层回落代码导致panic的bug;
添加 encrypt_algo 配置;

添加 configAdapter包
2022-11-30 22:40:26 +08:00
e1732a364fed
0546be296e 修订文档,示例,代码 2022-11-30 19:32:46 +08:00
e1732a364fed
dbed52a11e http添加no_resp_h_c配置,遇到http响应后绕过默认响应头
这样可以配合真实服务器响应.
2022-11-30 18:45:29 +08:00
e1732a364fed
0f527cfba4 修订文档;令http层支持回落 2022-11-30 17:02:29 +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
30b283b81b fix #166, vmess 在 ws + earlydata时 会导致连不上
这是一个陈旧的开发错误,直到现在才显现出来
2022-11-01 20:49:31 +08:00
e1732a364fed
89c50fe4df 整理注释、文档、代码 2022-11-01 11:54:51 +08:00
e1732a364fed
52e829fa00 修订代码,注释;fix #158 2022-11-01 09:20:06 +08:00
e1732a364fed
59bab50e92 对上一个commit的补充 2022-10-31 19:34:15 +08:00
e1732a364fed
806cbfad82 修复一处socks5的udp代码中可能的空指针错误;关联 #157 2022-10-31 19:27:25 +08:00
e1732a364fed
0503cf89cb 令socks5收到不同地址的udp请求时仅warn而不阻断,关联#157 2022-10-31 19:05:20 +08:00
e1732a364fed
4a7d239611 修复dial的一处空指针错误 2022-10-31 16:00:34 +08:00
e1732a364fed
89e70ed84b 修订文档;修复使用proxyProtocol时闪退的bug;修复一处test错误. 2022-10-31 15:01: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
b79fb62629 改进代码; 添加按不同格式解析url的特性 2022-10-26 18:37:21 +08:00
e1732a364fed
23dea929f4 update dependency; 整理代码和注释
BurntSushi/toml from 1.1.0 to 1.2.1
biter777/countries from 1.3.4 to 1.5.6
2022-10-26 10:55:11 +08:00
e1732a364fed
bbfc7b0ae8 修复vmess的prng使用math/rand的漏洞,关联#161 2022-10-26 08:02:01 +08:00
e1732a364fed
6a360a2ef9 mix类型的简单补充(微小进度) 2022-10-26 07:52:25 +08:00
e1732a364fed
a7257bec43 修订代码;添加"mix"网络类型,用于多重传输层的proxy:
如direct,shadowsocks,socks5等.
2022-09-23 11:17:25 +08:00
e1732a364fed
450bf2243c 修订代码,注释;令udp的direct拨号也遵循sendThrough配置 2022-09-23 09:29:24 +08:00
e1732a364fed
82825cec32 解决一处 一个错误信息被打印两次的问题. 2022-09-22 19:52:43 +08:00
e1732a364fed
2d8d5f6f28 试图修复#151, 即地址为:0的问题 2022-09-22 18:20:24 +08:00
e1732a364fed
7b79887d50 修订注释;小优化。 2022-09-20 17:50:07 +08:00
e1732a364fed
55ea3c6a66 close #141, 支持sendThrough配置 2022-09-15 10:30:26 +08:00
e1732a364fed
0fce08a283 优化代码; 令拨号时可以使用sockopt 2022-09-15 09:33:19 +08:00
e1732a364fed
a55bb01a76 完善文档和注释,精简部分代码
netLayer/dial.go: Dial 方法中,区分ipv6和v4的部分被精简掉。
因为优化太小,而代码太复杂,划不来。
2022-09-15 09:05:39 +08:00
e1732a364fed
f7bccf2d0a 更新注释 2022-09-14 20:06:53 +08:00
e1732a364fed
cd8734a719 继续优化日志输出 和 注释 2022-09-14 10:22:01 +08:00
e1732a364fed
b3e77d7f08 minor improvement;
follow a PR in LiamHaworth/go-tproxy (#10)
2022-09-13 22:27:15 +08:00
e1732a364fed
5901819f9a minor fix 2022-09-13 16:52:10 +08:00
e1732a364fed
9dacc9e44b fix #144, 令direct拨号时使用sockopt. 2022-09-13 13:17:49 +08:00
e1732a364fed
a6ffdac5a1 修缮代码;
因为苹果推出了m2,所以将m1字样改为 m
2022-09-13 10:47:30 +08:00
e1732a364fed
c380f28407 修复拼写错误;令vmess中返回的错误ErrInvalidData添加vmess字样 2022-09-13 09:50:25 +08:00
e1732a364fed
012c2081b4 修订注释;令证书的查找 遵循path参数 2022-06-10 08:40:19 +08:00
e1732a364fed
794f3e71ec 优化注释,代码 2022-06-06 21:37:55 +08:00
e1732a364fed
0cd4b0de6e 修复 shadowsocks 和 simplesocks 无法传输 ipv6的bug 2022-06-06 21:23:57 +08:00
e1732a364fed
f1b5c97b9a 修复 trojan无法传输 ipv6 的bug 2022-06-06 21:20:53 +08:00
e1732a364fed
ec1ed3e8a5 修订文档; 添加shadowsocks协议支持;目前仅支持传输tcp 2022-05-26 11:42:36 +08:00
e1732a364fed
8fcf747479 fix #113 , 使用smux时会出现无法加载的情况
这是由两个问题造成的

问题1:

同时并发请求多个请求时,会出现同时建立两个mux的情况,导致先建立的mux被覆盖;

问题2:

一旦某个stream的连接失败后,代码 会关闭整个session。这是由于 iics无法分辨simplesocks和普通协议造成的。

加一个 isInner 标签即可分辨。
2022-05-22 22:29:02 +08:00
e1732a364fed
7e69f17927 修订代码,文档 2022-05-22 20:38:40 +08:00
e1732a364fed
538e0e9de7 修订代码;
上一个commit认知错误,400和403并没有写反逻辑,已经改回
2022-05-22 20:26:58 +08:00
e1732a364fed
fe843a1280 修复 nginx 类型 的 reject 的 多个错误
发现实测无法读到任何reject的响应。审查代码,发现 Content-Length 是19,但是 404 page not found
只有18个字符,怎么回事?

发现curl返回的响应生成的文件中,缺少最后一个换行符,导致实际的代码中 也 少写了一个。

而403的响应的Content-Length 之前写的是 169,但是给出的长度远超过169,而且 用错了引号,用了反引号,导致 转义字符 被原封不动输出了,这也是严重bug

其它两个错误:

400 和 403 的响应逻辑 写反了。

403响应中的 nginx 版本 与 其它响应中的 nginx版本不匹配
2022-05-22 20:07:33 +08:00
e1732a364fed
c07ac27128 修订示例,文档,代码;主要修复如下两个 udp问题:
设置 socks5 的超时,包括fullcone。

修订tproxy代码,修复tproxy代码中的 两个缺陷

缺陷一:

在旧的tproxy代码中,如果读到了以前存在过的 udp源地址发来的信息的话,会继续返回 原来的 MsgConn

这时,会造成 给 主代码 提供 两个相同的 MsgConn的情况,不仅不正确,而且会导致 严重的并发问题

缺陷二:

旧代码中,tproxy的 缓存map 一直在增长,却没有 删除机制,这个也是个重大缺陷, 会导致内存泄漏
2022-05-22 19:19:43 +08:00
e1732a364fed
b39f3b1745 修订代码,文档; 令tproxy的fullcone可配置,默认fullcone关闭. 2022-05-21 19:48:23 +08:00
e1732a364fed
96e306d3cb 添加reject作为listen
原来按照v2ray的逻辑,设置了 reject为dail。最近发现有作为listen的需求(回落到reject),所以就加到了listen
2022-05-21 19:16:14 +08:00
e1732a364fed
0da238c825 修订代码,添加通过节点下载mmdb文件的交互命令
将 nd参数改为 d参数,只有 -d给出时,才会自动下载mmdb文件,否则不下载mmdb文件。
2022-05-20 19:07:12 +08:00
e1732a364fed
8e9fc85965 修订文档,示例,代码;修复tcp拨号闪退bug;添加ip分流的 "private"配置 2022-05-20 18:43:28 +08:00