服务端入门:自己搭一个 sing-box 服务

面向有 Linux 服务器管理经验的人:用官方安装脚本装内核、写一份 Shadowsocks 2022 入站配置、走 systemd 检查与启动。

这篇适合谁

适合已经有 Linux 服务器、能用 SSH 管理它、能调主机防火墙和云安全组的人。只想在手机或电脑上导入现成配置的,不用看这篇,看客户端教程就够了。服务端只要命令行内核,不要装 SFW、SFL 这类图形客户端。

开始前先备份已有配置、安排好维护时间;已经跑着 sing-box 服务的服务器,不要直接覆盖旧配置。

1. 安装内核

先确认服务器上装了 curl,再下载官方安装脚本、先读一遍脚本内容、再执行安装稳定版;也可以按官方文档走软件仓库安装方式。装完用版本命令确认内核能跑:

curl -fsSL https://sing-box.app/install.sh -o sing-box-install.sh
less sing-box-install.sh
sudo sh sing-box-install.sh
sing-box version

在 less 里按 q 退出查看。

2. 生成一个自己的密钥

下面以单用户 Shadowsocks 2022 为例。2022-blake3-aes-128-gcm 方法需要 16 字节随机数据的 Base64 编码,用内核自带的生成命令拿到,留好,稍后填进配置的 password 字段:

sing-box generate rand --base64 16

不要用任何教程里的示例密钥,也不要把自己的密钥发到评论区、群聊或公开配置里。

3. 写服务端配置

先用服务命令确认实际的配置目录和启动参数,例如官方 1.14 系列的服务用 -C /etc/sing-box 加载该目录;要先确认这个目录里没有其他 JSON 会被一起加载。编辑前备份已有文件,并限制无关用户读取配置(里面有密钥),同时确保实际服务用户能读到它。

下面是一份最小的服务端示例,监听 IPv4 的 8388 TCP 端口、启用多路复用,客户端也要相应启用 multiplex:

{
  "log": {
    "level": "info"
  },
  "inbounds": [
    {
      "type": "shadowsocks",
      "tag": "ss-in",
      "listen": "0.0.0.0",
      "listen_port": 8388,
      "network": "tcp",
      "method": "2022-blake3-aes-128-gcm",
      "password": "REPLACE_WITH_YOUR_GENERATED_KEY",
      "multiplex": {
        "enabled": true
      }
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    }
  ]
}

防火墙只放行这一个 TCP 端口,保留 SSH 端口,不要为了图省事关掉整个防火墙;有云安全组或 NAT 的,还要检查入站规则或转发,能限定客户端来源地址时进一步限制。需要 IPv6 时,监听地址和网络规则要另行核对。

这个示例不需要 TLS 证书,也不用为它申请域名;改用 Trojan、Hysteria2 等协议时,再按协议处理 TLS、证书和域名,旧教程里已弃用的内联 ACME 字段不要直接搬过来。

4. 检查、启动、看日志

检查失败时先修正第一条错误,不要继续重启:

sudo sing-box -D /var/lib/sing-box -C /etc/sing-box check
sudo systemctl restart sing-box
sudo systemctl status sing-box --no-pager
sudo journalctl -u sing-box --output cat -n 50 --no-pager

需要开机自启再执行 systemctl enable sing-box;停止服务用 systemctl stop sing-box。注意:active (running) 只说明进程在运行,仍需从客户端验证能不能真正访问。

5. 客户端怎么对应

客户端不要把上面这份服务端的入站 JSON 直接导入。客户端要在自己的 Shadowsocks 出站里填:服务器可达的公网地址、端口 8388、方法 2022-blake3-aes-128-gcm、同一个密钥,并把 multiplex 打开;客户端自己的入站、DNS 和路由再按设备用途配。

排障时按这个顺序:超时先查地址、TCP 端口、防火墙与安全组;认证失败核对方法和密钥,Shadowsocks 2022 还要查双方系统时间;启动失败看第一条日志,区分 JSON 语法、密钥格式、端口占用和文件权限;能连接却打不开目标,再查服务器出网、客户端 DNS 与路由。

访问官网 →