V2ray Simple Versions Save

a verysimple proxy

v1.2.5

1 year ago

年终献礼,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

1 year ago

本版本主要是微调和修复

支持打印出tls的具体类型 对splice和readv在某些情况下提升性能

移除极简模式

修复若干grpc回落的问题,现在 grpcSimple 回落到 nginx的h2c应该完美了。关联 #208

extra.tls_cipherSuites 的配置已经可用

移除 Makefile 中 build_on信息 对first payload read错误的日志进行降级, Warn 变Info,Err变Warn

fix #215, vlesss 回落到 vless 出错

v1.2.5-beta.2

1 year ago

新功能

新增 shadowTls v1 和 v2,实测可用,参见 examples/shadowTls.client.tomlexamples/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正式版被修复)

v1.2.5-beta.1

1 year ago

经调试自动路由功能, 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

1 year ago

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的问题

v1.2.5-alpha.1

1 year ago

新功能

关于 vs_gui 和 vsc计划: https://github.com/e1732a364fed/v2ray_simple/discussions/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

1 year ago

在v1.2.4基础上,修复以前出现的两个bug

fix #141,sendThrough失效的问题 fix #174, grpcSimple 在 v1.2.4-beta.3 之后出现的问题

v1.2.4

1 year ago

新功能

协议

支持了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配置,已经十分可用了

新格式有一些优点,比如

  1. path直接就放在url的path中,不用另外加一个 path=xxx的 参数了;
  2. ss/socks5的用户名和密码也不用单独填写,而是直接遵循 url的rfc定义,用冒号隔开放在 @的前方;
  3. 采用点号表示法 来描述 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://[email protected]: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

1 year ago

新功能

api server添加热删除功能 举例:/api/hotDelete?listen=1&dial=2 删除第2个listen和第三个dial,具体第几个是啥用 /api/allstate

api server 添加 热加载url功能; 举例: /api/hotLoadUrl?listen=vlesss://[email protected]: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

1 year ago

本更新主要是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

还有一些其他新特性正在写,但是并未完成,需要等待下一个版本或者正式版中再告诉大家