Commit Graph

167 Commits

Author SHA1 Message Date
e1732a364fed
d7ef5435cd 令vmess支持smux
是通过我们自定义一个新的Cmd来实现的。也就是说,这个smux的支持与mux.cool不是一回事,不冲突。

我们依然不支持mux.cool。现在,如果你两端都是vs,客户端开启mux后,vs服务端会识别出该客户端使用smux,并进行多路复用.

修订代码,示例
2022-12-10 22:42:18 +08:00
e1732a364fed
e727490b4b 修订文档,示例 2022-12-06 00:24:26 +08:00
e1732a364fed
29517ec226 修订文档,示例 2022-12-05 12:44:18 +08:00
e1732a364fed
11cc83c970 fix #141, 修正上一个commit一处错误
不能给direct设置 AddrStr 为 sendThrough地址,否则该地址会被认为是拨号的目标地址
2022-12-05 12:22:08 +08:00
e1732a364fed
c92219d18d 整理代码,文档,示例 2022-12-04 23:15:49 +08:00
e1732a364fed
b517f9d4de 整理文档,代码; go.mod -> 1.19 2022-12-04 22:35:26 +08:00
e1732a364fed
83ed640117 修订ss代码,使ss的udp可用,已通过测试
测试使用vs的ss客户端以及vs的ss服务端,tcp和udp都是通的
2022-12-04 20:44:54 +08:00
e1732a364fed
bee1afd286 修订代码使ss可正常拨号 2022-12-04 19:28:12 +08:00
e1732a364fed
7a81617eed 修订示例,代码; grpc的给出的path自动移除前面的/; 修订tproxy代码使其可用,并可指定监听tcp/udp 2022-12-04 11:50:45 +08:00
e1732a364fed
5fcaee22d1 定义dual类型的Network,用于direct,ss和socks5
这三种协议在实际传输时可能同时用到tcp和udp. 如果没给出Network值,
那么默认的Network应该为dual
2022-12-03 16:39:02 +08:00
e1732a364fed
d4ec27fad1 修复trojan传输ipv6的udp数据时出错的问题,关联#136
这是一个愚蠢的错误,将v2ray类型的定义用在了trojan上
2022-12-03 12:56:48 +08:00
e1732a364fed
0abceced2d 修订文档,示例;实现配置转换成圈叉,clash,v2rayN,ss,xray等格式 2022-12-01 13:39:33 +08:00
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
34073bd174 修订注释;增加发布包目标架构 2022-11-02 08:43:18 +08:00
e1732a364fed
89c50fe4df 整理注释、文档、代码 2022-11-01 11:54:51 +08:00
e1732a364fed
6a360a2ef9 mix类型的简单补充(微小进度) 2022-10-26 07:52:25 +08:00
e1732a364fed
450bf2243c 修订代码,注释;令udp的direct拨号也遵循sendThrough配置 2022-09-23 09:29:24 +08:00
e1732a364fed
744e18d379 close #152, 添加dns的ttl_strategy;详见multi_client.toml 2022-09-22 21:00:15 +08:00
e1732a364fed
7b79887d50 修订注释;小优化。 2022-09-20 17:50:07 +08:00
e1732a364fed
36225a34a0 更新注释 2022-09-15 11:04:26 +08:00
e1732a364fed
55ea3c6a66 close #141, 支持sendThrough配置 2022-09-15 10:30:26 +08:00
e1732a364fed
ec1ed3e8a5 修订文档; 添加shadowsocks协议支持;目前仅支持传输tcp 2022-05-26 11:42:36 +08:00
e1732a364fed
686a215d24 修订代码,文档;令grpcSimple返回正确的h2c 拒绝响应
定义了 netLayer.RejectConn,并令 netLayer.IOWrapper 实现 RejectConn

只要是实现了 netLayer.RejectConn 的连接,不回复 http1.1响应 ,而是 按照 RejectConn 自己的方式进行 Reject响应。

令quic也不返回 http1.1响应。不过因为quic包可定制性比较差,似乎没法返回自定义响应?所以暂时先直接做关闭处理。
2022-05-23 10:26:46 +08:00
e1732a364fed
e795eb4816 修订代码,文档;为grpc和ws添加解析X-Forwarded-For 功能
未经过测试
2022-05-23 08:41:22 +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
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
78faa9ebae 修订代码,文档,示例 2022-05-21 18:47:33 +08:00
e1732a364fed
8e9fc85965 修订文档,示例,代码;修复tcp拨号闪退bug;添加ip分流的 "private"配置 2022-05-20 18:43:28 +08:00
e1732a364fed
2b23891c51 修订示例,文档 2022-05-20 15:49:22 +08:00
e1732a364fed
ac7024cd3e 修订示例,代码; header配置新增strict项,默认为false
若strict为true,则会检查请求中的每一个http header是否匹配,如果不匹配,则拒绝连接.
2022-05-20 15:13:25 +08:00
e1732a364fed
3d168f2d41 修订文档,示例,代码;实现vmess的chunkMasking. 2022-05-20 14:01:41 +08:00
e1732a364fed
8a96afe5e2 修订文档,示例,代码 2022-05-18 21:10:00 +08:00
e1732a364fed
45ccfee83f 修订文档,代码; 实现vmess服务端!
本vmess服务端实现并非 完整服务端,目前没有动态端口等功能

而且目前没有实现防重放功能。目前代码仅作为一个最基本可用服务端,

后面还要继续完善该代码,至少要添加 防重放功能。
2022-05-18 00:19:41 +08:00
e1732a364fed
41db97b8cf 修订代码,示例;修复一个 toml多行字符串的bug 2022-05-16 13:20:32 +08:00
e1732a364fed
4b151d7d3b 修订示例文件 2022-05-15 23:23:24 +08:00
e1732a364fed
a219ccb671 fix #96, 默认dns若连不上,会出现空指针闪退 2022-05-15 19:31:31 +08:00
e1732a364fed
1c5cb23eeb 修订文档 2022-05-15 18:59:43 +08:00
e1732a364fed
4850432aed 令vmess客户端支持 auto。修订示例 2022-05-15 13:29:45 +08:00
e1732a364fed
d18bd71ff2 令tls配置支持minVersion: extra = { tls_minVersion = "1.2" } 2022-05-15 11:14:09 +08:00
e1732a364fed
a534b46efb 令vmess可用,已经过验证,添加vmess.client.toml配置文件 2022-05-15 09:46:19 +08:00
e1732a364fed
e9570e1ad3 修订tproxy代码令其支持新版MsgConn接口 2022-05-14 22:46:36 +08:00
e1732a364fed
de9ea5fefa 试图令http支持多用户;修订代码
已验证socks5的多用户功能,并修订了 socks5.toml 示例

proxy的url打印时,在尾缀添加#tag
2022-05-13 23:01:18 +08:00
e1732a364fed
67c126b390 跟进hysteria的减少time.Now()调用的优化代码; closes #84
修订文档,示例文件
2022-05-13 08:16:30 +08:00
e1732a364fed
01f41698ac fix #83 , 在无网络层规则时, 分流配置fromTag 和 user 无效. 2022-05-13 07:51:34 +08:00
e1732a364fed
3eab92090d 更新文档,示例,注释 2022-05-12 17:06:23 +08:00
e1732a364fed
c5f4904c9f 修订示例文件 2022-05-12 14:56:35 +08:00