e1732a364fed
|
2e7dda7c18
|
修订代码,文档;logfile标准配置以及-sp行为改变,见下:
在标准 toml 配置中 配置 logfile 配置文件路径。 如 `logfile = "/var/log/verysimple/vs_log"`
将 -sp 的行为 改为 打印完毕后立即退出。
|
2022-04-29 21:40:01 +08:00 |
|
hahafool
|
27872e7dfc
|
rename
|
2022-04-25 18:33:24 +08:00 |
|
hahafool
|
f0c7d47b7e
|
修复utils.RandPort 的log不当使用导致 空指针bug.
|
2022-04-24 20:25:14 +08:00 |
|
hahafool
|
22fc0722f3
|
修订文档, 代码; 添加reject协议,与v2ray的blackhole等价;
RejectClient 直接在 proxy包内实现,而不是放在子包。
把direct也放到了proxy中。因为 direct和 reject是两个通用client,不需要单列出来。
|
2022-04-22 13:51:36 +08:00 |
|
hahafool
|
a1a15770d2
|
修订代码, 文档.
令tls随机证书的国别和组织等信息随机化,在证书文件不存在时不退出程序, 而是使用随机证书继续运行。
不再提供 现成的 证书。
|
2022-04-22 12:40:23 +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
|
8eecbacc57
|
netLayer.RandPort 添加 mustValid, isudp参数, 保证端口可用.
|
2022-04-16 10:10:06 +08:00 |
|
hahahrfool
|
6dc171e74a
|
修订文档,示例,添加 heap 泛型代码.
|
2022-04-15 23:51:46 +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
|
dc16dba65d
|
修订文档; 将大部分Fatal的代码改为Error.
|
2022-04-07 18:18:14 +08:00 |
|
hahahrfool
|
19eda8e356
|
修订文档,代码;添加交互模式中生成分享链接功能,添加交互输入字符串的验证
|
2022-04-06 11:51:14 +08:00 |
|
hahahrfool
|
2b8d966909
|
修订代码
|
2022-04-03 17:10:25 +08:00 |
|
hahahrfool
|
814bcb29f5
|
添加大量交互模式功能
为交互模式添加如下功能:生成uuid,生成随机tls证书,查询当前状态,交互式生成配置文件
|
2022-04-01 19:13:47 +08:00 |
|
hahahrfool
|
8ad0905ce9
|
feat:apiServer;修复生成的证书无法使用的问题;修复小bug
添加如下命令行参数
-i interactive mode (只是加了一个参数, 还未实现交互功能)
-ea enable api server
-spp api Server Path Prefix, must start with '/',默认值 /api
只有 -ea命令行参数给出后,才会运行api服务器
默认allstate 的api的url 为 https://127.0.0.1:48345/api/allstate
用到basic auth,用户名为admin
密码的toml配置是
[app]
admin_pass = "adfadfadfadfa"
修订 api草案
|
2022-04-01 17:52:18 +08:00 |
|
hahahrfool
|
e732ea3c3b
|
修订代码;修复loglevel为debug时失效问题;dns请求加锁,已经可用
|
2022-04-01 12:31:47 +08:00 |
|
hahahrfool
|
b97e990b44
|
尝试引入zap包作为log包
|
2022-03-31 18:28:57 +08:00 |
|
hahahrfool
|
f310803218
|
修订代码
|
2022-03-31 14:10:05 +08:00 |
|
hahahrfool
|
b31557df14
|
大范围修订代码,以试图防止内存逃逸到堆;
|
2022-03-31 13:33:58 +08:00 |
|
hahahrfool
|
8606e6e573
|
添加-mp参数进行memory pprof. 修订代码
|
2022-03-31 08:36:59 +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
|
1070942f4f
|
修复ws+vless裸奔时,开启readv时的闪退问题
|
2022-03-26 18:18:08 +08:00 |
|
hahahrfool
|
e82aba7370
|
修复utls中,无法重复使用相同config的bug;只好拷贝,放弃指针
|
2022-03-26 16:01:57 +08:00 |
|
hahahrfool
|
4a1f05fd08
|
修复无法加载同文件夹下的配置文件和证书的问题
|
2022-03-26 15:23:04 +08:00 |
|
hahahrfool
|
3838c251ce
|
修订代码,文档,注释,示例
|
2022-03-26 13:27:14 +08:00 |
|
hahahrfool
|
074908ecdf
|
增加alpn配置; 修订示例,代码;
|
2022-03-25 22:55:38 +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
|
536a84def6
|
修订代码,注释,文档
|
2022-03-22 16:46:05 +08:00 |
|
hahahrfool
|
b14c1d03c1
|
为godoc文档对注释进行修订
|
2022-03-21 09:13:10 +08:00 |
|
hahahrfool
|
89e3c8a4ed
|
添加导向某tag的dial的分流的支持;修订代码,文档,示例;
目前已经支持 ip,domain,network,country, inTags 这五种配置方式
|
2022-03-21 00:50:19 +08:00 |
|
hahahrfool
|
a890d39ac7
|
添加toml标准配置格式支持;重构配置相关的代码;修订文档
添加了path分流部分的go test,简单修订 GetRequestPATH_from_Bytes 函数
|
2022-03-18 19:09:02 +08:00 |
|
hahahrfool
|
b533b34e5f
|
fix attempt1. (failed)issue: -lazy在fallback下闪退问题
|
2022-03-17 22:43:25 +08:00 |
|
hahahrfool
|
42236d5cd8
|
添加utls支持,直接用chrome指纹;修订代码
|
2022-03-17 18:40:54 +08:00 |
|
hahahrfool
|
6b53f3b03f
|
简单修订代码;从此commit开始,使用go1.18语法
|
2022-03-17 11:42:02 +08:00 |
|
hahahrfool
|
902b0d7d34
|
将所有的使用log的地方通通加上LogLevel的判断.
LogLevel在上个commit就已经被移动到了utils包.
|
2022-03-17 08:35:43 +08:00 |
|
hahahrfool
|
c9cf683a58
|
将common包改名为utils, 因为common太长了
|
2022-03-17 08:11:56 +08:00 |
|
hahahrfool
|
e664b9740e
|
feat:添加回落和分流功能.
创建新子包netLayer, 将 proxy.Addr改为 netLayer.Addr
修订文档
RoutePolicy等分流机制也放到 netLayer
引入github.com/oschwald/maxminddb-golang 依赖,支持使用 GeoLite2-Country.mmdb 来进行ip分流
另外注意它默认的版本对于 golang.org/x/sys 包的依赖太老了,会导致go1.18中编译不通过,我在
go.mod 文件中新增了下面代码,就能通过编译了
```
require (
golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86 // indirect
)
```
verysimple的可执行文件的相同目录下,必须有该mmdb文件才能够开启ip分流功能
新配置方式:配置文件新加一行 "route":{ "mycountry":"CN" }
mycountry指定的国家的ip会被直连发送,其他地址ip会被发送到代理.
新配置方式,回落,直接在 local 项的 url 的 query部分添加 fallback=:80, 或者 fallback=127.0.0.1:80
即可 回落到指定端口.
将tls_test重新挪动到tlsLayer包中
在main.go中添加了 logLevel变量,并且把关于配置文件的部分挪动到 config.go
出了上面的分流和回落以外,还新增支持了 #xxx 的尾缀,用于配置该url的tag. tag在未来会被用于精准分流
Makefile中新增了 PACK 参数用于编译出 打包版的发行包;可选 tag=embed_geoip 参数用于将mmdb.tgz文件内置到可执行程序里
同时,我开始直接使用go1.18编译本项目,期待性能提升,因为这是新发布的版本,看了介绍据说对 mac m1有20%的提升.
|
2022-03-16 19:28:26 +08:00 |
|
hahahrfool
|
861d5a74c5
|
添加fallback功能,修改了proxy.Server接口,修订文档
|
2022-03-16 04:16:19 +08:00 |
|
hahahrfool
|
e428bbc385
|
更新文档,注释
|
2022-03-15 20:26:14 +08:00 |
|
hahahrfool
|
57755801da
|
继续完善lazy_secure功能;仍未完成. 更新文档
|
2022-03-15 12:29:48 +08:00 |
|
hahahrfool
|
43f475eec8
|
使用uuid作为特殊指令,避免0rtt时的探测攻击;新增Makefile
新增的Makefile可以自动将版本号写入程序中。目前默认编译四种环境下的可执行文件
|
2022-03-14 11:19:46 +08:00 |
|
hahahrfool
|
c504424cc6
|
试图解决测速流量过大时,上传时服务器闪退bug;修订文档
没有测出是否解决了bug,因为我根本没再现出来这个bug。。
|
2022-03-14 08:09:03 +08:00 |
|
hahahrfool
|
a72db91512
|
实现lazy_secure代码,仍未完成,更新文档注释;测速
此时的 lazy_secure 代码会导致下面问题,不知原因。
tlsLayer: tls握手失败 : remote error: tls: unknown certificate authority
同时,我进行了测速, 发现lazy特性的速度确实能达到近似直连的速度,
但是同时发现了bug,在测速上传速度时,verysimple的服务端程序会出bug导致闪退,
进而导致上传速度测不到或者测到很低的上传速度。
这个bug在普通日常使用、看视频时是遇不到的,所以我也是首次接触这个bug。
bug内容显示slice问题,似乎是短时间流量过大导致缓存爆掉。
|
2022-03-13 21:57:06 +08:00 |
|
hahahrfool
|
2b235d4d5a
|
修订文档注释;将自签证书更换为ecc证书;
在代码中,新增了 tls lazy secure 的部分,但还未完成全部代码
|
2022-03-13 16:42:25 +08:00 |
|
hahahrfool
|
1e84e3b99a
|
更新文档与注释
|
2022-03-13 13:30:29 +08:00 |
|
hahahrfool
|
a8bb6fce78
|
移除多余代码
|
2022-03-12 22:26:27 +08:00 |
|
hahahrfool
|
fecd46666c
|
使用一种新办法来避免splice割包问题
本办法采取一种 特殊指令的办法,在一端检测到TLS数据后,会向另一端发送 “特殊指令”
而另一端收到特殊指令后,则从 原始数据中提取需要 裸奔的数据,并开始直连。
裸奔数据的读取采用了新的 TeeConn 以及 Recorder技术
|
2022-03-12 22:00:00 +08:00 |
|