Commit Graph
46 Commits
Author SHA1 Message Date
fscarmen 2ca9504654 feat: security upgrade for subscriptions, client output improvements
- replace Nekobox with Throne for client output; generate independent Throne config
- security upgrade: remove `insecure=true`, use TLS certificate fingerprint verification

feat: 订阅链接安全升级,客户端输出优化

- 使用 Throne 替代 Nekobox 输出客户端配置,独立生成 Throne 配置
- 安全升级:移除 `insecure=true`,启用 TLS 证书指纹校验
2026-06-06 03:25:28 +00:00
fscarmen a683f289ea fix: correct v2rayN and Throne subscription exports. Thanks to [Maxrxf]
- export Hysteria2 as v2rayn config with bandwidth, certificate, and port hopping metadata
- preserve Hysteria2 upload and download bandwidth values when rebuilding node data
- encode certificate spaces in subscription URLs to avoid invalid TLS certificate parameters
- fix Throne Hysteria2 scheme, allowInsecure flag, ALPN field, and hop interval format
- correct VLESS WS encryption parameter from zero to none

fix: 修复 v2rayN 与 Throne 订阅导出问题。感谢 [Maxrxf]

- 将 Hysteria2 导出为 v2rayn 配置格式,并携带带宽、证书和端口跳跃参数
- 重建节点数据时保留 Hysteria2 上下行带宽配置
- 对订阅 URL 中证书空格进行编码,避免 TLS 证书参数无效
- 修复 Throne Hysteria2 协议头、allowInsecure 标记、ALPN 字段和跳跃间隔格式
- 修复 VLESS WS encryption 参数由 zero 改为 none
2026-05-23 08:46:12 +00:00
fscarmen d785652c53 v1.3.13 feat: add explicit HTTP clients for remote rule sets
* add `http_clients` configuration for sing-box 1.14.0+
* set `route.default_http_client` for remote rule-set downloads
* fix: correct Cloudflare API validation logic

v1.3.13 feat: 增加远程规则集 HTTP Client 配置

* 为 sing-box 1.14.0+ 增加 `http_clients` 配置
* 为远程规则集下载设置 `route.default_http_client`
* fix: 修正 Cloudflare API 判断逻辑
2026-05-17 21:08:30 +00:00
fscarmen b5cf0bdb0a v1.3.11 feat: update v2rayN exports for Tuic, AnyTLS and naive dedicated links
- generate v2rayn:// dedicated links for Tuic subscriptions
- generate v2rayn:// dedicated links for AnyTLS subscriptions
- generate v2rayn:// dedicated links for naive http2 and quic modes
- Thank to @DHR60

feat: 更新 v2rayN 的 Tuic, AnyTLS 与 naive 专属链接导出格式

- 为 Tuic 订阅生成 v2rayn:// 专属链接
- 为 AnyTLS 订阅生成 v2rayn:// 专属链接
- 为 naive http2 和 quic 模式生成 v2rayn:// 专属链接
- 感谢 @DHR60
2026-05-07 12:19:47 +00:00
fscarmen 7ef4b4ee2c fix: correct escaped parentheses in menu prompts
fix: 修正菜单提示中的括号转义
2026-05-01 13:26:26 +00:00
fscarmenandGitHub 272aaab85c fix: correct sing-box template download URL in Docker flow
fix: 修复 Docker 下载 sing-box 模板地址错误
2026-04-23 17:10:01 +08:00
fscarmen 2b00bac908 feat: optimize install UX, refine wording and CDN detection
- Add dynamic step tracking (STEP_NUM/TOTAL_STEPS) for installation.
- Implement calc_install_steps() to auto-calculate progress.
- Refine wording: replace "reality SNI" with "TLS SNI" for clarity.
- Simplify protocol selection prompts by removing fixed step labels.
- Enhance check_cdn() logic by testing actual script URL instead of root.
- Add localized strings (E/C[136-138]) for protocol menus.
- Improve CDN detection reliability with adjusted timeouts and methods.

