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
|
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
|
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
|
d29ed0857f
|
修订文档, fix #98, http和socks5在没配置多用户时会闪退
|
2022-05-16 08:37:37 +08:00 |
|
e1732a364fed
|
1c5cb23eeb
|
修订文档
|
2022-05-15 18:59:43 +08:00 |
|
e1732a364fed
|
de9ea5fefa
|
试图令http支持多用户;修订代码
已验证socks5的多用户功能,并修订了 socks5.toml 示例
proxy的url打印时,在尾缀添加#tag
|
2022-05-13 23:01:18 +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
|
3dce72a334
|
令http支持用户名密码(basic auth)
|
2022-05-08 18:00:05 +08:00 |
|
e1732a364fed
|
3fabc38c69
|
令socks5支持用户名密码
|
2022-05-08 17:43:34 +08:00 |
|
e1732a364fed
|
d4acfc1989
|
添加 socks5http 协议,与clash的mixed等价.
|
2022-05-08 14:01:03 +08:00 |
|
e1732a364fed
|
3e7e779920
|
修订代码; 完善ws; 令Pool使用指针,而不是slice
令 websocket在path访问正确但是不是ws连接时,也进行回落,而不是返回一个错误
将 GetH1RequestMethod_and_PATH_from_Bytes 改名为 ParseH1Request, 且支持 读取header
同时新增了 RawHeader 结构 用于 上述目的。httpLayer还添加了 CanonicalizeHeaderKey 方法。
令Pool使用指针 后,测速从 3200左右上升至3800左右,也不知道是不是这个优化导致的。如果是的话,那也太猛了。
|
2022-05-07 09:51:45 +08:00 |
|
e1732a364fed
|
e43b920b4b
|
修订文档,Makefile,代码
令Makefile记录每次编译所用的 tag,这样用不同tag进行编译时,make可以感知到不同.
|
2022-05-05 18:10:22 +08:00 |
|
e1732a364fed
|
5867bac0b2
|
修订代码,文档,Makefile,示例
修复 没给出 -c参数而给出了 -L 参数时,未能成功运行 的bug
使Makefile 支持 免参数编译 当前系统的 可执行文件。
Makefile的 BUILD_VERSION 这次 添加了 显示 build_on 系统 和 all_go_files_md5 的功能。
md5的打印只支持 linux/darwin,且因为 darwin的命令是 md5 而不是 md5sum,导致输出有差别,所以导致md5总和也有差别.
|
2022-05-05 14:09:12 +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
|
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
|
d1f2696c1d
|
修订代码,示例;修复trojan的mux在传递udp时的bug; 添加内层mux的udp的测试
|
2022-04-15 11:35:15 +08:00 |
|
hahahrfool
|
ab46349c8b
|
修订代码,文档;实现了trojan的smux并通过了go test
|
2022-04-15 10:28:48 +08:00 |
|
hahahrfool
|
a418808b81
|
修订代码
|
2022-04-10 22:28:06 +08:00 |
|
hahahrfool
|
447bd8749a
|
重构所有udp部分的代码! 摒弃了过去非常复杂的upd转发机制;
不再使用 UDP_Putter 等机制去转发udp,而是用一个 netLayer.MsgConn 结构
proxy.Server 和 proxy.Client 接口改动,
Client在握手udp时不再使用handshake方法, 而是用新的 EstablishUDPChannel 方法
Server 在 Handshake时会选择性返回两种接口,io.ReadWriteCloser 用于tcp, netLayer.MsgConn 用于 udp
此时vless、socks5、direct 的udp转发都已经成功经过了 go test 验证, 但是 main.go 还未修改。
|
2022-04-08 13:49:56 +08:00 |
|
hahahrfool
|
b31557df14
|
大范围修订代码,以试图防止内存逃逸到堆;
|
2022-03-31 13:33:58 +08:00 |
|
hahahrfool
|
f8ef685bdd
|
解决readv内存泄漏问题;解决转发时断连后的悬垂链接问题
在四点链接的情况下,我们只终端中间两点是不够的,要切三刀;
总之实践很简单,就是copy完成之后,要Close所有的链接
readv的话,系统readv数组和buffer不要在put进pool后相互引用
添加-bl 选项,可以自定义buf大小;注意越小可能越慢,建议buf大小保持在4k以上
添加-pp选项,可以生成cpu.pprof文件
修复其它小问题.
|
2022-03-31 01:32:58 +08:00 |
|
hahahrfool
|
4ece4b84dd
|
修订代码
|
2022-03-30 21:32:35 +08:00 |
|
hahahrfool
|
81160e8db2
|
广泛修订代码, 注释
|
2022-03-28 22:07:18 +08:00 |
|
hahahrfool
|
8c6ed6377d
|
修订代码;将addr的赋值从各个proxy自己的方法中提出来
|
2022-03-23 18:54:38 +08:00 |
|
hahahrfool
|
5661c8737f
|
添加readv功能;给出测试数据;修订代码,注释;
toml 新增 app.noreadv项,命令行参数新增 -readv
默认readv是打开状态,可以选择性关闭。
|
2022-03-22 14:12:32 +08:00 |
|
hahahrfool
|
85a1407ef8
|
修订注释,代码
给 ProxyConn 添加 ReadFrom 函数
|
2022-03-19 19:09:35 +08:00 |
|
hahahrfool
|
1eb6dfe164
|
移除config包,文件直接移动到proxy中
因为config包与proxy包耦合性实际上很强,说明实际上config就是应该属于proxy包的.
|
2022-03-19 16:53:11 +08:00 |
|
hahahrfool
|
250f6e8c5b
|
新增http代理Server端.修订代码,注释.CommonConf加了Extra字段
CommonConf加了这一行:Extra map[string]interface{} `toml:"extra"`
这样就可以兼容一切未来未知的格式了, 同时 proxy包的 ClientCreator和 ServerCreator接口
也相应改动了,不再需要传入 map.
|
2022-03-19 16:43:55 +08:00 |
|