sing-box 是一款强大的代理工具,支持 Shadowsocks、V2Ray、Trojan 等协议,并且可以灵活配置 DNS、路由(Router)、入站(Inbounds)、出站(Outbounds) 等规则。
🎤 大家好!今天我们来详细讲解 sing-box 的配置和使用,从 服务器端安装 到 客户端连接,再到 故障排查,帮助大家完整掌握 sing-box!💡
在开始我们需要明确一下本教程的前提条件和适合的用户,
在开始之前你需要有一台拥有 sudo
权限的 Linux 主机
本教程主要面向希望自己搭建代理节点的用户。
如果你使用的是付费的机场服务,通常可以直接使用机场提供的订阅链接就可以了。
🎤 大家好!欢迎来到我的频道,今天我们来聊聊强大的代理工具 sing-box! (画面:sing-box logo 或相关视觉)
🚀 sing-box 支持 Shadowsocks、V2Ray、Trojan 等多种协议,还能灵活配置 DNS、路由、入站、出站等高级功能! (画面:协议和功能的图标展示)
💡 从服务器安装到客户端连接,再到故障排除,我会一步步带你搞定 sing-box! (画面:步骤流程图或关键操作的图标)
🎤 在开始我们需要明确一下本教程的前提条件和适合的用户。 (画面:显示“前提条件”和“适合用户”的字幕)
前提条件: (画面:列出前提条件的图标或文字)
- 你需要一台拥有
sudo
权限的 Linux 主机。 (画面:服务器的示意图或命令行中显示sudo
的例子)
适合用户: (画面:列出适合用户的图标或文字)
- 本教程主要面向希望自己搭建代理节点的用户。 (画面:自建节点的示意图)
- 如果你使用的是付费的机场服务,通常可以直接使用机场提供的订阅链接就可以了。 (画面:机场服务的示意图或订阅链接的例子,并用文字说明)
💡 那么,如果你已经准备好了一台可以 sudo
的主机,并且想体验自己搭建 sing-box 节点的乐趣,就跟着我一起开始吧! (画面:回到准备开始的画面)
🌐 域名注册 (字幕:域名注册)
- 首先,你需要一个域名。 (画面:域名注册服务商的网站截图)
- 选择你喜欢的域名注册服务商。 (画面:常用服务商的logo)
- 然后,配置 DNS 记录。 (画面:DNS记录配置界面,高亮A记录和CNAME记录)
- 免费域名哪里找? (画面:i53域名logo)
- 之前的 uskg 域名已经不能用了。
- 现在推荐大家使用 i53 提供的免费一年域名。 (画面:i53免费域名注册页面)
- 如果你是新手,可以看看我之前的视频,里面详细讲解了注册流程、使用优惠码免费一年的方法,以及如何用 Cloudflare 管理域名。 (画面:之前视频的封面截图或链接提示)
🔗 域名绑定 (字幕:域名绑定)
- 接下来,我们要把域名和服务器绑定起来。
- 这需要配置 Nginx。 (画面:Nginx logo)
- 还需要配置 SSL 证书,让网站更安全。 (画面:SSL证书的图标)
- 注册好域名后,登录 Cloudflare。 (画面:Cloudflare 网站首页)
- 我们来做一个 DNS 解析。 (画面:Cloudflare DNS解析设置界面)
- 这里我用
demo
作为前缀,域名是demo.deepseekapi.ggff.net
。 (画面:输入域名的演示) - 类型选择 A 记录,指向你的服务器 IP 地址。 (画面:A记录的配置)
- 暂时先不要开启 HTTPS 的小云朵,我们稍后再申请证书。
⚙️ 安装配置 Nginx (字幕:安装配置 Nginx)
- 现在回到你的服务器。 (画面:服务器终端界面)
- 我们需要安装一下 Nginx。
- 直接输入
sudo apt install nginx
,回车安装。 (画面:命令行输入和执行) - 安装完成后,切换到 Nginx 的配置目录:
cd /etc/nginx/conf.d/
。 (画面:命令行输入和执行) - 复制默认配置文件:
sudo cp default.conf demo.conf
。 (画面:命令行输入和执行) - 然后用
vim
编辑demo.conf
文件:sudo vim demo.conf
。 (画面:命令行输入和执行) - 找到
server_name
这一行,修改后面的内容为你的域名:demo.deepseekapi.ggff.net
。 (画面:高亮显示并修改server_name) - 只需要修改这一处就可以了。
- 现在尝试在浏览器中访问你的域名(http://demo.deepseekapi.ggff.net)。
- 你应该能看到 Nginx 的默认欢迎页面。 (画面:Nginx欢迎页面的截图)
- 但现在是 HTTP 的,我们稍后会配置 HTTPS。
🔒 安全证书申请 (字幕:安全证书申请)
- 接下来,我们要申请 SSL 证书,让我们的网站支持 HTTPS。
- 我们使用
Certbot
来申请。 (画面:Certbot logo) - 当然,你也可以使用
acme.sh
,sing-box 官网也有acme.sh
的配置示例。 - 但我个人觉得
acme.sh
没有Certbot
稳定,有时候会遇到各种问题需要排查。 - 所以我更喜欢用
Certbot
。你可以根据自己的喜好选择。 - 我们使用 Certbot 的自动配置功能:
sudo certbot --nginx
。 (画面:命令行输入和执行) - Certbot 会自动颁发证书并修改你的 Nginx 配置。
- 配置完成后,刷新你的网页 (https://demo.deepseekapi.ggff.net)。
- 你应该可以看到网址前面出现了小锁头,说明 HTTPS 已经配置成功了! (画面:浏览器地址栏显示HTTPS和锁头图标)
🔥 防火墙检查 (字幕:防火墙检查)
- 在继续之前,我们要确保服务器的防火墙允许 80 和 443 端口的访问。
- 因为像 80 (HTTP) 和 443 (HTTPS) 端口通常是默认开启的,所以前面我们没有特别检查。
- 但如果你的主机有特殊设置,或者你不想使用 443 端口,就需要检查一下防火墙设置。
- 例如,你想使用 8080 端口。
- 首先,你需要检查是否启用了
ufw
防火墙:sudo ufw status
。 (画面:命令行输入和执行) - 以及是否开放了你要使用的端口:
sudo ufw allow 8080
。 (画面:命令行输入和执行) - 我这里没有使用
ufw
,而是使用的iptables
。 - 首先检查 8080 端口是否开启:
sudo iptables -L -n | grep 8080
。 (画面:命令行输入和执行) - 如果没有输出,说明 8080 端口没有开启。
- 使用这个命令开启 8080 端口:
sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
。 (画面:命令行输入和执行) - 记得保存
iptables
的配置,避免重启后失效。 (可以根据你的系统添加保存命令,例如sudo netfilter-persistent save
)
📦 安装 sing-box (字幕:安装 sing-box)
- 现在,我们来在服务器上安装 sing-box。
- 参考 sing-box 官网的安装教程。 (画面:sing-box官网截图,高亮安装部分)
- 针对不同的操作系统,有不同的安装方法。
- 我这里使用的是 Ubuntu 系统,所以使用
apt
来安装。 - 按照官网的步骤执行安装命令。 (画面:执行安装命令的演示)
- 安装完成后,可以使用
sing-box version
命令来检查是否安装成功。 (画面:命令行输入和执行,并显示版本信息)
⚙️ 配置 sing-box 服务端 (字幕:配置 sing-box 服务端)
- 接下来,我们使用 sing-box 配置一个 Trojan 节点。 (画面:Trojan协议的图标)
- 在
/etc/sing-box/
目录下,新建一个名为config.json
的文件。 (画面:命令行输入和执行) - 然后复制 sing-box 官网提供的示例配置。 (画面:sing-box官网配置示例截图)
- 这里我们选择使用本地证书。
- 如果你使用了
acme.sh
,可以切换到acme
相关的配置格式。 - 但如果遇到问题,使用本地证书可以更容易判断是不是
acme
的问题。 - 复制官网示例的全部内容。
- 我先在 VS Code 中修改一下配置(你也可以直接在服务器上修改)。 (画面:VS Code 编辑 config.json 文件的界面)
- 修改你的监听端口是否是 8080(如果前面你选择了其他端口,这里也要对应修改)。 (画面:高亮显示并修改端口号)
- 把
server_name
修改为我们刚才配置的域名:demo.deepseekapi.ggff.net
。 (画面:高亮显示并修改server_name) - 这里的
key_path
是存放私钥的路径,certificate_path
存放的是完整的证书链。 (画面:高亮显示 key_path 和 certificate_path) - 这两个路径可以在 Certbot 给我们生成的 Nginx 配置文件中找到。 (画面:Nginx 配置文件中证书路径的截图)
- 我们复制这两个路径,然后粘贴到
config.json
文件中,并做相应的修改。 (画面:演示复制粘贴证书路径) - 修改完成后,复制
config.json
的全部内容。 - 回到服务器,使用
vi
编辑config.json
文件:sudo vi /etc/sing-box/config.json
。 (画面:命令行输入和执行) - 粘贴刚才复制的内容,然后保存并退出
vi
。 - 重新启动一下 sing-box 服务:
sudo systemctl restart sing-box
。 (画面:命令行输入和执行) - 然后检查一下配置是否有错误:
sudo /etc/sing-box/sing-box check
。 (注意:根据你的安装方式,sing-box命令可能不在这个路径下,如果提示找不到命令,直接使用sing-box check
) (画面:命令行输入和执行,并显示检查结果) - 这里只有一个关于废弃配置的提醒,说明主要的配置没有问题。
- 我们再使用
sudo ss -tulnp | grep 8080
命令检查一下 sing-box 是否正在监听 8080 端口。 (如果你的端口不是 8080,请替换) (画面:命令行输入和执行,并显示监听状态) - 可以看到 sing-box 正在监听 8080 端口,服务端配置就完成了。
📱 客户端工具下载与配置 (字幕:客户端工具下载与配置)
- 现在回到你的客户端电脑或手机。
- 我们需要下载 sing-box 的客户端工具。
- sing-box 官网也提供了多种客户端下载方式。 (画面:sing-box官网客户端下载页面截图)
- 目前官方客户端不支持 Windows 系统,你可以使用
GUI for sing-box
等第三方工具替代。 (画面:GUI for sing-box 的截图或链接提示) - 如果是在苹果电脑上,可以使用 Homebrew 来安装
sfm
(Sing-box Frontend Manager)。 (画面:Homebrew logo和sfm的安装命令) - 我这里已经安装好了,我们来查看一下:
brew info sfm
。 (画面:命令行输入和执行,并显示sfm信息)
⚙️ 新建配置 (字幕:新建配置)
- 我们来新建一个配置,名字就叫
demo
。 (画面:sfm或其他客户端的配置界面) - 选择本地配置模式。
- 接下来是很多人觉得最麻烦的地方,因为 sing-box 的配置比较复杂,而且版本更新频繁,网上的一些配置可能已经过时了,导致配置失败。
- 这里我给大家一个我的配置参考,并大致讲解一下。 (画面:展示一个基本的客户端配置JSON或YAML文件)
- sing-box 的配置主要分为几个大的模块,可以看到手册里比较重要的有:
dns
,router
,inbounds
,outbounds
。 (画面:sing-box手册的截图,高亮显示这几个模块)
(这里你需要根据你的实际客户端配置进行讲解,例如:)
- 在
outbounds
里面,我们要配置连接到服务器的节点。 (画面:客户端配置中outbounds部分的截图) - 类型选择
trojan
。 server
填写你的域名:demo.deepseekapi.ggff.net
。 (画面:高亮显示并填写域名)server_port
填写你的服务器端口:8080
。 (画面:高亮显示并填写端口)password
填写你在服务端config.json
中设置的密码。 (画面:高亮显示并填写密码)tls
部分需要配置server: demo.deepseekapi.ggff.net
,sni: demo.deepseekapi.ggff.net
,并且skip_cert_verify
设置为true
(因为我们使用的是自签名证书或者Let’s Encrypt证书)。 (画面:高亮显示tls相关配置)- 其他模块的配置可以根据你的需求进行调整,例如 DNS 可以使用 Cloudflare 的
1.1.1.1
。 (画面:高亮显示DNS配置)
🧪 测试 (字幕:测试)
- 现在我们来测试一下,看看能不能正常连接到服务器。 (画面:客户端连接成功的提示)
(如果连接不上,按照以下步骤排查问题:)
- 如果连接不上,我们先在本地查看客户端的配置格式是否正确,有没有违反 JSON 语法。 (画面:检查客户端配置的界面)
- 然后检查服务器端 sing-box 服务是否正常运行:
sudo systemctl status sing-box
。 (画面:命令行输入和执行,并查看服务状态) - 检查服务器端口是否被监听:
sudo ss -tulnp | grep 8080
。 (画面:命令行输入和执行,并查看端口监听) - 检查服务器防火墙是否开放了相应的端口:
sudo iptables -L -n | grep 8080
。 (画面:命令行输入和执行,并查看防火墙规则) - 检查服务器的 SSL 证书是否正确:
openssl s_client -connect demo.deepseekapi.ggff.net:8080 -showcerts
。 (画面:命令行输入和执行,并查看证书信息) - 查看服务器端的 sing-box 日志:
sudo journalctl -u sing-box --output cat -e
。 (画面:命令行输入和执行,并查看日志) - 本地客户端可以直接查看
sfm
或其他客户端的日志。 (画面:客户端查看日志的界面) - 最后还要注意配置的拼写,有时候不小心域名拼写错误或者其他拼写错误是最难发现的,一定要仔细检查! (画面:提示仔细检查拼写)
🎤 通过这个视频,你已经学会了如何完整配置 sing-box,从服务器端安装、证书申请、代理规则到故障排查! (画面:总结步骤的流程图或关键操作回顾)
👍 如果这个教程对你有帮助,别忘了点赞、关注、分享! (画面:点赞、关注、分享的引导动画)
🚀🔥 我们下期再见! (画面:结束语和频道logo)
🐳 使用 Docker (字幕:使用 Docker - 可选)
- 当整个配置都跑通了,你可以在服务端考虑使用 Docker 来部署 sing-box。 (画面:Docker logo和sing-box Docker镜像的示意)
- 在客户端,你也可以添加 Clash API 的支持,这样可以实现更灵活的路由和策略管理。 (画面:Clash logo和相关配置界面的示意)
- 这些都是你可以根据自己的需求进一步优化的方向。
关注我获取更多资讯

