目录
什么是 sing-box?
sing-box 是一款开源的、跨平台的代理软件,它支持多种代理协议,如 Shadowsocks、Trojan、VMess 等,可以帮助用户实现科学上网、翻墙等功能。它由 SagerNet 团队开发,在 GitHub 上开源,得到了广泛的关注和使用。
为什么选择 sing-box?
相比其他代理软件,sing-box 具有以下优势:
- 跨平台支持: sing-box 可以在 Windows、macOS、Linux 等多种操作系统上运行,为用户提供了更广泛的适用范围。
- 协议丰富: sing-box 支持多种代理协议,包括 Shadowsocks、Trojan、VMess 等,满足不同用户的需求。
- 性能优秀: sing-box 采用了高效的代码实现,在保证稳定性的同时,也提供了出色的性能表现。
- 功能强大: sing-box 除了基本的代理功能外,还支持负载均衡、DNS 优化等进阶功能,为用户带来更好的体验。
- 开源免费: sing-box 是一款开源软件,用户可以免费使用,同时也可以参与到项目的开发和维护中来。
sing-box 的安装与配置
在不同平台上安装 sing-box
sing-box 支持多种平台,用户可以根据自己的操作系统进行安装:
- Windows: 可以在 GitHub 发布页面 下载对应的 Windows 版本,然后解压缩并运行即可。
- macOS: 可以使用 Homebrew 包管理器进行安装,命令为
brew install sing-box
。 - Linux: 不同的 Linux 发行版有不同的安装方式,可以查看 sing-box 的 GitHub 仓库 了解详细信息。
sing-box 的基本配置
sing-box 的配置文件采用 JSON 格式,用户可以根据需求进行修改。下面是一个基本的配置示例:
{ “log”: { “level”: “info”, “output”: “/path/to/log/file.log” }, “inbounds”: [ { “type”: “socks”, “listen”: “127.0.0.1”, “port”: 1080, “settings”: { “udp”: true } } ], “outbounds”: [ { “type”: “direct”, “tag”: “direct” }, { “type”: “shadowsocks”, “server”: “example.com”, “port”: 8388, “method”: “aes-256-gcm”, “password”: “your-password”, “tag”: “ss-outbound” } ], “routing”: { “rules”: [ { “type”: “field”, “inboundTag”: [“socks-inbound”], “outboundTag”: “ss-outbound” }, { “type”: “field”, “network”: “udp”, “outboundTag”: “ss-outbound” }, { “type”: “field”, “network”: “tcp”, “outboundTag”: “direct” } ] }}
在这个示例中,我们配置了一个 SOCKS5 代理,并将 UDP 流量和 TCP 流量分别路由到 Shadowsocks 和直连出站。用户可以根据自己的需求修改配置文件中的参数。
进阶配置:自定义协议和路由
除了基本的配置,sing-box 还支持更多高级功能,如自定义协议和路由规则。例如,用户可以添加 Trojan 协议的出站,并根据域名或 IP 地址进行路由:
{ “outbounds”: [ { “type”: “trojan”, “server”: “example.com”, “port”: 443, “password”: “your-password”, “tag”: “trojan-outbound” } ], “routing”: { “rules”: [ { “type”: “field”, “domain”: [“example.com”, “google.com”], “outboundTag”: “trojan-outbound” }, { “type”: “field”, “ip”: [“8.8.8.8”, “8.8.4.4”], “outboundTag”: “trojan-outbound” } ] }}
通过这样的配置,用户可以灵活地控制流量的路由,实现更细粒度的代理策略。
sing-box 的使用技巧
如何提高连接速度
要提高 sing-box 的连接速度,可以采取以下措施:
- 选择就近的服务器: 选择离自己地理位置更近的服务器,可以减少网络延迟,提高连接速度。
- 优化 TCP 参数: 调整 TCP 相关的参数,如
tcp.fastopen
、tcp.reuseport
等,可以提升 TCP 连接的性能。 - 开启 mTLS: 对于 Trojan 协议,可以开启 mTLS (mutual TLS) 功能,提高安全性的同时也能提升连接速度。
- 使用 UDP 传输: sing-box 支持 UDP 传输,对于某些场景下,UDP 传输可以获得更好的性能。
如何实现负载均衡
sing-box 支持负载均衡功能,用户可以配置多个出站代理,并根据策略进行负载分担。示例配置如下:
{ “outbounds”: [ { “type”: “shadowsocks”, “server”: “ss-server-1.example.com”, “port”: 8388, “method”: “aes-256-gcm”, “password”: “password-1”, “tag”: “ss-outbound-1” }, { “type”: “shadowsocks”, “server”: “ss-server-2.example.com”, “port”: 8388, “method”: “aes-256-gcm”, “password”: “password-2”, “tag”: “ss-outbound-2” } ], “routing”: { “rules”: [ { “type”: “balancer”, “outboundTag”: “ss-balancer”, “selector”: [“ss-outbound-1”, “ss-outbound-2”] } ] }, “balancers”: [ { “tag”: “ss-balancer”, “selector”: [“ss-outbound-1”, “ss-outbound-2”], “strategy”: “random” } ]}
在这个示例中,我们配置了两个 Shadowsocks 出站代理,并使用 balancer
规则将流量分散到这两个出站。strategy
参数可以设置负载均衡的策略,如 random
、leastLoad
等。
如何优化 DNS 设置
sing-box 支持自定义 DNS 服务器,可以提高 DNS 解析的性能和安全性。示例配置如下:
{ “dns”: { “servers”: [ { “address”: “8.8.8.8”, “port”: 53, “strategy”: “prefer_ipv4” }, { “address”: “8.8.4.4”, “port”: 53, “strategy”: “prefer_ipv4” } ], “default_servers”: [“8.8.8.8”, “8.8.4.4”], “enable_cache”: true, “cache_size”: 1000 }}
在这个示例中,我们配置了两个 Google DNS 服务器,并设置 prefer_ipv4
策略,表示优先使用 IPv4 地址。同时,我们还开启了 DNS 缓存功能,可以提高 DNS 查询的效率。
sing-box 的常见问题解答
1. 如何查看 sing-box 的运行日志?
sing-box 的日志文件默认保存在 /path/to/log/file.log
路径下。用户可以在配置文件中修改日志输出路径和日志级别,以便更好地排查问题。
2. 为什么 sing-box 连接不稳定?
造成 sing-box 连接不稳定的原因可能有以下几种:
- 服务器端配置问题: 检查服务器端的防火墙、端口转发等设置是否正确。
- 网络环境问题: 检查本地网络是否存在干扰,如网络抖动、高延迟等。
- 协议配置问题: 检查 sing-box 的协议配置是否正确,如密码、加密方式等。
3. 如何更新 sing-box 到最新版本?
用户可以定期访问 sing-box 的 GitHub 发布页面 查看最新版本,然后根据自己的操作系统下载对应的安装包并更新即可。
4. sing-box 支持哪些代理协议?
sing-box 支持多种代理协议,包括 Shadowsocks、Trojan、VMess、VLESS 等。用户可以根据自己的需求选择合适的协议进行配置。
5. sing-box 是否支持 IPv6?
sing-box 支持 IPv6 协议,用户可以在配置文件中指定 IPv6 地址作为服务器地址。同时,sing-box 也支持 IPv4 和 IPv6 的双栈代理。