Skip to content
This repository has been archived by the owner on Mar 17, 2024. It is now read-only.

Releases: e1732a364fed/v2ray_simple

v1.2.1

08 May 10:16
Compare
Choose a tag to compare

http 和 socks5

令http支持用户名密码(basic auth)
令socks5支持用户名密码
添加 socks5http 协议,与clash的mixed等价.

使用方式详见 vlesss.client.toml 和 socks5.toml, 就是把 user 和 pass 填写在 uuid字段内。

tls 客户端证书

tls 支持客户端证书和CA. 使用方式详见 vlesss.client.toml 和 vlesss.server.toml

就是 服务端的listen 加一个 ca = "ca.crt", 客户端的dial 也添加 cert 和 key。

客户端证书以及CA证书的 生成命令 请阅读 README.md 的相关部分。

真实nginx响应

一,RejectClient中新增nginx类型,返回 nginx真实响应。

你还可以阅读 该 wiki页面

https://github.com/e1732a364fed/v2ray_simple/wiki/%E5%85%B3%E4%BA%8E-reject-%E4%B8%8E-blackhole

二,在所有情况下,在没有回落时返回真实nginx 400 http相应 然后再关闭,而不是直接关闭。这样可以模拟一个网页服务器,更加逼真。

换句话说,最新版本中,就算你不设置任何回落,你的vs服务器对非法请求的响应 仍然像一个 nginx 服务器一样。( 上面是一个居中的 “400 Bad Request”,中间是分割线,下面是nginx版本号)

配置格式修订

将分流的inTag改名为fromTag, dialTag改名为 toTag, 这样含义更加清晰。

将fallback的from从string改为[]string,这样可以支持从多个listen fallback到相同的目标,又不至于使用默认回落, 更灵活.

支持使用@vlessws 这种tag来设置fallback的dest

其它

支持 grpc 遇到 h1请求以及未知请求时,回落到 h1

令trojan支持回落;添加共用端口的回落示例 , multi_samePort.server.toml, 实测可用

优化代码。

bug 修复

修复 #61,令 websocket在path访问正确但是不是ws连接时,也进行回落,而不是返回一个错误
修复 #67: route 的 domain 多个 规则 写在 列表里时不会完全匹配到.
修复listen在遇到EOF时无限循环的bug
修复socks5的dial连不上的bug

v1.2.1-beta.1

06 May 15:03
Compare
Choose a tag to compare

令trojan支持回落;添加共用端口的回落示例 , multi_samePort.server.toml, 实测可用.

将分流的inTag改名为fromTag, dialTag改名为 toTag, 这样含义更加清晰。

将fallback的from从string改为[]string,这样可以支持从多个listen fallback到相同的目标,又不至于使用默认回落, 更灵活.

支持使用@vlessws 这种tag来设置fallback的dest

修复socks5的dial连不上的愚蠢bug,现在socks5的dial已经可用。且添加了一个 socks5.toml 示例文件。

发布为何如此神速

因为我改动了 配置文件的一些 名称,所以我连忙发布一个新的版本,否则小白读最新代码的示例文件, 然后使用 v1.2.0版本的话,会发现 配置文件格式不匹配。

v1.2.0 正式版

06 May 10:37
Compare
Choose a tag to compare

Full Changelog: v1.1.9...v1.2.0

第一次发布v1.2.0后又发现几个bug,我马上修复了,然后又重新发布了一遍,所以建议重新下载。
总之v1.2.0 目标就是尽量无bug。

自 v1.2.0-beta.4 以来的变化

apiServer

在allstate查询中输出tproxy信息;

添加-sap命令行参数,通过命令行配置apiServer密码, 有了-sap参数之后,开启apiServer就不需要 配置文件了。

Makefile

令Makefile支持同时给出多个 build tag

使Makefile 支持 免参数编译 当前系统的 可执行文件。编译同时会生成一个 BUILD_VERSION 文件,用于记录上一次编译出的版本和tags信息。

Makefile的 BUILD_VERSION 除了commit以外,还 添加了 build_on 和 all_go_files_md5 的信息。

移除根目录的 Makefile,因为用不到

其它

添加 socks5 的客户端 dial。(有bug,已在最新代码修复,可等1.2.1)

添加给quic的hy的手动挡添加初始倍率的配置,hy_manual_initial_rate

添加极简模式配置文件的热加载功能;

全面修订代码和文档。

bug 修复

修复极简配置模式无法正确加载的bug

修复监听tcp后,未被添加到allServers列表的bug

修复一个热删除配置的bug

修复 -c没给出而-L-D命令给出时运行错误的bug

修复h2回落时使用 PROXY protocol 时的一个bug

修复 panic捕获后没有按行打印出 的问题

修复当 toml中没有dial给出时自动退出的问题;应该自动添加一个direct并继续运行。

修复fallback中填写from时会闪退的bug, 这是一个傻bug

修复alpn无法回落的bug, 这是由于服务端没有给出完整的alpn列表导致的

从 v1.1.9 到 v1.2.0 的所有变化

grpc回落!

令grpcSimple 可以回落到http2! 实测真的可以回落的,你只要回落的服务器监听 h2c 即可。

