Singbox 全方位指南:从入门到精通的终极教程
引言
Singbox 是一个功能强大且高度可配置的代理平台,旨在帮助用户绕过互联网审查、增强隐私并提高网络速度。它支持多种协议,并可在 Windows、macOS、Linux、Android 和 iOS 等多个平台上运行。本指南将带您从入门到精通,全面了解 Singbox 的世界。
什么是 Singbox?
Singbox 是一个通用的代理工具,可以作为客户端或服务器运行。它支持多种代理协议,包括 Shadowsocks、V2Ray、Trojan、WireGuard 等。Singbox 的核心优势在于其灵活性和高性能,使其成为需要自定义网络流量路由的用户的理想选择。
入门
安装
Singbox 可以在多个平台上安装。以下是在一些常见操作系统上安装 Singbox 的方法:
Windows
- 从 Singbox GitHub 发布页面下载最新的 Windows
amd64压缩包。 - 解压缩文件到一个您选择的目录(例如
C:\sing-box)。 - 将
sing-box.exe所在的目录添加到系统的PATH环境变量中,以便在任何地方都可以通过命令行运行它。
macOS
您可以使用 Homebrew 安装 Singbox:
bash
brew install sing-box
Linux
在基于 Debian 的系统(如 Ubuntu)上,您可以使用 apt:
bash
sudo apt update && sudo apt install -y sing-box
对于其他发行版,您可以从 GitHub 发布页面下载相应的二进制文件。
配置文件
Singbox 使用 JSON 文件进行配置。默认情况下,它会查找名为 config.json 的文件。配置文件的主要部分包括:
log: 配置日志记录行为。dns: 配置 DNS 设置。inbounds: 定义 Singbox 如何接受传入连接。outbounds: 定义 Singbox 如何将流量转发到其目的地。route: 包含将流量定向到特定outbounds的规则。
基础配置
让我们从一个简单的配置开始,该配置创建一个本地 SOCKS5 代理,并将所有流量直接发送到互联网。
创建一个名为 config.json 的文件,内容如下:
json
{
"log": {
"level": "info",
"timestamp": true
},
"inbounds": [
{
"type": "socks",
"tag": "socks-in",
"listen": "127.0.0.1",
"listen_port": 1080
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
}
],
"route": {
"rules": [
{
"inbound": "socks-in",
"outbound": "direct"
}
]
}
}
配置说明:
log: 将日志级别设置为info并启用时间戳。inbounds: 创建一个类型为socks的入站连接,监听在127.0.0.1的1080端口。outbounds: 创建一个名为direct的出站连接,它将直接连接到互联网。route: 定义了一条规则,将所有来自socks-in的流量路由到direct出站。
要运行此配置,请在终端中执行:
bash
sing-box run -c config.json
现在,您可以在您的浏览器或系统网络设置中配置 SOCKS5 代理,地址为 127.0.0.1,端口为 1080。
协议
Singbox 支持多种协议。以下是一些常用协议的配置示例。
Shadowsocks
json
{
"type": "shadowsocks",
"tag": "ss-out",
"server": "your-server-ip",
"server_port": 8388,
"method": "aes-256-gcm",
"password": "your-password"
}
V2Ray (VMess)
json
{
"type": "vmess",
"tag": "vmess-out",
"server": "your-server-ip",
"server_port": 10086,
"uuid": "your-uuid",
"security": "auto",
"alter_id": 0
}
高级配置
Singbox 的真正威力在于其高级路由和自定义功能。
路由规则
您可以使用 route 部分根据域名、IP 地址、地理位置等来路由流量。
json
"route": {
"rules": [
{
"domain_suffix": ["google.com", "youtube.com"],
"outbound": "proxy-out"
},
{
"geoip": "cn",
"outbound": "direct"
}
],
"final": "proxy-out"
}
在此示例中:
- 所有访问
google.com和youtube.com的流量都将通过名为proxy-out的出站连接。 - 所有目标 IP 地址在中国的流量都将直接连接。
- 所有其他流量都将通过
proxy-out。
透明代理 (TUN)
Singbox 可以创建一个虚拟网络接口 (TUN),以透明方式代理所有系统流量。这在您希望强制所有应用程序都通过代理而不进行单独配置时非常有用。
json
{
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"interface_name": "tun0",
"inet4_address": "172.19.0.1/30",
"auto_route": true,
"stack": "gvisor"
}
]
}
注意: TUN 模式通常需要管理员权限才能运行。
运行 Singbox
命令行
如前所述,您可以使用 run 命令从命令行运行 Singbox:
bash
sing-box run -c /path/to/your/config.json
作为服务运行
在生产环境中,您可能希望将 Singbox 作为系统服务运行。
systemd (Linux)
创建一个名为 /etc/systemd/system/sing-box.service 的文件:
“`ini
[Unit]
Description=Sing-box service
After=network.target
[Service]
ExecStart=/usr/local/bin/sing-box run -c /etc/sing-box/config.json
Restart=always
User=nobody
Group=nogroup
[Install]
WantedBy=multi-user.target
“`
然后,启用并启动服务:
bash
sudo systemctl enable sing-box
sudo systemctl start sing-box
结论
Singbox 是一个功能强大且灵活的工具,可满足从简单代理到复杂网络路由的各种需求。通过其丰富的协议支持和高级路由功能,Singbox 为用户提供了对网络流量的完全控制。希望本指南能帮助您入门并最终精通 Singbox。
免责声明: 请遵守您所在国家/地区的法律法规。本指南仅用于技术学习和研究目的。