跳转至

Linux 平台 sing-box 安装与配置教程

1. sing-box 介绍

sing-box 是一款开源、跨平台的下一代科学上网与网络代理软件,由社区开发并活跃维护。它以 高性能、模块化、可扩展 为核心设计理念,能够替代 v2ray、xray 等传统代理工具。 相比旧一代软件,sing-box 在架构上更为简洁,支持 多种协议,如 VLESS、VMess、Shadowsocks、Trojan、Hysteria、Naïve 等,并内置 分流、规则匹配、DNS 劫持 等功能,方便用户根据需求灵活配置。

其突出优势在于:

  1. 高性能 —— 使用 Go 语言编写,内存占用低,启动与连接速度快。
  2. 跨平台 —— 支持 Linux、Windows、macOS、Android、iOS 等系统,适配性强。
  3. 强大分流 —— 内置类 Surge/Clash 风格的规则系统,轻松实现按域名、IP、地理位置分流。
  4. 灵活配置 —— JSON 配置文件清晰易扩展,且不断完善 GUI 客户端(如 NekoBox、SFA、SFM),降低使用门槛。
  5. 未来导向 —— 原生支持 QUIC、gRPC 等新一代传输协议,并兼容多种加密算法,具备长远发展潜力。

得益于社区生态,sing-box 不仅适合个人用户科学上网,也适合机场主部署作为后端。其高效的网络处理能力和对新协议的快速跟进,使其逐渐成为新一代代理软件的主流选择。

2. sing-box 安装

针对不同的操作系统,请参考不同的安装步骤。

2.1. Debian 系列 Linux 系统下载并安装 sing-box

对于 debian 系列发行版(Ubuntu, Mint, MX, Kubuntu, Zorin 等等)

sudo apt update  -y
sudo apt install sing-box

# 设置为开机自启动
sudo systemctl enable sing-box

2.2. Redhat 系列 Linux 系统下载并安装 sing-box

对于 Redhat 系列发行版(Centos, Fedora, AlmaLinux, Rocky Linux 等)

sudo dnf config-manager addrepo --add-repo=https://sing-box.app/sing-box.repo
sudo dnf makecache
sudo dnf install sing-box

# 设置为开机自启动
sudo systemctl enable --now sing-box.service

# 查看服务状态
systemctl status sing-box.service

# 如果启动过程中出现任何错误,查看日志并进行修复
journalctl -u sing-box

如何出现以下错误,需要在sing-box.service service区块添加 Environment="ENABLE_DEPRECATED_SPECIAL_OUTBOUNDS=true" Jan 30 23:36:48 server-0hrxrx.novalocal sing-box[3807]: ERROR[0000] legacy special outbounds is deprecated in sing-box 1.11.0 and will be removed in sing-box 1. Jan 30 23:36:48 server-0hrxrx.novalocal sing-box[3807]: FATAL[0000] to continuing using this feature, set environment variable ENABLE_DEPRECATED_SPECIAL_OUTBOUNDS=true

2.3. Linux 平台和 OpenWrt 上 sing-box 一键安装脚本

该脚本从 GitHub 发布中下载并安装最新的软件包,适用于基于 deb 或 rpm 的 Linux 发行版、ArchLinux 和 OpenWrt。

安装正式版

curl -fsSL https://sing-box.app/install.sh | sh

设置为开机启动

systemctl daemon-reload
systemctl enable --now sing-box
systemctl status sing-box

2.4. App 平台

iOS/macOS/Apple tvOS 用户可以到 app store 中下载(前提是要有美区 id), 也可以使用 HomeBrew 直接安装:

brew install sing-box

除此之外你也可以直接到 GitHub Releases 页面下载客户端或者命令行版本。

获取美区 id 的三种方式 方式一: 自行注册美区苹果账号

方式二: 使用共享美区账号

  • 点击获取美区账号密码
  • 复制任意一个 Apple ID 账号与密码复制并粘贴到填写框登录美区苹果账号
  • 回到登陆界面,粘贴账号和密码

方式三:购买 Apple ID

移步到 苹果 ID 专卖小店进行购买。

登陆苹果美区账号

3. Windows 平台

Windows 没有图形界面客户端,官方还正在开发中,不过可以直接使用包管理器 Sccop、winget 或者 Chocolatey 安装命令行版本:

# Sccop
$ scoop install sing-box

# Chocolatey
$ choco install sing-box

# winget
$ winget install sing-box

4. 正确使用方式

4.1. 方式一:在 支持 sing-box 的 GUI 客户端 里

例如:

  • sing-box GUI(新版本)

  • 一些 Android / iOS sing-box 客户端

操作:

  • 打开客户端

  • 找 “从 URL 导入 / 导入远程配置 / 导入订阅”

4.2. 方式二:直接用 sing-box 命令导入 URL

把这个链接里的 url 参数拿出来

for Linux

# 下载配置文件
curl -o config.json https://my.your_airports.com/api/v1/client/subscribe?token=xxxxxxxx?flag=sing-box

# 格式化config.json, 方便阅读。
sing-box format -c ./config.json > config_readable.json

# 检查config文件,看是否有任何错误
sing-box check -c config_readable.json

# 运行sing-box
sing-box run -c config_readable.json
  • 如果机场支持 sing-box 格式的配置,那么 sing-box check 这一步大概率能顺利通过
  • 如果运气好节点都处于健康,一切顺利此时就可以科学上网了

4.3. 开启 Clash API

最后的实验性配置用来开启 Clash API。没错,sing-box 是兼容 Clash API 滴!那么我们就可以使用 Clash 的 dashboard 来管理 sing-box 了,以下以 metacubexd 为例,其他如 zashboard 也是类似的配置。

在 config_readable.json 的 experimental 区块添加 clash_api,内容如下:

{
  "experimental": {
    "cache_file": {
      "enabled": true  // 启用缓存文件功能。当此项设置为true时,启用 DNS 查询的缓存,以便加快后续相同查询的响应速度。
    },
    "clash_api": {
      "external_controller": "0.0.0.0:9090",  // 定义 Clash API 的外部控制器地址。"0.0.0.0:9090" 表示在本机的9090端口上监听外部的连接请求。
      "external_ui": "metacubexd",  // 指定外部用户界面(UI)的名称。这里的 "metacubexd" 是一个自定义 UI 的名称。
      "external_ui_download_url": "https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip",  // 提供外部 UI 的下载 URL。这个 URL 是从 GitHub 上下载 "metacubexd" UI 的压缩包。
      "external_ui_download_detour": "select",  // 定义下载外部 UI 时使用的转发策略。"select" 表示将通过'select'出口选择转发
      "default_mode": "rule"  // 设置 Clash API 的默认模式。"rule" 模式意味着流量将根据用户定义的规则进行路由。
    }
  }
}
# 运行sing-box
sing-box run -c config_readable.json

5. 参考文档



📅 Created 5 months ago ✏️ Updated 4 months ago

评论