Commit Graph

187 Commits

Author SHA1 Message Date
e1732a364fed
3c754a0a89 feat: 实现 shadowTls v2;修订示例,文档,代码; 添加shadowTls的示例文件
shadowTls v2时客户端自动使用utls,且增强了探测防御

proxy.SetCommonReadTimeout -> netLayer.SetCommonReadTimeout

tlsLayer 配置也使用Extra,目前用于 shadowTls
2022-12-22 17:06:35 +08:00
e1732a364fed
d4a3a29364 feat: dns的监听功能, 配置添加 dns.listen 项 2022-12-21 11:17:12 +08:00
e1732a364fed
f7edbfd267 修订tun示例 2022-12-20 21:14:59 +08:00
e1732a364fed
a8f35a9c99 修订代码;添加 utils.GetSystemProxyState函数
ToggleSystemProxy的http部分对darwin添加 https的设置

gui的debug添加test3,测试 utils.GetSystemProxyState
2022-12-19 13:09:21 +08:00
e1732a364fed
1637173d0c 修订tproxy示例,tun代码 2022-12-19 10:02:00 +08:00
e1732a364fed
673bf2faf1 修订文档,代码;令关闭tun时不卡住;-d自动下载wintun.dll;notun编译tag
新增 notun  build tag,取消 tun和 gui之间的关联。
2022-12-19 08:41:25 +08:00
e1732a364fed
2ff907d335 修订文档,示例 2022-12-18 21:28:37 +08:00
e1732a364fed
3b814fa08e 修订tun文档,代码;修复darwin上tun在bindToDevice时遇到的问题 2022-12-18 20:20:28 +08:00
e1732a364fed
cc9f3168e4 补充上一个commit忘加的sockopt的代码文件;修订示例 2022-12-18 17:15:39 +08:00
e1732a364fed
d486023ab9 为darwin和windows添加bindToDevice功能;修订文档 2022-12-18 16:46:54 +08:00
e1732a364fed
60271dcabd 修订tun文档,代码;前几个commit一直在修tun linux auto route,修好了 2022-12-18 16:26:09 +08:00
e1732a364fed
4bd63b8dd5 修订文档;e1732a364fed/ui v0.0.1-alpha.11 2022-12-18 13:21:31 +08:00
e1732a364fed
7ed04c07ff 修订代码,文档; 修改SelfListen签名;添加手动auto route选项
SelfListen返回一个bool和两个int; windows auto route中sleep4秒
2022-12-15 05:52:15 +08:00
e1732a364fed
16cd03247a 修订tun, 添加extra.tun_dns_list;-g=false可禁用gui 2022-12-14 13:51:53 +08:00
e1732a364fed
fac3de27d3 修订tun auto route代码 2022-12-14 13:12:05 +08:00
e1732a364fed
fa70273fd8 修订代码,示例,文档;添加tun在windows上的自动路由; 防止tun在windows上闪退 2022-12-14 10:57:20 +08:00
e1732a364fed
335d864e53 添加macos的tproxy功能; 修订文档,代码,示例
将条件编译相关文件全部移动到 cmd/verysimple文件夹中
2022-12-14 09:54:32 +08:00
e1732a364fed
d002d209c0 修订示例,文档,代码;为macos实现为tun自动配置路由表功能 2022-12-13 22:30:34 +08:00
e1732a364fed
b044772dfb 修订文档,代码;实现tun的udp部分,未经测试 2022-12-13 20:16:51 +08:00
e1732a364fed
8bdcad9b6f tun的tcp功能在mac上测试通过;修订代码;修复若干问题:
修正ReplaceSymbol函数
SelfListen时也打印Listen日志
修正machine的DefaultClient的赋值

添加tun示例文件以及路由指导
2022-12-13 18:49:00 +08:00
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