From ec3ff810ebf0d74e30e235e38731cef4799802ff Mon Sep 17 00:00:00 2001 From: Jrohy <1101400284jackie@gmail.com> Date: Mon, 19 Nov 2018 00:01:56 +0800 Subject: [PATCH] update README --- README.md | 7 +++++++ fun_img/2.png | Bin 13421 -> 12068 bytes 2 files changed, 7 insertions(+) diff --git a/README.md b/README.md index b562243a..a85a986d 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,8 @@ V2ray多用户管理脚本,向导式管理[新增|删除|修改]传输协议 - 支持http/2, 随机生成伪装h2 path - 开启关闭tcpFastOpen - 开启关闭动态端口 +- 支持新版v2ray配置文件格式(v4.1+) +- 支持范围端口修改 - 支持程序和**命令行参数**管理控制 ## 功能 @@ -38,6 +40,7 @@ V2ray多用户管理脚本,向导式管理[新增|删除|修改]传输协议 - 命令行模式管理v2ray - 支持多用户, 多端口管理 - 开启关闭动态端口 +- 单端口, 范围端口的修改 - 开启关闭tcpFastOpen - 快速查看服务器连接信息, 常规配置修改 - 自由更改**传输配置**: @@ -120,6 +123,10 @@ source <(curl -sL https://git.io/fNgqx) --remove **不支持Centos 6** ## 更新日志 +**2018.11.18** +支持新版v2ray配置文件格式(v4.1+), 升级脚本自动转换格式为新版 +支持范围端口修改 + **2018.10.9** 面向对象 来重构代码 加入json文件缓存(利用序列化实现) diff --git a/fun_img/2.png b/fun_img/2.png index ce3b5b4f590386b4988d6b057f74fa2d57294ae2..7110e87840cc3736c16445f2537802016d8c8e8e 100644 GIT binary patch literal 12068 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 Y-4}k8mlFbfVFzSlXl77x>E4t71q&5Fs{jB1