- add independent (non-consecutive) per-protocol port editing in [sb -d], keeping the sequential start-port mode with preview confirmation
- sync port changes to the nginx reverse proxy and hot-reload them automatically
- accept an IP or a domain for the server address (DDNS-friendly for NAT VPS whose public IP changes daily), both during install and via [sb -d]
- switch port occupancy checks to strict matching so 1111 is no longer falsely treated as 11111
- stop treating a domain as an IPv6 stack in the ChatGPT unlock check, letting DNS use the system default stack
v1.3.20 feat: 新增各协议独立端口与域名服务器地址
- [sb -d] 支持为各协议设置独立(非连续)端口,保留开始端口顺序占用模式并直接预览确认
- 端口变更自动同步 nginx 反代并热加载
- 服务器地址支持填写 IP 或域名(NAT VPS 公网 IP 每日变化时可用 DDNS),新安装与 [sb -d] 修改均可
- 端口占用检测改为严格匹配,1111 不再误判 11111 占用
- ChatGPT 解锁检测不再将域名误判为 IPv6 栈,改由系统默认解析
- add real-time traffic stats via clash_api: total in/out shown in `sb -n` output and main menu status line
- inject `experimental.clash_api` into the base config, with a fallback patch plus SIGHUP reload for legacy configs and cleanup of stale `v2ray_api`
- add shared `find_free_port()` for both the nginx default port and the clash_api port, probing for unused ports within the script port range
- add `format_traffic()` and `ensure_stats_data()` helpers, fetching `/connections` with curl-first, wget fallback
- speed up the CDN status probe with HEAD requests and explicit timeouts in `get_code()`
v1.3.19 feat: 新增实时流量统计,加速优选地址探测
- 新增基于 clash_api 的实时流量统计:`sb -n` 输出与主菜单状态行展示总入站/出站流量
- 基础配置注入 `experimental.clash_api`,旧配置自动补全并 SIGHUP 热加载,同时清理残留的 `v2ray_api`
- 新增公共 `find_free_port()`,nginx 默认端口与 clash_api 端口共用,在脚本端口范围内探测未被占用的端口
- 新增 `format_traffic()` 与 `ensure_stats_data()` 辅助函数,优先 curl、wget 兜底拉取 `/connections` 数据
- 加速优选地址状态探测:`get_code()` 改用 HEAD 请求并显式设置超时
- Add bind_interface option in sb -d menu to bind outbound traffic to a specific NIC
- Change v2rayN Hysteria2 Realm config from Finalmask field to ProtoExtraObj
v1.3.16 feat: 支持指定网络出口,多网卡绑定
- sb -d 菜单新增「指定网络出口」选项,可为出站流量绑定特定网卡
- v2rayN 的 Hysteria2 Realm 配置从 Finalmask 字段改为 ProtoExtraObj
- add Armbian detection and mapping logic in system identification
- update error messages to include Armbian in supported systems
feat: 增加对 Armbian 系统的支持
- 在系统识别逻辑中添加对 Armbian 的检测与映射
- 更新错误提示信息,在支持系统中包含 Armbian
- Add support for enabling/disabling Hysteria2 port hopping and modifying port ranges after installation
- Allow customization of Hysteria2 upload/download bandwidth without reinstalling
- Enhance client configuration with proper Hysteria2 bandwidth (up/down) and port hopping parameters
- Improve port range input validation with automatic separator normalization
- Simplify menu option 9 description to "Change node configuration
增强 Hysteria2,支持安装后配置及客户端参数完善
- 支持安装后启用/禁用 Hysteria2 端口跳跃,并可修改端口范围
- 支持自定义 Hysteria2 上下行带宽,无需重新安装
- 完善客户端配置,补充 Hysteria2 上传/下载速率及端口跳跃参数
- 改进端口范围输入校验,自动规范分隔符格式
- 简化菜单选项 9 描述为“修改节点配置”
Security: Add pinnedPeerCertSha256 for Hy2/Trojan in v2rayN to prevent MITM (replaces AllowInsecure).
Compatibility: Refactor SFM/SFI/SFA configs for sing-box v1.13.0+.
- Auto-create Argo tunnels using Cloudflare API tokens with auto DNS setup
- Intelligent GitHub proxy fallback: test direct first, then cycle proxies
- Support 3 Argo auth methods: Token, Json, and API token
- Add comprehensive API token permission requirements to README
- Update documentation with Cloudflare API setup instructions
Credits: Thanks to zmlu for Cloudflare API implementation approach
- Add SNI (Server Name Indication) support to Hysteria2, Tuic, Trojan, and AnyTLS protocols for improved TLS handshake compatibility
- Update self-signed certificate public key configuration across affected protocol inbound configurations
- Add detailed documentation on handling self-signed certificates in various client applications
- Include client-specific instructions for certificate validation and bypass methods
- Improve security posture by leveraging SNI for better certificate verification workflows
- Update configuration templates and inline comments for clarity on certificate usage per protocol
Add the full GNU General Public License v3.0 text to the project root (LICENSE) and
include the SPDX identifier (SPDX-License-Identifier: GPL-3.0-or-later). Update README
to reference the LICENSE file.
1. Reality Configuration Update: In Reality configurations, the original multiplexing (multiplex) has been replaced with xtls-rprx-vision flow control, improving transmission efficiency, reducing latency, and enhancing security. The original configuration conversion script command remains fully compatible and unchanged — bash <(curl -sSL https://raw.githubusercontent.com/fscarmen/tools/main/vision.sh).
2. Quick Install Mode: Added a one-click installation feature that auto-fills all parameters, simplifying the deployment process. Chinese users can use -l or -L; English users can use -k or -K. Case-insensitive support makes operations more flexible.
3. Custom Reality Key Support: In response to user feedback, you can now specify a custom Reality private key via --REALITY_PRIVATE=<privateKey>. The script will automatically compute the corresponding public key using the integrated API. If left blank, it generates a random private-public key pair in real-time.
4. Enhanced HTTP + Reality Support in Clash Clients: Added full compatibility for HTTP + Reality transport in Clash clients, improving connection stability and performance.
This commit improves the security posture for Shadowrocket, Clash, and sing-box clients by implementing certificate fingerprint validation instead of the less secure certificate skipping approach.
Key changes:
- Shadowrocket: Replaced insecure TLS validation with HPKP-based certificate fingerprint verification
- Clash: Updated configuration to use certificate fingerprints instead of skip-cert-verify flags
- sing-box: Implemented certificate_public_key_sha256 verification for enhanced TLS security
This change ensures that only connections with verified server certificates are accepted, significantly reducing the risk of man-in-the-middle attacks while maintaining compatibility with self-signed certificates.