e1732a364fed
|
f28f0d0bee
|
修订代码, 默认loglevel 改为 Log_info.
对一般用户而言,还是需要使用Info等级 来了解一下 一般的 日志情况,等到使用熟练之后,且确认运行没有错误后, 可以自行调为 warning 来提升性能
发现 bubble包 还自己引入了 命令行参数,这十分不可取,所以我们还是直接使用其代码。
将其它包中 的 命令行参数 统一 移动 到 cmd/verysimple 中;tls lazy 特性因为还在 调试阶段,所以 命令行参数 仍然放到 v2ray_simple 包中。
|
2022-04-26 13:22:18 +08:00 |
|
e1732a364fed
|
9d5b553e01
|
重构代码, 修订文档
|
2022-04-26 09:16:12 +08:00 |
|
hahafool
|
27872e7dfc
|
rename
|
2022-04-25 18:33:24 +08:00 |
|
hahafool
|
fb1e639c55
|
添加 grpc multiMode, 应该与xray兼容
|
2022-04-24 20:04:10 +08:00 |
|
hahafool
|
4c6e5b79c4
|
修订文档, makefile, 代码; 添加vless的v1添加mux支持.
减少 firstPayload的timeout,从1秒减少到100ms.
v1 的mux 和trojan一样,使用 smux + simplesocks的方式。
|
2022-04-22 19:00:50 +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
|
d9f3b5d0e6
|
修订文档,代码;减少发布包编译的数量;修复“包头”变成“握手包”的漏洞
根据vless/trojan的协议标准,首包必须要包头和payload一起发送,而之前的vs架构分开发送了,这会导致可探测。已在本commit修复。
使用 captive.apple.com 和 http://www.msftconnecttest.com/connecttest.txt 作为测试url,而不用baidu和qq。这样在非中国国家进行测试 也可以正常了。
|
2022-04-16 22:25:37 +08:00 |
|
hahahrfool
|
49a269c0cd
|
修订文档,代码
|
2022-04-15 16:37:25 +08:00 |
|
hahahrfool
|
c39678032b
|
解决trojan无法兼容trojan-go客户端的问题.
|
2022-04-15 15:10:28 +08:00 |
|
hahahrfool
|
ab46349c8b
|
修订代码,文档;实现了trojan的smux并通过了go test
|
2022-04-15 10:28:48 +08:00 |
|
hahahrfool
|
96d98fd65a
|
修订代码,文档,注释;试图实现内层smux;dial配置添加use_mux选项
为了实现内层mux,对 main.go 里的函数做了一些重构,
现在 handshakeInserver_and_passToOutClient 会调用 handshakeInserver 函数 和 passToOutClient 函数
且 fallback部分的代码提出来 放到了 checkfallback 函数中
内层mux还未经过测试
|
2022-04-14 20:46:14 +08:00 |
|
hahahrfool
|
53c61b18a7
|
为内层mux做准备;添加simplesocks协议;将测试代码放入proxy包,成为共用函数.
现在 vless/trojan/simplesocks 共同使用相同的测试代码, 在 proxy/commonTest 中
simplesocks 已经通过了测试。另外发现 trojan的udp部分没有使用 io.ReadFull 导致大udp包的读取会出错,已修复.
|
2022-04-12 08:19:46 +08:00 |
|
hahahrfool
|
6dca31545b
|
修订代码; 移除 SetUDPDialFunc 方法
|
2022-04-11 13:30:24 +08:00 |
|
hahahrfool
|
ca01f2494b
|
修订文档, 修订、优化代码
netLayer的 Relay 和 Relay_UDP 函数现在同时记录下载以及上传总流量
为了给 udp 的 单路 fullcone 机制作准备, 代码作出如下改动:
main.go 中的 dialClient 现在分成 dialClient 和 dialClient_andRelay 这两个函数。
变更 proxy.Client 接口,新增 IsUDP_MultiChannel 和 SetUDPDialFunc 方法
移除 vless v1部分的 crumfurs代码。 因为现在最新计划 将不再使用单独 crumfurs信道。
可参考 最新 vless_v1.md 文档中的改变。
|
2022-04-11 12:03:53 +08:00 |
|
hahahrfool
|
1caa5e26c8
|
修订代码;修复udp direct 时 重复dial的问题
|
2022-04-11 08:21:32 +08:00 |
|
hahahrfool
|
55abc3ec35
|
修订代码; 添加advLayer支持所有协议的 打印功能
|
2022-04-10 09:44:38 +08:00 |
|
hahahrfool
|
0598508348
|
将 ws/grpc/quic 文件夹全部移动到 advLayer 文件夹;修订文档
|
2022-04-10 09:10:43 +08:00 |
|
hahahrfool
|
50de20ce12
|
修订代码
|
2022-04-10 08:52:40 +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
|
d3ec3fddcd
|
修订示例、代码;为添加trojan 作准备
|
2022-04-08 10:42:01 +08:00 |
|
hahahrfool
|
6291babff3
|
修订代码, 示例, 优化quic,设最大多路复用路数 为 4路.
之前代码使用纯单路且stream上限为320个,idle时间为2小时
现在自己思考发现完全不合理。
单个session内存在的stream数量 越少性能越高
重构了quic部分的代码。
添加一种主动记录服务端能承受的最大stream数量的机制,每次建立新stream时都试图找到 stream最少的一条可用session。
这种缓存session的做法实际上类似 连接池技术。
修复一些小问题.
|
2022-04-07 22:31:29 +08:00 |
|
hahahrfool
|
dc16dba65d
|
修订文档; 将大部分Fatal的代码改为Error.
|
2022-04-07 18:18:14 +08:00 |
|
hahahrfool
|
88f9ce8958
|
修订文档,示例,代码; 将hy默认速率降至100;优化quic
|
2022-04-04 08:17:08 +08:00 |
|
hahahrfool
|
57383320d0
|
添加hysteria阻控 手动挡功能!与交互模式结合着用.
|
2022-04-03 19:07:01 +08:00 |
|
hahahrfool
|
2b8d966909
|
修订代码
|
2022-04-03 17:10:25 +08:00 |
|
hahahrfool
|
f310803218
|
修订代码
|
2022-03-31 14:10:05 +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
|
3fa75b181f
|
修订代码,注释;修复小bug
|
2022-03-30 19:54:16 +08:00 |
|
hahahrfool
|
6ef8bf57c1
|
添加quic和hy阻控; 若tls证书配置未指明,会在内存生成随机rsa证书
|
2022-03-30 14:33:14 +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
|
e9c9467a72
|
修订代码,文档,注释
|
2022-03-27 14:09:53 +08:00 |
|
hahahrfool
|
3838c251ce
|
修订代码,文档,注释,示例
|
2022-03-26 13:27:14 +08:00 |
|
hahahrfool
|
074908ecdf
|
增加alpn配置; 修订示例,代码;
|
2022-03-25 22:55:38 +08:00 |
|
hahahrfool
|
63682dfae4
|
完整实现grpc;修订代码, 注释;修复udp的bug和windows中路径bug;
|
2022-03-25 20:34:54 +08:00 |
|
hahahrfool
|
95aae83eb8
|
尝试引入grpc; 尝试将handleNewIncomeConnection函数拆分;
把 handleNewIncomeConnection 拆出一个 handshakeInserver_and_passToOutClient 函数出来;
这是为了配合即将实现的 grpc的多路复用的情况.
修复一个 RelayUDP_to_Direct 函数中的小错误; 是当时疏忽了, 导致实际转发udp会闪退.
|
2022-03-25 15:55:23 +08:00 |
|
hahahrfool
|
146f7cf926
|
修复大量与websocket和回落相关的bug;
修复 websocket时无回落的问题
修复 websocket不匹配时直接返回内部错误字符串导致 可探测 的超级bug
修复回落不匹配问题
修复websocket时readv闪退问题
修复 命令行 loglevel参数被配置文件覆盖问题
修复获取tls 的 alpn和 sni时遇到空指针闪退问题
将默认fallback地址的赋值放到通用代码中;
移除 ErrSingleFallback, 改用utils.ErrFirstBuffer
使ws的server可以返回 预设的path
|
2022-03-24 13:42:34 +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
|
8c6ed6377d
|
修订代码;将addr的赋值从各个proxy自己的方法中提出来
|
2022-03-23 18:54:38 +08:00 |
|
hahahrfool
|
4d2bbaeceb
|
完善对writev的支持;为vless和ws实现MultiWriter;修订代码
|
2022-03-22 22:39:26 +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
|
548675e002
|
添加自定义网络层功能;添加udp网络层支持
配置中,listen和dial中,可添加 network = "udp" 字段,不添加则默认tcp
|
2022-03-21 21:19:31 +08:00 |
|
hahahrfool
|
7f01079688
|
添加多服务器监听支持;给ProxyCommon添加一些打印全称的机制
给ProxyCommon接口添加 MiddleName,IsUDP 方法; 添加 GetFullName 函数
将 proxy.CmdTCP , CmdUDP, CmdMux 这三个常量从proxy移动到 vless
修订示例文件
|
2022-03-20 22:25:56 +08:00 |
|
hahahrfool
|
b1c4f5a5d1
|
feat:完整实现websocket.修订文档,注释,代码
添加了 ws.server.toml 和 ws.client.toml 这两个示例文件.
|
2022-03-20 16:59:58 +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 |
|