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
|
12f7dd1bc6
|
移除 ClientCreator.UseUDPAsMsgConn 方法
|
2022-12-21 14:08:31 +08:00 |
|
e1732a364fed
|
097db3b017
|
MsgConn接口方法重命名:WriteMsgTo -> WriteMsg
|
2022-12-19 20:26:36 +08:00 |
|
e1732a364fed
|
2da0e63558
|
MsgConn接口方法重命名:ReadMsgFrom -> ReadMsg
|
2022-12-19 20:18:35 +08:00 |
|
e1732a364fed
|
f2297721e4
|
fix #141, 修订代码; direct若配置了sendThough,则会打印该地址
|
2022-12-05 12:02:48 +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
|
4f82db83c6
|
修复socks5的client的udp associate的问题
|
2022-12-03 08:11:08 +08:00 |
|
e1732a364fed
|
6e39f4f2f2
|
完成url标准格式,见docs/url.md; 修订代码
|
2022-12-02 11:09:40 +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
|
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
|
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
|
b3e77d7f08
|
minor improvement;
follow a PR in LiamHaworth/go-tproxy (#10)
|
2022-09-13 22:27:15 +08:00 |
|
e1732a364fed
|
ec1ed3e8a5
|
修订文档; 添加shadowsocks协议支持;目前仅支持传输tcp
|
2022-05-26 11:42:36 +08:00 |
|
e1732a364fed
|
c07ac27128
|
修订示例,文档,代码;主要修复如下两个 udp问题:
设置 socks5 的超时,包括fullcone。
修订tproxy代码,修复tproxy代码中的 两个缺陷
缺陷一:
在旧的tproxy代码中,如果读到了以前存在过的 udp源地址发来的信息的话,会继续返回 原来的 MsgConn
这时,会造成 给 主代码 提供 两个相同的 MsgConn的情况,不仅不正确,而且会导致 严重的并发问题
缺陷二:
旧代码中,tproxy的 缓存map 一直在增长,却没有 删除机制,这个也是个重大缺陷, 会导致内存泄漏
|
2022-05-22 19:19:43 +08:00 |
|
e1732a364fed
|
243cd684af
|
修复一个来自1.2.1的bug; 从GetMTU取出的长度有时不为MTU
这是因为存放代码有错误。这个bug可能很早就有,就不追究了,修复即可
|
2022-05-18 02:31:41 +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
|
bdcda5b930
|
修订代码, 在socks5/http的uuid格式不正确时,不报错,而是给出一个warn, #98
|
2022-05-16 13:09:20 +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
|
93dee66a77
|
修订代码,防止listen以及RandPort无限循环, 关联 #88
|
2022-05-15 21:23:24 +08:00 |
|
e1732a364fed
|
dfb7043624
|
修改udp握手的定义,新增udp的firstPayload参数;(尚未在main.go中支持)
|
2022-05-14 18:39:29 +08:00 |
|
e1732a364fed
|
c2d842cb23
|
添加vmess的客户端代码
|
2022-05-14 09:27:11 +08:00 |
|
e1732a364fed
|
fa50ff60b4
|
修复socks5的test闪退的问题
|
2022-05-14 07:57:36 +08:00 |
|
e1732a364fed
|
de9ea5fefa
|
试图令http支持多用户;修订代码
已验证socks5的多用户功能,并修订了 socks5.toml 示例
proxy的url打印时,在尾缀添加#tag
|
2022-05-13 23:01:18 +08:00 |
|
e1732a364fed
|
71a4e746e1
|
试图令socks5的server支持多用户
|
2022-05-13 22:07:26 +08:00 |
|
e1732a364fed
|
644a67fe74
|
listen新增users配置,可设置多个用户;配置格式及含义变动:
url 配置中 将 version=0 改为 v=0
listen的Version字段 含义改变。如果 listen (服务端)指定了 版本为 0,则它将只支持v0,不会支持v1. 如果你要支持v1,可以不填写 v,或者填写为1
|
2022-05-12 08:23:36 +08:00 |
|
e1732a364fed
|
72d9e97053
|
fix #75 : iics在 quic时输出日志会闪退;修订代码,文档;
|
2022-05-10 12:01:15 +08:00 |
|
e1732a364fed
|
7d6b743058
|
修订代码,示例; 支持嗅探tls中的 sni,以便分流;转发日志添加id
修复tls sniff中padding 扩展的错误,
为 iics新增 baseid 成员,并在每一个日志输出 均附带 该id,便于追踪
该id固定为6位长度。且使用了pool来缓存zap.Field, 以及一系列 iics.CanLogErr 这种方法。
|
2022-05-09 15:08:48 +08:00 |
|
e1732a364fed
|
3fabc38c69
|
令socks5支持用户名密码
|
2022-05-08 17:43:34 +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
|
d0daa68cb6
|
修订代码,令trojan支持回落;添加共用端口的回落示例,实测可用.
|
2022-05-06 19:27:34 +08:00 |
|
e1732a364fed
|
f6662ab57b
|
将socks5的dial注册到proxy
被汇报,有人有特殊需求要在内网里dial,那么还是加上socks5的client吧
|
2022-05-06 17:33:50 +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 |
|
hahafool
|
27872e7dfc
|
rename
|
2022-04-25 18:33:24 +08:00 |
|
hahafool
|
22fc0722f3
|
修订文档, 代码; 添加reject协议,与v2ray的blackhole等价;
RejectClient 直接在 proxy包内实现,而不是放在子包。
把direct也放到了proxy中。因为 direct和 reject是两个通用client,不需要单列出来。
|
2022-04-22 13:51:36 +08:00 |
|
hahafool
|
e7ae557b91
|
修订文档, sockopt 和 utils包的代码.
|
2022-04-21 21:34:56 +08:00 |
|
hahafool
|
9a1afe18c9
|
修订netLayer和proxy包的代码; 添加日志文件功能;试图添加tproxy功能
|
2022-04-20 09:18:49 +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
|
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
|
f4842fc5e6
|
修订文档,代码; 部分支持socks5的udp客户端; 修复v1的udp multi问题;
发现之前的代码虽然通过了 go test 测试,但是因为test 代码并不全面,导致没有触发 multi
这次设计了新的test代码,可以触发multi,并顺便找出了之前main.go 的代码存在的问题,并修复了。
修复 socks5 转发 udp时, 返回udp地址为0.0.0.0的问题。因为socks5的握手是不包含请求的, 所以要额外加一步读取udp请求。
也因为这个 “初次地址”问题,给 RelayUDP_separate 加了一个 firstAddr 参数。
|
2022-04-12 00:38:56 +08:00 |
|
hahahrfool
|
aad3632e3d
|
修订代码、文档
|
2022-04-10 12:09:49 +08:00 |
|