feat: 优化安装交互、统一文案并增强 CDN 检测逻辑

- 新增安装步骤动态计数,实时显示安装进度。
- 引入 calc_install_steps() 根据协议选择动态计算总步骤。
- 规范化文案:将 "reality SNI" 统一修改为 "TLS SNI"。
- 精简协议选择交互,移除硬编码的固定步骤标识。
- 优化 check_cdn():改为检测脚本实际地址,提升判断准确性。
- 新增多语言文案 (E/C[136-138]) 并调整检测超时逻辑。
2026-03-30 13:28:07 +00:00
fscarmenandGitHub c2c59acfbb fix: correct password variable in Shadowsocks configuration
- Replace `${UUID}` with `${SIP022_PASSWORD}` in Clash configuration
- Ensure consistent SS password across all clients (ShadowRocket, V2rayN, NekoBox, Sing-box)
- Fix connection issues caused by inconsistent passwords
2026-02-28 12:06:16 +08:00
fscarmen f4af9c1687 Modify the IP API URL to ip.cloudflare.now.cc 2026-02-20 04:32:08 +00:00
fscarmen 4d87f17ec3 v1.3.4 Chore: upgrade SS encryption method to SS-2022 spec. 2026-02-10 17:11:06 +00:00
fscarmen 6c4021a9b7 Thanks to @DHR60. Set allowInsecure=true for better legacy version compatibility
Thanks to @DHR60 (v2rayN team) for pointing this out
Ref: https://github.com/2dust/v2rayN/issues/8670#issuecomment-3771775914
2026-01-20 09:42:12 +00:00
fscarmen 8bd017c214 v1.3.3 feat: enhance security and update SFM/SFA compatibility.
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+.
2026-01-20 07:32:16 +00:00
fscarmen 146f21f780 Restore statistics of run-times. 2025-12-22 11:47:48 +00:00
fscarmen a7dd49d7ec Fix Alpine compatibility: use musl libc instead of glibc. https://github.com/fscarmen/sing-box/issues/249 2025-12-21 01:42:09 +00:00
fscarmen d7cdde95f6 v1.3.2 feat: Add Argo tunnel creation via Cloudflare API
- 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
2025-12-15 13:36:23 +00:00
fscarmen cdc8601727 feat: Add SNI support and self-signed certificate enhancements for multiple protocols
- 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
2025-12-09 14:51:03 +00:00
fscarmen f0240b9081 Add LICENSE (GNU GPL v3)
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.
2025-11-21 11:42:33 +00:00
fscarmen 8ebd2d54f6 Switched the image from supervisord to s6-overlay because it provides a much smaller memory footprint.
s6-overlay vs supervisord — Memory Footprint Comparison

s6-overlay:
Uses only 1–2 MB of RAM. Its service processes typically consume around 200 KB RSS each.
Extremely lightweight, written in C, minimal overhead.

supervisord:
Consumes roughly 10–15 MB of RAM in real-world usage.
Implemented in Python, so it naturally has a higher baseline memory footprint (≈8–10× s6-overlay).
2025-11-16 01:38:44 +00:00
fscarmen 4713fc4cca Optimized Sing-box deployment with local-first Reality key handling for reduced latency, DNF integration for modern CentOS systems, and Supervisor as PID 1 in Docker for robust process supervision.
1. Local-First Reality Key Computation: Prioritize on-device calculation of public key from private key for faster processing; fallback to API only if local fails, reducing latency and API calls.

2. DNF Support for CentOS 8+: Replace YUM with DNF on CentOS 8 and later for improved dependency resolution and speed, with backward compatibility for older systems.