不懂grpcSimple的再听我讲一遍,grpcSimple是我自研的新 grpc 包,不引用 谷歌的grpc包,极大减小可执行文件的大小,且 可以通过 path 回落。

该包的客户端部分借鉴了 clash的gun.go, 但是clash只实现了客户端,而服务端才是重中之重。我实现了服务端,并且实现了grpc的回落!

由于grpcSimple非常优秀,本作默认就是使用grpcSimple包,除非 你用 go build -tags grpc_full 编译。grpcSimple目前唯一不足是不支持 multiMode。不过无所谓的。

Nice。

PROXY protocol

支持回落使用PROXY protocol, 详细配置见 vlesss.server.toml 。 主要就是配置 xver = 1 或者 xver = 2

支持PROXY protocol 的监听

可参考 #51

自动iptables

为tproxy添加auto_iptables配置,支持运行时自动配置iptables, 见 vless_tproxy.client.toml

extra = { auto_iptables = true }

如果给出了 auto_iptables, 且只有一个 tproxy的listen, 则程序会自动在开始监听前配置好iptables,并在程序退出前 清除iptables中被程序改动的部分。

添加交互模式中,为tproxy配置和清除iptables的功能.

自定义 grpc的header

添加grpcSimple自定义header功能, 见 grpcheader.client.toml 和 grpcheader.server.toml

apiServer

在allstate查询中输出tproxy信息;

添加-sap命令行参数,通过命令行配置apiServer密码, 有了-sap参数之后,开启apiServer就不需要 配置文件了。

Makefile

令Makefile支持同时给出多个 build tag

使Makefile 支持 免参数编译 当前系统的 可执行文件。编译同时会生成一个 BUILD_VERSION 文件,用于记录上一次编译出的版本和tags信息。

Makefile的 BUILD_VERSION 除了commit以外,还 添加了 build_on 和 all_go_files_md5 的信息。

移除根目录的 Makefile,因为用不到

其他

添加socks5 的dial (有bug,已在最新代码修复,可等1.2.1)

令tproxy支持分流

在标准 toml 配置中 配置 logfile 配置文件路径。 如 logfile = "/var/log/verysimple/vs_log"

将 -sp 的行为 改为 打印完毕后立即退出。

回落添加一个 "from" 配置,可指示该fallback配置 适用于哪个 listen 配置。如果from 没给出,则所有server都可回落到 该配置。请参考 multi.server.toml

添加给quic的hy的手动挡添加初始倍率的配置,hy_manual_initial_rate

添加极简模式配置文件的热加载功能;

更新依赖包.
全面修订代码和文档。

bug 修复

修复一个导致 使用quic时,回落时马上闪退的bug
修复1.1.9的tproxy不可用的bug;
修复多个fallback存在时 回落不正确的bug
修复交互模式打不开的bug
修复grpc回落h2在回落服务器连不上时,没有及时关闭客户连接的bug
修复ws的headers配置有些情况下匹配错误的bug
修复极简配置模式无法正确加载的bug
修复监听tcp后,未被添加到allServers列表的bug
修复一个热删除配置的bug
修复 -c没给出而-L-D命令给出时运行错误的bug
修复h2回落时使用 PROXY protocol 时的一个bug
修复 panic捕获后没有按行打印出 的问题
修复当 toml中没有dial给出时自动退出的问题;应该自动添加一个direct并继续运行。
修复fallback中填写from时会闪退的bug, 这是一个傻bug
修复alpn无法回落的bug, 这是由于服务端没有给出完整的alpn列表导致的

v1.2.0-beta.4

03 May 14:40
Compare
Choose a tag to compare

自动iptables

为tproxy添加auto_iptables配置,支持运行时自动配置iptables, 见 vless_tproxy.client.toml

extra = { auto_iptables = true }

如果给出了 auto_iptables, 且只有一个 tproxy的listen, 则程序会自动在开始监听前配置好iptables,并在程序退出前 清除iptables中被程序改动的部分。

添加交互模式中,为tproxy配置和清除iptables的功能.

proxy protocol 监听

支持PROXY protocol 的监听。经过测试可成功监听. 可参考 #51

自定义 grpc的header

添加grpcSimple自定义header功能, 见 grpcheader.client.tomlgrpcheader.server.toml

其他

修复grpc回落h2在回落服务器连不上时,没有及时关闭客户连接的bug

修复ws的headers配置有些情况下匹配错误的bug

v1.2.0-beta.3

02 May 23:33
Compare
Choose a tag to compare

让h2的回落 也支持 PROXY protocol

修复交互模式打不开的bug

v1.2.0-beta.2

02 May 13:50
Compare
Choose a tag to compare
v1.2.0-beta.2 Pre-release
Pre-release

支持回落使用PROXY protocol, 详细配置见 vlesss.server.toml 。 主要就是配置 xver = 1 或者 xver = 2

回落添加一个 "from" 配置,可指示该fallback配置 适用于哪个 listen 配置。如果from 没给出,则所有server都可回落到 该配置。请参考 multi.server.toml

修复多个fallback存在时 回落不正确的bug

