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_addressyour_server_portyour_uuid 替换成你自己的节点信息。
    • 定义了一个block阻断出口,可用于阻断广告。
  • 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 功能可以让你使用外部的规则文件来实现更精细的分流控制。

  1. 创建 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"
    }
    ]
    }

  2. 在 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.18.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,优化你的网络连接,享受更畅快的网络体验!

THE END