Commit Graph

40 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
64889d0e09 修订文档;正式启动v2ray配置兼容的开发 2022-12-06 08:27:21 +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
6e39f4f2f2 完成url标准格式,见docs/url.md; 修订代码 2022-12-02 11:09:40 +08:00
e1732a364fed
2e5a33feb1 修订文档,示例,代码;解决http头层回落代码导致panic的bug;
添加 encrypt_algo 配置;

添加 configAdapter包
2022-11-30 22:40:26 +08:00
e1732a364fed
0f527cfba4 修订文档;令http层支持回落 2022-11-30 17:02:29 +08:00
e1732a364fed
30b283b81b fix #166, vmess 在 ws + earlydata时 会导致连不上
这是一个陈旧的开发错误,直到现在才显现出来
2022-11-01 20:49:31 +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
bbfc7b0ae8 修复vmess的prng使用math/rand的漏洞,关联#161 2022-10-26 08:02:01 +08:00
e1732a364fed
a7257bec43 修订代码;添加"mix"网络类型,用于多重传输层的proxy:
如direct,shadowsocks,socks5等.
2022-09-23 11:17:25 +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
cd8734a719 继续优化日志输出 和 注释 2022-09-14 10:22:01 +08:00
e1732a364fed
5901819f9a minor fix 2022-09-13 16:52:10 +08:00
e1732a364fed
c380f28407 修复拼写错误;令vmess中返回的错误ErrInvalidData添加vmess字样 2022-09-13 09:50: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
ba05051f6a 修订vmess代码,文档 2022-05-18 19:47:24 +08:00
e1732a364fed
c0b732d0d1 修订代码,文档;实现vmess的防重放机制 2022-05-18 12:40:38 +08:00
e1732a364fed
243cd684af 修复一个来自1.2.1的bug; 从GetMTU取出的长度有时不为MTU
这是因为存放代码有错误。这个bug可能很早就有,就不追究了,修复即可
2022-05-18 02:31:41 +08:00
e1732a364fed
8ea496dbfb 修订代码;粘连vmess的请求包以及首包
发现clash的代码似乎没有粘包发送,而是会分包发送,则会造成明显流量特征。

我们粘着发送,就没有 握手包的特征了.

服务端的响应包也同理处理。
2022-05-18 01:58:02 +08:00
e1732a364fed
45ccfee83f 修订文档,代码; 实现vmess服务端!
本vmess服务端实现并非 完整服务端,目前没有动态端口等功能

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

后面还要继续完善该代码,至少要添加 防重放功能。
2022-05-18 00:19:41 +08:00
e1732a364fed
e7a1f0a202 修订代码,文档 2022-05-17 05:47:09 +08:00
e1732a364fed
3af4eefd74 更新代码,文档; 令tproxy支持sniffing以及分流; 令tproxy在关闭时不卡住
关联 #98 中 下面的评论中 ctermiii 所反映的两个问题
2022-05-17 04:55:08 +08:00
e1732a364fed
e7d6de422f 令vmess的security的默认行为 符合 配置示例中注释 的陈述. 2022-05-15 14:48:48 +08:00
e1732a364fed
4850432aed 令vmess客户端支持 auto。修订示例 2022-05-15 13:29:45 +08:00
e1732a364fed
34ce707dd3 修订vmess文档 2022-05-15 09:53:52 +08:00
e1732a364fed
21a6fe431f 移除非aead的代码 2022-05-15 09:48:19 +08:00
e1732a364fed
a534b46efb 令vmess可用,已经过验证,添加vmess.client.toml配置文件 2022-05-15 09:46:19 +08:00
e1732a364fed
3dcefdd4f8 添加vmess作为 proxy.Client 2022-05-14 23:55:56 +08:00
e1732a364fed
dfb7043624 修改udp握手的定义,新增udp的firstPayload参数;(尚未在main.go中支持) 2022-05-14 18:39:29 +08:00
e1732a364fed
eeaf689367 修订文档,代码 2022-05-14 11:15:03 +08:00
e1732a364fed
a32239e551 修复拼写错误 2022-05-14 09:36:58 +08:00
e1732a364fed
eb065dd4b5 添加vmess文件夹中的GPL协议;更新鸣谢 2022-05-14 09:32:33 +08:00
e1732a364fed
c2d842cb23 添加vmess的客户端代码 2022-05-14 09:27:11 +08:00