3. Ensure Supervisor runs as true PID 1 in Docker container for proper signal handling and supervision.
2025-11-15 03:07:34 +00:00
fscarmen 76920a992b v1.3.1 Quick Install Mode and Custom Reality Key Support.
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.
2025-11-12 10:39:08 +00:00
fscarmen c1cc9d372e v1.3.0 Replace multiplex with xtls-rprx-vision flow control in reality configuration. 2025-11-11 02:56:12 +00:00
fscarmen 55779c3f7d feat: Enhance self-signed certs with DNS SAN and add insecure=1 support to v2rayN TUIC/Trojan URIs. 2025-11-08 16:13:01 +00:00
fscarmen adcaf813fc v1.2.19 Enhance security by replacing certificate skipping with certificate fingerprint verification
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.
2025-11-06 09:16:58 +00:00
fscarmen 85917ee7f4 Fix a bug in Clash proxy format; Change the Github Proxy. 2025-08-22 14:00:28 +00:00
fscarmen 56004f8f75 Modify the API URL for counting runtime statistics. 2025-07-28 08:33:11 +00:00
fscarmen 464c5dc714 Modify DNS strategy logic to use ping for detecting IPv4 and IPv6 network connectivity. 2025-07-24 13:39:02 +00:00
fscarmen b520674f09 Prioritize using a GitHub proxy and replace the script execution count tracking service. 2025-07-12 04:18:19 +00:00
fscarmen 38a7f4cd77 Fix the issue where AnyTLS URI is not displayed in Shadowrocket. 2025-07-01 08:19:41 +00:00
fscarmen c37baf743c fix bug when upgrading sing-box to the latest core version. 2025-05-19 04:23:42 +00:00
fscarmen ee030a8e09 v1.2.16 Use OpenRC on Alpine to replace systemctl (Python3-compatible version). 2025-04-07 02:01:40 +00:00
fscarmen 712185c578 v1.2.15 AnyTLS supports output for clients such as Shadowrocket, Clash Mihomo, and Sing-box. 2025-04-05 14:18:05 +00:00
fscarmen 5312718dde Use Firebase realtime database + Netlify cloud function to replace hits.seeyoufarm.com for usage statistics; Replace CF CDN domains. 2025-04-03 07:45:56 +00:00
fscarmen 974fe8736d Adapt to the new DNS configuration format in Sing-box v1.12 alpha.18+. 2025-04-01 15:22:17 +00:00
fscarmen bd3e1777b7 domain_strategy is merged to domain_resolver in sing-box 1.12.0; Clash support TCP Brutal. 2025-03-25 12:52:30 +00:00
fscarmen d6ab0a626d v1.2.14 Added support for anytls protocol. 2025-03-24 00:53:26 +00:00
fscarmen bf575805bb v1.2.13 Compatible with Sing-box 1.12.0-alpha.18 2025-03-18 05:43:17 +00:00
fscarmen 0079e3d06f v1.2.11 Add server-side time synchronization configuration. 2025-01-28 02:14:00 +00:00
fscarmen 2a4f2eccfd v1.2.10 Add port hopping for hysteria2 in sing-box client output. 2024-12-31 02:01:13 +00:00
fscarmen 2415986d18 v1.2.9 Refactored the chatGPT detection method. 2024-12-26 16:29:05 +00:00
fscarmen fd7ede0255 v1.2.8 Refine the Warp routing for chatGPT. 2024-12-13 14:36:55 +00:00
fscarmen 27c466d090 v1.2.7 Compatible with Sing-box 1.11.0-beta.8+. Thanks to the PR from brother Maxrxf. 2024-12-10 14:21:00 +00:00
fscarmen b05aec66ad Force sing-box vesion to 1.11.0-alpha.6 2024-11-08 07:42:38 +00:00
fscarmen a2dffc7e67 v1.2.6 Fixed the bug that clash subscription. 2024-10-28 12:34:58 +00:00
fscarmen 7159e0d5b1 Add Github proxy and translation api; Renew CF CDN; Optimize code. 2024-05-21 09:50:46 +00:00
fscarmen 53065a4e83 Fix a bug in Json and Token Tunnels. 2024-04-04 15:26:05 +00:00
fscarmen edb022abfc Sing-box + Argo container is newly launched. 2024-04-01 13:24:01 +00:00