Releases: e1732a364fed/v2ray_simple
v1.2.5
年终献礼,GUI模式!
GUI 功能已经完善,下载用用吧!现在可以在gui里增删改查listen和dial配置,以及hy手动挡等调节。
还有系统代理的开关等功能。
目前该GUI在macOS上是最美观最好看的,其次是linux,最丑的是win。
该gui使用的是c语言 原生gui库 libui-ng,加上我的 golang绑定 github.com/e1732a364fed/ui 。该ui库在windows上比较卡顿,我消除了这个卡顿,但是副作用是有时刷新不及时,需要更换tab再换回才能刷新。这个要等上游修复了。
其他主要新增的功能
shadowTls 以及 tun模式。查看之前的beta/alpha版本发布说明。
本次发布集合了gui,shadowTls和tun这三个重量级功能,可谓是吐血更新了。
其他
交互模式 添加导出全部配置功能
apiServer添加dump命令,导出当前配置到文件
上面两个功能可用于动态修改配置后的持久化。当然,在gui模式里也能保存当前配置。
添加终端显示qrcode功能, 用 -qr 加 任意字符串, 即可生成二维码
新增noutils编译tag
每隔5分钟输出一次当前总状态,close #210
url打印出adv的path
url打印时若未配置network,去掉首部的加号
修复vmess的smux的若干问题,已经可用
修复quic关闭时闪退的bug;
令smux+simplesocks支持user分流;fix #217
其他1.2.5 新增的功能请参见各个beta版的说明。
v1.2.5-beta.3
v1.2.5-beta.2
新功能
新增 shadowTls v1 和 v2,实测可用,参见 examples/shadowTls.client.toml 和 examples/shadowTls.server.toml
我们 shadowTls v2时客户端自动使用utls,强强联合。
不过,目前vs把shadowTls当作tls的一种协议,但实际情况是它根本没有加密内层流量!
所以你只能用 shadowTls + vmess 这种有内层加密的流量,不能用trojans或者vlesss
目前vs把 shadowTls当作tls层的一种替代,这是因为它外观上看起来确实是一层tls。
但问题在于它application data里面的数据是没加密的。这就导致了 直接用 shadowTls + trojans 依然相当于裸奔。
我个人认为,其实vs这种把shadowTls放在tls层的处理方式比较 妥当,是正确的,问题不在vs,而是在 shadowTls
我们只要为shadowTls加一层可选的内层加密就好了。如果内层是vmess,就不用加密,如果内层是vless,就加密。
不过个人认为,意义不是很大,因为加了内层加密的话,那么和直接用vmess应该是完全等价的。
dns的监听功能, 配置添加 dns.listen 项
添加传入多个配置文件的支持
多个配置文件就使用多个 -c 参数,如 -c c1.toml -c c2.toml
vs会尝试直接将多个文件拼接在一起后 作为一个整体解读
添加-llf参数单独配置日志文件的日志等级
现状控制台的日志等级和日志文件的日志等级可以不同
配置格式修改
utls = true 改为 tls_type = "utls",老格式依旧可用,建议用新格式
use_mux = true配置改为 mux = true, 老格式依旧可用,建议用新格式
fix
fix #201,修复shadowsocks的udp传输错误问题,
修复vmess的smux卡顿问题, 已经可用。(实测网络有延迟时还是有bug, 在1.2.5正式版被修复)
v.1.2.5-beta.1
经调试自动路由功能, tun 已经完全可用
增加 extra.tun_dns配置,若未给出,默认为8.8.8.8。 这个配置是为了防止域名污染。这是因为默认的自动路由没有路由本地ip的访问,电脑默认会使用本地路由器作为dns,然后就造成了污染。
-d 参数现在会自动在 windows上下载 wintun.dll
添加 -cvqxtvs 和 -eqxrs 命令,
分别意思是 convert QX to verysimple 和 extract QX remote servers
将圈叉的配置文件转换为verysimple格式,这样就可以更快地使用自己的vs客户端
sockopt.device 新增对 windows和macOS的支持. 这个全平台的 bindToDevice功能可以很好地配合 tun 来避免回环。
继续补充gui内容。gui现状可以开关vs代理,以及开关系统代理, 并保存你的设置到 .verysimple_preference中
修改grpc/quic/tproxy/tun/ss 的代码执行方式,使用回调而不是chan,应该有性能提升。
新增 notun build tag, 取消 tun和 gui的关联。现状tun默认也在非cgo的普通命令行版本中编译。
交互模式添加search模式,可以按 / 进入搜索模式,搜索你想使用的命令,再按/ 退出。
添加生成uuid后退出的命令行参数 -gu
修复nocli给出时无法编译的问题
v1.2.5-alpha.2
gui
将vsc计划重命名为 vs_gui 计划。
gui中现在有了 start 和 stop按钮 和 一个 Enable的 checkbox,可以快速开关代理。
tun
新增tun功能,配置超简单,直接 protocol = "tun" 即可。在windows和mac上测试通过。
该功能仅在 vs_gui 系列中存在
不过如果要自动配置路由表,还需要其它配置,见 examples/tun.client.toml
可以生成一串路由命令让你手动拷贝到命令行执行,也可以纯自动化操作。如果手动拷贝,还能直接出现在gui的文本框里,方便复制粘贴
什么是tun?谷歌一下 tun2socks. 我们vs这里采用的是 xjasonlyu/tun2socks 的 gvisor方案,性能应该与 xjasonlyu/tun2socks 相同。
我们vs里,如果listen为tun,dial为socks5,那就是典型的tun2socks。dial设为别的,那就是 tun2别的。
添加macos的tproxy功能
其他
使用随机证书时自动配置服务端的sni 以及随机证书生成后打印出生成证书的sni;
vs_gui 系列中,命令行参数 -g=false可禁用gui (如果你只想要tun功能,不需要gui,那这个参数就有用)
令ws在upgrade失败时也解析X-forwared-for
fix
fix #199, rejectUnknownSni 问题
fix #191, unix监听打印@而不是unix地址
修复url形式的地址解析失败的问题
修正tls嗅探失效问题
修复将udp路由到reject时panic的问题
修正route过滤ip时遇到 ipv6形式的ipv4的问题
修正alpha.1 中统计数据显示为0的问题
v.1.2.5-alpha.1
新功能
关于 vs_gui 和 vsc计划:
#197
令vmess支持smux, 不过实测很卡,有待进一步调试看看问题出在哪里。
apiServer 添加 getDetailUrl 功能
关于vsb计划:
https://github.com/e1732a364fed/vsb
配置文件 与选项
toml配置文件中 advancedLayer 太长了,现在可以直接写成 adv 了
支持rejectUnknownSni,配置: extra.rejectUnknownSni = true
url配置添加mux配置
添加read_timeout的app配置;
添加 sunsafe, scert, skey 选项,用于监听明文和配置api server的 https的证书
fixes
fix #194
解决url模式下不给出回落会自动添加一个unix回落的问题;关联 #194 中的评论
fix #196,交互模式全变nil问题
其他
移除grpc包; 因为grpcSimple又小又好, 广受欢迎, 因此不再包含老旧的谷歌grpc包
在日志中标注运行的vs版本信息
mux中的请求也打印日志;
修订url转换函数以及url标准
令trojan读到crlf后再结束
根据 https://www.ihcblog.com/a-better-tls-obfs-proxy/
trojan的crlf是模仿http协议,令服务端具有和真实http服务器一样的响应特征
v1.2.4-patch.1 (交互模式有nil bug)
v1.2.4 (交互模式有nil bug)
新功能
协议
支持了shadowsocks aead,包括tcp和udp,实测可用 (后发现udp有问题,在1.2.5-beta.2以及以后版本修复了)。运行 examples/ss.client.toml 和 examples/ss.server.toml 试一下吧!
添加 reject 作为listen
以前的版本我们只是仿照v2ray 的 blackhole 这个 outbound 制作了 对应的 reject的 dial。但是后来发现 reject也可以 作为 最终 fallback回落,所以 也添加为 listen协议。
新增 reject.server.toml 示例文件 供你参考。
url格式
全新定义url格式, 在
https://github.com/e1732a364fed/v2ray_simple/tree/main/docs/url.md
新的url格式完美支持了adv高级层,以及各种extra配置,已经十分可用了
新格式有一些优点,比如
- path直接就放在url的path中,不用另外加一个 path=xxx的 参数了;
- ss/socks5的用户名和密码也不用单独填写,而是直接遵循 url的rfc定义,用冒号隔开放在 @的前方;
- 采用点号表示法 来描述 header以及extra的内容,十分规整
更强大的交互模式
交互模式现在支持了自动保存用户偏好 (放在 .verysimple_preference中),也可以用 -dp 参数关闭该特性
交互模式现在可以 自动把常用项排序到最顶端.
支持热加载URL、支持将当前配置导出为各种第三方格式/url
支持如下格式
vs标准url
xray分享链接标准提案 (#716)
shadowsocks uri (SIP002)
v2rayN分享链接 (vmess://base64)
Quantumult X (圈叉的配置的 [server_local] 部分)
Clash (yaml配置中 proxies 部分)
dual 网络类型
新增了 "dual" 网络类型,可以填到 network中
在direct, socks5 和 shadowsocks这三个协议,都是可以设置网络类型为dual,表示同时支持tcp和udp,这也是默认的行为;
如果只设为tcp,则协议的 udp功能会被关闭
sendThrough 配置支持双协议
原来sendThrough只能配置一个地址,现在因为支持了dual网络类型,你可以这么填写 "tcp:1.1.1.1:80\nudp:2.2.2.2:8000" 表示 tcp用 前一个地址发,udp用后一个地址发
api server
api server添加热删除功能
举例:/api/hotDelete?listen=1&dial=2 删除第2个listen和第三个dial,具体第几个是啥用 /api/allstate 查
api server 添加 热加载url功能; 举例: /api/hotLoadUrl?listen=vlesss://sdfdfadfss@0.0.0.0:443&dial=...
除了把参数放在query里,也可以放在http的form里提交。
添加sa参数,配置api server的监听地址;
允许api server 在不设置密码时运行
杂项
命令行参数
添加ds命令行参数,可以强制关闭splice
添加-dt, -geosite命令行参数, 以及相关的toml配置中的app配置
添加path参数,可指定文件搜索路径,如 -path /etc/verysimple_files
-dt可调节拨号超时秒数,app配置:dial_timeout
-geosite:app配置:geosite_folder
-geoip: app配置:geoip_file
配置文件
添加 encrypt_algo 配置, 现在vmess/ss 的加密选项不需要再在 extra里填写了,toml配置直接 encrypt_algo = "aes-128-gcm"
即可
添加sendThrough配置,配置为 sendThrough = "63.77.15.11:0"
功能增强
令http层支持回落
为grpc和ws添加解析X-Forwarded-For 功能
在Request的Info输出中添加fallback信息
监听uds时,自动设文件权限为666, #160
其它
升级到go1.19
设置 fullcone的超时。默认 fullcone时会有30分钟的超时时间。这回应该不会出现 too many open files 问题了。(该 超时时长暂时不可通过配置文件配置,因为还不确定是否有bug,先测试一下)
令tproxy的fullcone可配置,默认fullcone关闭. 旧版本的 tproxy的fullcone是无法调节的,现在可调节了。
tproxy 现在也可以被热加载、删除了
bug fix
修复 reject 的 nginx 类型 的 多个错误
修复tproxy代码中的 一些缺陷
令grpcSimple返回正确的h2c 拒绝响应
修复vmess的prng使用math/rand的漏洞,关联 #161
修正nginx响应的行为
fix #113 , 使用smux时会出现无法加载的情况
fix #115
fix #132, 修复panic的bug
fix #142,修复tproxy无法路由的bug
fix #144, 令拨号时使用sockopt
fix #118, 修复无法传输ipv6 的bug
fix #154,使用proxyProtocol时闪退的bug;
fix #151 bug
fix #166, vmess 在 ws + earlydata时 会导致连不上
fix #158, lazy = true 時,fallback 無回應
fix #159 , 使用nginx+grpc做服务时,配合有的客户端读取firstpayload超时的话会导致连接被关闭
fix #157 , 某些客户端与与vs之间的socks UDP连接不正常
v1.2.4-beta.7
新功能
api server添加热删除功能
举例:/api/hotDelete?listen=1&dial=2
删除第2个listen和第三个dial,具体第几个是啥用 /api/allstate
查
api server 添加 热加载url功能; 举例: /api/hotLoadUrl?listen=vlesss://sdfdfadfss@0.0.0.0:443&dial=...
除了把参数放在query里,也可以放在http的form里提交。
添加sa参数,配置api server的监听地址;
允许api server 在不设置密码时运行
交互模式的用户偏好现在可以被自动保存;记录最近的交互项
自动保存到 .verysimple_preferences 文件中
添加 -dp 选项,可关闭 该特性
最近的交互项现在可以被排序到首位,方便多次执行
完成url标准格式,见 https://github.com/e1732a364fed/v2ray_simple/tree/main/docs/url.md
新定义的url标准格式比以前的url更强大了。
交互模式添加 热加载url配置功能
交互生成各种分享url/格式;修订交互模式
支持如下格式
vs标准url
xray分享链接标准提案 (#716)
shadowsocks uri (SIP002)
v2rayN分享链接 (vmess://base64)
Quantumult X (圈叉的配置的 [server_local] 部分)
Clash (yaml配置中 proxies 部分)
杂项
升级go版本到1.19
添加 encrypt_algo 配置
令http层支持回落
添加ds命令行参数,可以强制关闭splice
fix
fix #160, splice的问题
fix #170, lazy在vless v1不可用
fix #178, tproxy传输ipv6的udp时出错
fix #136, trojan/simplesocks传输ipv6的udp数据时出错
修复socks5的client的udp associate的问题
v1.2.4-beta.6
本更新主要是bug修复
在Request的Info输出中添加fallback信息
监听uds时,自动设文件权限为666, closes #160
fix #166, vmess 在 ws + earlydata时 会导致连不上
fix #158, lazy = true 時,fallback 無回應
fix #159 , 使用nginx+grpc做服务时,配合有的客户端读取firstpayload超时的话会导致连接被关闭
fix #157 , 某些客户端与与vs之间的socks UDP连接不正常
beta.5 有问题,159bug没修好反而变得更严重了,就改了一下马上发布beta.6, 并删掉了beta.5
还有一些其他新特性正在写,但是并未完成,需要等待下一个版本或者正式版中再告诉大家