GitHub 开源项目 sing-box 使用指南

目录

什么是 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.fastopentcp.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 参数可以设置负载均衡的策略,如 randomleastLoad 等。

如何优化 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 的双栈代理。

正文完