关于 PROXY protocol

PROXY protocol主要用于 nginx或者 docker 等 反向代理的情况,有些应用需要获取用户的真实ip。

所以回落使用 PROXY protocol 是一项很有实际意义的 功能。

比如获取访问者的ip,如果访问者 多次尝试错误密码,就封杀该ip;如果你不用PROXY protocol,那就把 verysimple的ip给封杀了,那就会很尴尬

你也可以参考我的一个相关的研究页面:#51

其他情况

监听 PROXY protocol

PROXY protocol的监听功能 还没实现,会在v1.2.0 正式版支持。

http2 的 PROXY protocol

暂时没 为 h2 设置 回落 PROXY protocol。这是可以做到的,可以放在下一发布版。

v1.2.0-beta.1

01 May 00:37
Compare
Choose a tag to compare
v1.2.0-beta.1 Pre-release
Pre-release

grpc回落!

令grpcSimple 可以回落到http2! 实测真的可以回落的,你只要回落的服务器监听 h2c 即可。

不懂grpcSimple的再听我讲一遍,grpcSimple是我自研的新 grpc 包,不引用 谷歌的grpc包,极大减小可执行文件的大小,且 可以通过 path 回落。

该包的客户端部分借鉴了 clash的gun.go, 但是clash只实现了客户端,而服务端才是重中之重。我实现了服务端,并且实现了grpc的回落!

由于grpcSimple非常优秀,本作默认就是使用grpcSimple包,除非 你用 go build -tags grpc_full 编译。grpcSimple目前唯一不足是不支持 multiMode。不过无所谓的。

Nice。

其他

令tproxy支持分流

在标准 toml 配置中 配置 logfile 配置文件路径。 如 logfile = "/var/log/verysimple/vs_log"

将 -sp 的行为 改为 打印完毕后立即退出。

更新依赖包

修复一个导致 使用quic时,回落时马上闪退的bug
修复1.1.9的tproxy不可用的bug;

v1.1.9: 全面修订代码,文档;修复一系列bug;修改quic配置格式,见下:

29 Apr 03:06
Compare
Choose a tag to compare

自 v1.1.9-beta.1 以来的改动

grpcSimple 的 回落功能

支持了 grpcSimple 的通过path回落的功能。 如果 请求不是 grpc所配置的 serviceName,则会进行回落。

该功能未经过测试。注意,回落的话应该是回落到 h2c这种,不过我也没测试过,不知道能否成功。

(实测确实没成功,不过最新版本已经能成功回落了,直接下载最新版即可。而且本版本的tproxy有bug,所以我把发布包删了,不管1.1.9即可)

配置格式改动

quic 的配置中,maxStreamCountInOneSession 改名为 maxStreamsInOneConn

bug修复

修复一处quic的代码缺陷导致速度不高问题。
修复 quic 的 too many open streams 问题。
修复 quic的 early实际未生效的问题。
修复 grpcSimple 的一些导致闪退的bug

v1.1.9 的新功能

见 beta.1 的说明。主要是 grpcSimple,选择性编译 等。

v1.1.9-beta.1: 全面修订代码;完成 grpcSimple包;使用 tag选择编译quic 和 grpc

27 Apr 21:52
Compare
Choose a tag to compare

grpcSimple

完成 grpcSimple包;

grpcSimple包的服务端和客户端现在都已完成,且兼容v2ray等内核。
grpcSimple包 简洁、高效,更加科学。暂不支持multiMode。该包 未来将提供 grpc 的回落支持,请期待!

新增 build tags

使用 tag选择编译quic 和 grpc

若 grpc_full 给出,则使用grpc包,否则默认使用 grpcSimple包。grpcSimple包 的go build的编译大小比 grpc包 小 4MB。
若 noquic给出,则不使用 quic,否则 默认使用 quic。若不使用quic,go build的编译大小 可减少 2MB。

比如 go build -tags noquic, 可以编译出 不带有 quic功能的 verysimple

默认 logLevel 修改

默认loglevel 改为 Log_info.

对一般用户而言,还是需要使用Info等级 来了解一下 一般的 日志情况,等到使用熟
练之后,且确认运行没有错误后, 可以自行调为 warning 来提升性能

early的配置格式修改

由于 现在 ws 和 quic 都支持了 0-rtt,我们不再使用 extra,而是直接使用更简单的配置方式:

early = true, 你可以查看相关示例文件进行对照。

其它

本次重构了所有的 advLayer 代码,是比较重大的更新。你可以比对本版本与其他版本的 测速,并反馈测速情况 以及可能存在的bug。

v1.1.8

25 Apr 10:04
Compare
Choose a tag to compare

实现 quic 0-rtt, 配置: extra = { quic_early = true }, 注意,似乎没有其他内核支持quic的 0-rtt功能? 所以你两端都要用 verysimple。

grpc的 mult的配置改为"grpc_multi".

其他从 1.1.7升至 1.1.8 的变化 详见 1.1.8-beta.1 和 1.1.8-beta.2 的发布说明。

包含 bindToDevice, vless的v1 的 mux支持,reject协议, grpc multiMode 等。