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
|
2d384314f4
|
修订,重构代码, 修复dns的bug; 添加Dns的DoT功能.
修复dns配置中"特殊服务器" 无法被正确配置、使用的bug
将 proxy.Standard结构 移动到 项目根目录的 StandardConf.
将 proxy.AppConf, LoadTomlConfStr, LoadTomlConfFile 函数 移动到根目录
因为 StandardConf和 AppConf里包含很多App级别的配置, 不宜放到proxy子包中
将 proxy.RuleConf 移动到 netLayer
将 proxy.LoadRulesForRoutePolicy 移动到 netLayer
将 proxy.LoadDnsMachine 移动到 netLayer
在dnsquery失败后,会判断错误, 若发现是Read错误,则会试图重新拨号
|
2022-04-07 13:45:24 +08:00 |
|
hahahrfool
|
f6081cc8be
|
修订代码;添加【下载geosite文件】的交互命令,可自动通过节点下载
|
2022-04-05 19:08:44 +08:00 |
|
hahahrfool
|
3a997a32bc
|
修订代码,示例;添加geosite分流,域名现已支持full,sub,regex,geosite,match
|
2022-04-05 08:59:26 +08:00 |
|
hahahrfool
|
60329c2109
|
修复ipv6判断写反的bug,此bug恰巧会导致ipv6主机无法访问ipv6
|
2022-04-03 17:58:26 +08:00 |
|
hahahrfool
|
d4c893e579
|
修订代码,修复一个尴尬bug导致域名无法拨号.
|
2022-04-03 07:19:29 +08:00 |
|
hahahrfool
|
765f0bb113
|
修订代码;将默认loglevel改为warn;提前判断本机是否具有ipv6;
|
2022-04-02 20:36:15 +08:00 |
|
hahahrfool
|
dfecd89d14
|
添加dns功能; 解决grpc 悬垂链接问题;
该悬垂问题可能就是v2ray/xray的 “grpc断流问题”,已被本commit轻松搞定。
dns配置:
[dns]
servers = [
"udp://114.114.114.114:53" # 如果把该url指向我们dokodemo监听的端口,就可以达到通过节点请求dns的目的.
]
[dns.hosts] # 自己定义的dns解析
"www.myfake.com" = "11.22.33.44"
"www.myfake2.com" = "11.222.33.44"
一旦配置了dns项,则所有dns都会试图向默认dns服务器请求;
该功能尚不完善。
|
2022-04-01 00:26:35 +08:00 |
|
hahahrfool
|
b31557df14
|
大范围修订代码,以试图防止内存逃逸到堆;
|
2022-03-31 13:33:58 +08:00 |
|
hahahrfool
|
b63b90400a
|
bump version->v1.1.0.3; minor improve
|
2022-03-29 19:11:17 +08:00 |
|
hahahrfool
|
f2adcdcd45
|
防止udp转发时被裸奔;修缮socks udp associate
修订代码,文档,示例
添加 NumErr 结构; 从 handshakeInserver_and_passToOutClient 函数 分离出一个 dialClient 函数。
在socks5包中添加 client.go 文件,以及三个udp相关的客户端请求udp函数
之前的udp associate代码被证明是有很多bug的,现在被我一一修复,并通过了 udp_test.go的测试。
|
2022-03-29 19:00:14 +08:00 |
|
hahahrfool
|
81160e8db2
|
广泛修订代码, 注释
|
2022-03-28 22:07:18 +08:00 |
|
hahahrfool
|
a579dc1d40
|
修订代码,注释,示例,文档
|
2022-03-28 09:39:41 +08:00 |
|
hahahrfool
|
e9c9467a72
|
修订代码,文档,注释
|
2022-03-27 14:09:53 +08:00 |
|
hahahrfool
|
63682dfae4
|
完整实现grpc;修订代码, 注释;修复udp的bug和windows中路径bug;
|
2022-03-25 20:34:54 +08:00 |
|
hahahrfool
|
363f0fac00
|
添加sni和alpn回落;修订代码
xray使用这种结构来匹配fallback: map[string]map[string]map[string]*Fallback
很繁琐,如果fallback匹配项目越来越多那不是就一大串了?
本作使用集合方式进行匹配,可扩展性更强
|
2022-03-24 09:02:38 +08:00 |
|
hahahrfool
|
a40a343510
|
在route中使用netip.Addr;修订代码;添加一些go test
|
2022-03-23 17:37:23 +08:00 |
|
hahahrfool
|
778535290f
|
在udp中使用net/netip包;从此开始使用go1.18内容;修订代码
|
2022-03-23 12:47:09 +08:00 |
|
hahahrfool
|
536a84def6
|
修订代码,注释,文档
|
2022-03-22 16:46:05 +08:00 |
|
hahahrfool
|
5661c8737f
|
添加readv功能;给出测试数据;修订代码,注释;
toml 新增 app.noreadv项,命令行参数新增 -readv
默认readv是打开状态,可以选择性关闭。
|
2022-03-22 14:12:32 +08:00 |
|
hahahrfool
|
e75860ef7a
|
添加ws的0-rtt支持;兼容xray/v2ray; 修订示例文件
earlydata 的最大长度 本作直接固定为2048长度。
配置文件格式:
extra = { ws_earlydata = true }
|
2022-03-22 02:31:47 +08:00 |
|
hahahrfool
|
7b8e96f736
|
增加对 unix domain socket的支持
|
2022-03-21 21:58:15 +08:00 |
|
hahahrfool
|
548675e002
|
添加自定义网络层功能;添加udp网络层支持
配置中,listen和dial中,可添加 network = "udp" 字段,不添加则默认tcp
|
2022-03-21 21:19:31 +08:00 |
|
hahahrfool
|
dbe499cc08
|
添加unique协议, 详情见wiki
|
2022-03-19 18:39:16 +08:00 |
|
hahahrfool
|
405207bc56
|
将netLayer抽象出来,proxy.Addr现在变成netLayer.Addr
netLayer里包含关于 网络层 以及传输层 的各种定义.
这里为了添加 类似 v2simple的 common.Matcher的功能,特地抽象出来一个层.
而且增添了第一个外部依赖包,github.com/yl2chen/cidranger包.
|
2022-03-16 09:01:43 +08:00 |
|