Singbox 配置案例分享:优化你的网络连接
Sing-box 配置案例分享:优化你的网络连接
Sing-box 作为新一代的网络代理工具,以其高性能、多协议支持和灵活的配置选项,赢得了越来越多用户的青睐。然而,面对其丰富的配置项,许多初学者可能会感到无从下手。本文旨在通过多个实际案例,详细讲解 Sing-box 的配置方法,帮助你充分利用 Sing-box 的强大功能,优化你的网络连接,实现更快速、更安全、更自由的网络体验。
一、Sing-box 基础概念与安装
在深入配置案例之前,我们需要先了解 Sing-box 的一些基本概念和安装方法。
1.1 核心概念
- 入站(Inbounds): 定义 Sing-box 如何接收来自客户端的连接。常见的入站协议有 Socks、HTTP、TProxy 等。
- 出站(Outbounds): 定义 Sing-box 如何将流量转发到目标服务器。常见的出站协议有 Vmess、VLESS、Trojan、Shadowsocks、WireGuard、Hysteria2 等。
- 路由(Route): 定义 Sing-box 如何根据不同的规则将流量导向不同的出站。这是 Sing-box 实现智能分流、负载均衡等高级功能的核心。
- DNS: 配置 Sing-box 的 DNS 服务器,用于域名解析。合理的 DNS 配置可以提高访问速度和安全性。
- 实验性功能(Experimental): Sing-box 提供了一些实验性功能,如 Rule Set、TUN 等,可以进一步增强其功能和灵活性。
1.2 安装 Sing-box
Sing-box 支持多种平台,包括 Windows、macOS、Linux、Android、iOS 等。你可以从 Sing-box 的 GitHub 仓库(https://github.com/SagerNet/sing-box)下载对应平台的安装包。
安装过程通常很简单:
- Windows: 下载
.exe
文件,双击运行即可。 - macOS: 使用 Homebrew 安装:
brew install sing-box
- Linux: 根据不同的发行版,可以使用包管理器(如 apt、yum、pacman)安装,或者下载预编译的二进制文件。
- Android: 下载
.apk
文件安装,或者使用 Google Play 商店安装 SFA (Sing-box For Android)。 - IOS: 下载 ipa 文件, 或使用TestFlight安装。
安装完成后,你需要创建一个配置文件(通常命名为 config.json
),Sing-box 会根据这个配置文件来运行。
二、配置案例详解
接下来,我们将通过几个具体的配置案例,详细讲解 Sing-box 的配置方法。
2.1 基础配置:单节点代理
这是最简单的配置,适用于只有一个代理节点的情况。
```json
{
"log": {
"level": "info"
},
"inbounds": [
{
"type": "socks",
"tag": "socks-in",
"listen": "127.0.0.1",
"listen_port": 1080
}
],
"outbounds": [
{
"type": "vmess", // 假设你的节点是 Vmess 协议
"tag": "vmess-out",
"server": "your_server_address",
"server_port": 443,
"uuid": "your_uuid",
"security": "auto",
"alter_id": 0,
"tls": {
"enabled": true,
"server_name": "your_server_name", //如果需要SNI
"insecure": false
}
},
{
"tag": "block",
"type": "block"
}
],
"route": {
"rules": [
{
"outbound": "vmess-out" //其他流量走这个出口
}
],
"auto_detect_interface": true
}
}
```
配置说明:
log
: 设置日志级别为info
,可以记录 Sing-box 的运行信息。inbounds
: 定义了一个 Socks 入站,监听本地的 1080 端口。outbounds
:- 定义了一个 Vmess 出站,连接到你的代理服务器。你需要将
your_server_address
、your_server_port
、your_uuid
替换成你自己的节点信息。 - 定义了一个block阻断出口,可用于阻断广告。
- 定义了一个 Vmess 出站,连接到你的代理服务器。你需要将
route
:- 所有流量默认都走
vmess-out
这个出站。 auto_detect_interface
: 自动检测网络接口。
- 所有流量默认都走
2.2 进阶配置:多节点负载均衡
如果你有多个代理节点,可以使用负载均衡来提高连接速度和稳定性。
json
{
"log": {
"level": "info"
},
"inbounds": [
{
"type": "socks",
"tag": "socks-in",
"listen": "127.0.0.1",
"listen_port": 10808
}
],
"outbounds": [
{
"type": "vmess",
"tag": "vmess-out-1",
"server": "server_address_1",
"server_port": 443,
"uuid": "uuid_1",
"security": "auto",
"alter_id": 0,
"tls": {
"enabled": true,
"server_name": "server_name_1", //如果需要SNI
"insecure": false
}
},
{
"type": "vmess",
"tag": "vmess-out-2",
"server": "server_address_2",
"server_port": 443,
"uuid": "uuid_2",
"security": "auto",
"alter_id": 0,
"tls": {
"enabled": true,
"server_name": "server_name_2", //如果需要SNI
"insecure": false
}
},
{
"type": "selector",
"tag": "proxy-selector",
"outbounds": [
"vmess-out-1",
"vmess-out-2"
],
"default": "vmess-out-1" // 可选,默认选择第一个节点
}
,
{
"tag": "block",
"type": "block"
}
],
"route": {
"rules": [
{
"outbound": "proxy-selector" //其他流量走这个出口
}
],
"auto_detect_interface": true
}
}
配置说明:
outbounds
: 定义了两个 Vmess 出站,分别连接到不同的代理服务器。- 新增了一个
selector
类型的出站proxy-selector
,它包含了两个 Vmess 出站。 route
: 所有流量都走proxy-selector
出站,Sing-box 会自动选择一个可用的节点进行连接。
2.3 高级配置:智能分流
智能分流是 Sing-box 的强大功能之一,它可以根据不同的规则将流量导向不同的出站,实现国内外网站分流、广告屏蔽等功能。
json
{
"log": {
"level": "info"
},
"inbounds": [
{
"type": "socks",
"tag": "socks-in",
"listen": "127.0.0.1",
"listen_port": 10808
}
],
"outbounds": [
{
"type": "vmess",
"tag": "vmess-out",
"server": "your_server_address",
"server_port": 443,
"uuid": "your_uuid",
"security": "auto",
"alter_id": 0,
"tls": {
"enabled": true,
"server_name": "your_server_name", //如果需要SNI
"insecure": false
}
},
{
"type": "direct",
"tag": "direct-out"
},
{
"type": "block",
"tag": "block-out"
}
],
"route": {
"rules": [
{
"domain": [
"geosite:cn" // 国内域名
],
"outbound": "direct-out" // 直连
},
{
"ip": [
"geoip:cn" // 国内 IP
],
"outbound": "direct-out" // 直连
},
{
"domain_suffix": [
"ads.com", // 广告域名
"tracking.com"
],
"outbound": "block-out" // 屏蔽
},
{
"outbound": "vmess-out" // 其他流量走代理
}
],
"auto_detect_interface": true
}
}
配置说明:
outbounds
:direct-out
: 直连出站,不经过代理。block-out
: 屏蔽出站,阻止连接。
route
:domain
: 根据域名进行匹配。geosite:cn
表示国内域名列表。ip
: 根据 IP 地址进行匹配。geoip:cn
表示国内 IP 地址段。domain_suffix
: 根据域名后缀进行匹配。outbound
: 指定匹配规则后流量的出站。- 访问国内网站时,流量走
direct-out
,直接连接。 - 访问广告域名时,流量走
block-out
,阻止连接。 - 其他流量走
vmess-out
,通过代理连接。
- 访问国内网站时,流量走
2.4 实战配置:使用 Rule Set 实现更精细的分流
Sing-box 的 Rule Set 功能可以让你使用外部的规则文件来实现更精细的分流控制。
-
创建 Rule Set 文件 (例如
my_rules.json
):json
{
"rules": [
{
"type": "domain",
"match": "example.com",
"outbound": "proxy"
},
{
"type": "ip_cidr",
"match": "192.168.1.0/24",
"outbound": "direct"
}
]
} -
在 Sing-box 配置文件中引用 Rule Set:
json
{
"log": {
"level": "info"
},
"inbounds": [
{
"type": "socks",
"tag": "socks-in",
"listen": "127.0.0.1",
"listen_port": 1080
}
],
"outbounds": [
{
"type": "vmess",
"tag": "proxy",
"server": "your_server_address",
"server_port": 443,
"uuid": "your_uuid",
"security": "auto",
"alter_id": 0,
"tls": {
"enabled": true,
"server_name": "your_server_name", //如果需要SNI
"insecure": false
}
},
{
"type": "direct",
"tag": "direct"
},
{
"tag": "block",
"type": "block"
}
],
"experimental": {
"ruleset": [
{
"tag": "my_rules",
"path": "./my_rules.json" // 确保路径正确
}
]
},
"route": {
"rules": [
{
"ruleset": "my_rules",
"outbound": "selector" // 使用 selector 来处理 Rule Set 的结果
}
],
"auto_detect_interface": true,
"final": "proxy"
}
}
配置说明:
experimental.ruleset
: 启用了实验性的 Rule Set 功能。path
: 指定了 Rule Set 文件的路径。route.rules
: 根据Rule Set进行分流。route.final
: 当rules没有匹配到时,使用的出站。
2.5 其他配置技巧
- DNS 优化: 使用可靠的 DNS 服务器,如
1.1.1.1
、8.8.8.8
,或者使用 DNS over HTTPS (DoH) / DNS over TLS (DoT) 来提高 DNS 解析的安全性和速度。 - TProxy 透明代理: 可以将 Sing-box 配置为透明代理,无需在客户端进行任何设置,即可实现全局代理。
- 入站嗅探: 开启入站流量嗅探,使得SOCKS/HTTP入站能处理非代理的流量。
- 使用 TUN 模式: 可以接管整个系统的网络流量,实现更强大的功能,如虚拟网卡、全局代理等。但需要更高的权限和更复杂的配置。
三、总结与进阶
本文通过多个配置案例,详细介绍了 Sing-box 的配置方法,涵盖了从基础的单节点代理到高级的智能分流、负载均衡、Rule Set 等功能。希望这些案例能够帮助你更好地理解和使用 Sing-box。
Sing-box 的功能非常强大,配置也非常灵活,本文只是介绍了其中的一部分。要充分发挥 Sing-box 的潜力,你还需要不断学习和探索。以下是一些进阶学习的建议:
- 阅读官方文档: Sing-box 的官方文档(https://sing-box.sagernet.org/)提供了详细的配置说明和使用指南。
- 参考社区资源: GitHub、Telegram 群组、论坛等地方有很多关于 Sing-box 的讨论和分享,你可以从中获取更多的配置灵感和技巧。
- 动手实践: 最好的学习方法是动手实践。尝试修改配置文件,观察 Sing-box 的行为,逐步掌握其配置的精髓。
希望通过本文的指导,你能够成功配置 Sing-box,优化你的网络连接,享受更畅快的网络体验!