Releases: e1732a364fed/v2ray_simple
v1.1.3-beta.2
添加大量交互模式功能
添加 api服务器功能
为交互模式添加如下功能:生成uuid,生成随机tls证书,查询当前状态,交互式生成配置文件
-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草案
交互式生成配置文件的功能仅仅简单写了一部分,要完整功能的可以自己PR。反正我自己会写toml文件,不需要这么麻烦。谁懒得写toml文件谁来完善代码。
v1.1.3-beta.1
修订代码;
修复loglevel为debug时拨号直接失效的问题;
dns请求加锁,已经可用。之前dns请求在共用一个net.Conn时没有加锁,导致并发问题。
v1.1.2
从1.1.1以来的变化:
添加dns功能; 解决grpc 悬垂链接问题;
该悬垂问题可能就是v2ray/xray的 “grpc断流问题”,已被本commit轻松搞定。
引入zap包作为log包, 而且现在日志有彩色了;改进内存问题,将内存逃逸降低到最低。
解决readv内存泄漏问题;解决转发时断连后的悬垂链接问题
添加 android_arm64 编译版本(可用于termux);新增 -pp和-mp命令行参数,用于pprof。
修复小bug。
dns配置:
[dns]
servers = [
"udp://114.114.114.114:53" # 如果把该url指向我们dokodemo监听的端口,就可以达到通过节点请求dns的目的.
]
[dns.hosts] # 自己定义的dns解析
"www.myfake.com" = "11.22.33.44"
一旦配置了dns项,则所有dns都会试图向默认dns服务器请求;
具体还可参考 multi.client.toml
dns功能目前代码有点问题,先作为预览功能吧,别用,看看配置即可,下一版本会完善。
v1.1.1
从1.1.0 到 1.1.1 到改动:
添加quic和hy阻控; 若tls证书配置未指明,会在内存生成随机rsa证书
防止udp转发时被裸奔;修缮socks udp associate; 目前udp已经没问题并通过了 go test测试
修复分流失效的bug;
全面修订splice和readv的代码,性能提升, 此时vless裸奔和 vless+ws裸奔的服务端 都是可以直接splice的;
添加-gu参数,可生成随机uuid字符串供你参考。
发布包不再具有版本号后缀。
关于quic和 hysteria
我虽然添加了hy阻控的选项,但是并没有使用hysteria的数据头,因为我们内部还是使用的vless进行验证。
本质上hysteria既是一个app,又是一个协议,又是一个阻塞控制方式。我们只采用它的阻塞控制。
配置文件请参考 examples/quic.client.toml 和 examples/quic.server.toml
总之就是如下配置
advancedLayer = "quic"
extra = { congestion_control = "hy", mbps = 3000 }
如果不喜欢hy阻控就把extra这行注释掉
因为我们不使用hysteria协议头,所以没必要区分 上行流量和下行流量, 我们这里统一是上行。因为只有发送方 可以控制这个参数
如果mbps没指定,则默认为3000
关于我对hysteria代码的研究可以参考 https://github.com/hahahrfool/hysteria-
v1.1.0
调节readv参数,现在readv性能应比之前强。
修复ws+vless裸奔时,开启readv时的闪退问题
修复使用utls时 无法连接服务端的bug
修复无法加载同文件夹下的配置文件和证书的问题
增加了1.1.0的macos的测速文件。
在本次测速中,在不开启lazy时,verysimple就已经超过了xray的xtls, 开启了lazy之后,verysimple比xtls快的就更多了。
v1.0.9
新增grpc功能,直接就是多路复用的状态。配置详见新增的两个grpc开头的示例文件;
与 xray/v2ray的grpc 兼容。
新增 自动下载 mmdb文件功能,若发现目录中不含有 GeoLite2-Country.mmdb, 则会自动从 https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb 下载
进一步减轻readv的内存分配负担.
增加 alpn 配置,详情见示例配置
默认不再输出supported protocols,而是用 -sp 参数 打印输出
用 gonum数学包来加速fallback匹配
修复windows中 完整配置文件路径 磁盘符号无法识别小写的问题
修复udp连接时服务端会闪退的bug
关于grpc 可以看一下 我的一个 简短的讨论: https://github.com/hahahrfool/v2ray_simple/wiki/关于grpc
v1.0.8
完善对writev的支持;为vless和ws实现MultiWriter;
增强readv性能,减少内存分配
添加sni和alpn回落
修复 websocket时无回落的问题
修复 websocket不匹配时直接返回内部错误字符串导致 可被主动探测 的超级bug
修复回落不匹配问题
修复websocket时readv闪退问题
修复 命令行 loglevel(-ll)参数被配置文件覆盖问题
将所有示例移动到examples文件夹
v1.0.7(有bug)
添加readv功能, 可提升性能, 默认打开状态,可以选择性关闭。
toml 新增 app.noreadv项,命令行参数新增 -readv
关于readv的研究,可参考 https://github.com/hahahrfool/readv-
添加ws的0-rtt支持;兼容xray/v2ray
earlydata 的最大长度 本作直接固定为2048长度。
配置文件格式:
extra = { ws_earlydata = true }
服务端和客户端都要使用该配置才行。这是为了安全考虑。
增加对 unix domain socket 和 udp 的 网络层支持
配置中,listen和dial中,可添加 network = "udp" 或者 network = "unix" 字段,不添加则默认tcp;使用unix时,host里填写unix domain socket 的 你想监听的文件名(文件不必已存在)。
修复闪退bug;修复ws对分片数据读取时产生的错误
v1.0.6(有bug)
添加websocket协议,dokodemo协议 以及 http协议; websocket 使用最优性能的 gobwas/ws 包。
添加多监听多拨号配置支持,详情参考 z_multi.client.toml
添加定向分流支持,详情参考 z_multi.client.toml; 目前已经支持 ip,domain,network,country, inTags 这五种配置方式
添加 default_uuid, loglevel 等 app级别的 配置
目前将所有示例toml文件均打包到了tgz文件中。某些示例文件中我有详细的注释帮助您。
注意,如果toml文件中没有 [app]
项的话会造成程序闪退。我已在最新代码里修正了该问题,请添加 [app]
项,或者用最新代码编译,或者等待新版本。
v1.0.5
添加utls支持,直接用chrome指纹,配置见示例文件
添加回落path 功能; 具体配置见示例配置文件
极简模式配置文件 改动:local 改为 listen, remote 改为 dial;
增加了 -L 和 -D 命令行参数,具体看Readme.md。如果没有配置文件存在的话,就会默认查看是否给定了 -L和-D参数.
修复 -lazy在fallback下闪退问题
将mycountry的配置同时用于顶级域名的国别分流
如果极简模式配置文件没给定dial的话,默认就认为是 direct://
添加LogLevel功能,命令行参数为 -ll=0 (0=debug, 1=info, 2=warning, 3=error,4=fatal)
添加toml标准配置格式支持;重构配置相关的代码;修订文档
现在讲配置格式分为极简模式(json里填url),标准模式(toml),兼容模式(v2ray的json,以后实现)
标准格式请参考 server.example.toml 和 client.example.toml