「Sing-box 完整配置教程」| 从零搭建代理节点 | Nginx + SSL + Trojan + Clash API

Sing-box 是一款强大的代理工具,支持 Shadowsocks、V2Ray、Trojan 等协议,并且可以灵活配置 DNS、路由、入站、出站等规则。本视频适合想要自己搭建代理节点的朋友,一步步带你完成从服务器安装到客户端连接,让你的代理更加稳定高效!

阅读时长: 11 分钟
共 5025字
作者: eimoon.com

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 的配置主要分为几个大的模块,可以看到手册里比较重要的有:dnsrouterinboundsoutbounds (画面:sing-box手册的截图,高亮显示这几个模块)

(这里你需要根据你的实际客户端配置进行讲解,例如:)

  • outbounds 里面,我们要配置连接到服务器的节点。 (画面:客户端配置中outbounds部分的截图)
  • 类型选择 trojan
  • server 填写你的域名:demo.deepseekapi.ggff.net (画面:高亮显示并填写域名)
  • server_port 填写你的服务器端口:8080 (画面:高亮显示并填写端口)
  • password 填写你在服务端 config.json 中设置的密码。 (画面:高亮显示并填写密码)
  • tls 部分需要配置 server: demo.deepseekapi.ggff.netsni: 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和相关配置界面的示意)
  • 这些都是你可以根据自己的需求进一步优化的方向。

关注我获取更多资讯

公众号
📢 公众号
个人号
💬 个人号
使用 Hugo 构建
主题 StackJimmy 设计