自建可维护 sing-box / Shadowsocks 服务器:VPS 搭建教程
本教程仅适用于合法、合规且获得授权的网络用途。请遵守所在地法律法规、云服务商条款及网络服务规则;不要将服务器用于攻击、滥用或未经授权的访问。
一、准备工作
开始前,请准备好以下内容:
一台云服务器或 VPS:推荐 Debian 12、Ubuntu 22.04/24.04,或 CentOS 系发行版。
VPS 登录信息:公网 IP、SSH 端口、用户名、密码或私钥。
一个域名(可选):Shadowsocks 可以直接使用服务器 IP;如使用域名,请提前将 A 记录解析到 VPS 公网 IP。
SSH 连接工具:可使用 FinalShell、Windows Terminal、PuTTY,或在线 SSH 工具
。
支持 Shadowsocks 的本地客户端。
建议优先选择 Debian 或 Ubuntu,教程中的命令也以这两类系统为主。
二、连接 VPS 服务器
在 FinalShell 等 SSH 工具中新建连接,填写以下信息:
项目说明主机/IPVPS 提供商给出的公网 IP端口默认为 22;如服务商修改过,请填写实际端口用户名常见为 root、ubuntu、debian 或服务商指定用户名认证方式密码登录或 SSH 私钥登录
连接成功后,执行以下命令确认当前用户:
whoami
如果输出不是 root,请确认当前用户拥有 sudo 权限:
sudo -v
三、部署前的安全设置
\1. 更新系统
Debian / Ubuntu:
sudo apt update && sudo apt upgrade -y
CentOS / Rocky Linux:
sudo dnf update -y
\2. 设置时区(可选)
以中国上海时区为例:
sudo timedatectl set-timezone Asia/Shanghai timedatectl
\3. 配置云平台安全组
在云服务商后台的“安全组”“防火墙”或“入站规则”中:
- 放行 SSH 端口,例如 22/tcp;
- 部署完成后,再放行 Shadowsocks 实际使用的端口;
- 云平台安全组和服务器系统防火墙需要同时放行。
四、一键部署 sing-box 与 Shadowsocks
安全提示: 以下是第三方远程脚本,会以 root 权限安装软件、写入配置和创建服务。执行前建议先阅读脚本内容并确认来源可信;生产环境更建议使用经过审核并固定版本的部署方案。
脚本地址:
https://raw.githubusercontent.com/caigouzi121380/singbox-deploy/main/install-singbox-yyds.sh
如果当前用户是 root,执行:
bash -c “$(curl -fsSL
https://raw.githubusercontent.com/caigouzi121380/singbox-deploy/main/install-singbox-yyds.sh
)”
如果当前是普通用户且拥有 sudo 权限,执行:
sudo bash -c “$(curl -fsSL
https://raw.githubusercontent.com/caigouzi121380/singbox-deploy/main/install-singbox-yyds.sh
)”
脚本会自动安装依赖、安装 sing-box,并引导创建节点配置。
五、交互配置示例:部署 Shadowsocks
\1. 输入节点名称
示例:
HK-01
节点名称仅用于自行区分服务器,可填写 HK-01、JP-Tokyo 或 US-LA 等。
\2. 选择协议
部署 Shadowsocks 时输入 1,即选择 Shadowsocks (SS)。
\3. 选择加密方式
建议选择 1,对应推荐方式:
2022-blake3-aes-128-gcm
如果本地客户端较旧、不支持 Shadowsocks 2022,可选择 2,对应:
aes-128-gcm
\4. 填写连接地址和端口
使用服务器 IP:直接回车,通常会自动识别公网出口 IP;
使用域名:填写已解析到 VPS 的域名,例如
;
端口可直接回车随机生成,也可以手动填写未被占用的端口,例如 34567。
避免使用 22、80、443、3306 等常见服务端口。
\5. 保存连接信息
部署完成后,终端会显示连接信息或 ss:// 导入链接。请安全保存以下内容:
- 服务器地址或域名;
- 端口;
- 加密方式;
- 密码;
- 节点名称;
- ss:// 导入链接。
密码和 ss:// 链接都属于访问凭据,请勿公开发布、截图分享或提交到代码仓库。
六、放行节点端口
假设部署时使用的 Shadowsocks 端口为 34567。
Debian / Ubuntu:UFW
sudo ufw allow 34567/tcp sudo ufw allow 34567/udp sudo ufw reload sudo ufw status numbered
CentOS / Rocky Linux:firewalld
sudo firewall-cmd –permanent –add-port=34567/tcp sudo firewall-cmd –permanent –add-port=34567/udp sudo firewall-cmd –reload sudo firewall-cmd –list-ports
如果没有 UDP 使用需求,可以只开放 TCP,以减少不必要的暴露面。
七、客户端导入
方法一:通过链接导入
复制脚本最后输出的 ss:// 链接,在支持 Shadowsocks 的客户端中选择“从剪贴板导入”或“导入 URL”。
方法二:手动添加
| 字段 | 填写内容 |
|---|---|
| 类型 | Shadowsocks |
| 地址 | VPS 公网 IP 或域名 |
| 端口 | 部署时设置的端口 |
| 加密方式 | 与服务端一致 |
| 密码 | 脚本生成的密码 |
| 名称 | 自定义,例如 HK-01 |
保存后连接,并访问常用网站测试网络是否正常。
八、服务管理与状态检查
查看服务状态:
sudo systemctl status sing-box
启动、停止与重启服务:
sudo systemctl start sing-box sudo systemctl stop sing-box sudo systemctl restart sing-box
设置开机自启:
sudo systemctl enable sing-box
查看最近日志:
sudo journalctl -u sing-box -n 100 –no-pager
实时查看日志:
sudo journalctl -u sing-box -f
检查配置语法:
sudo sing-box check -c /etc/sing-box/config.json
九、备份与维护
备份配置:
sudo mkdir -p /root/sing-box-backup sudo cp -a /etc/sing-box /root/sing-box-backup/
建议定期完成以下工作:
- 每月更新操作系统补丁;
- 定期检查磁盘、内存与服务日志;
- 修改配置前先备份;
- 修改后先执行配置检查;
- 定期更换节点密码;
- 使用 SSH 私钥登录,并限制服务器管理权限。
十、常见问题排查
客户端无法连接
按以下顺序检查:
- 确认服务器地址、端口、密码和加密方式完全正确;
- 确认云平台安全组已放行节点端口;
- 确认服务器防火墙已放行节点端口;
- 确认 sing-box 服务正在运行:sudo systemctl status sing-box
- 查看服务日志:sudo journalctl -u sing-box -n 100 –no-pager
服务无法启动
先检查配置:
sudo sing-box check -c /etc/sing-box/config.json
再查看详细日志:
sudo journalctl -u sing-box -xe –no-pager
端口被占用
假设端口为 34567:
sudo ss -lntup | grep 34567
如果端口已被其他程序占用,请更换端口,并同步更新云安全组、服务器防火墙和客户端配置。
结语
完成以上步骤后,你就拥有了一台可自行维护的 sing-box Shadowsocks 服务器。部署只是开始;保持系统更新、限制访问权限、定期备份配置并检查日志,才能让服务长期稳定运行。











