自建全功能节点网关实战教程
架构核心: 摒弃传统在客户端通过 OpenClash / Clash 链式代理的复杂配置,改为直接在服务端(s-ui 面板)将前置机房节点与住宅原生出站 IP 绑定。客户端只需要像连接普通节点一样连接前置入口,出口即可自动变成干净的住宅家庭宽带 IP。
1. 准备工作
- 前置 VPS 服务器: 推荐选择延迟低、直连速度快的机房(如香港、日本等优化 BGP 线路的 VPS),操作系统推荐选择稳定兼容的 Debian 11/12 或 Ubuntu 22.04+。
- 托管域名: 准备一个域名(如廉价的
.xyz后缀域名),在 DNS 解析后台添加一条A 记录,将子域名(如node.yourdomain.com)解析到你的 VPS 公网 IP。 - 落地住宅代理: 准备好第三方住宅 IP 提供的出站信息(通常包括:协议类型 SOCKS5/HTTP、服务器地址、端口、用户名和密码)。
2. 安装 s-ui 控制面板
通过 SSH 远程连接到 VPS 服务器,执行一键管理脚本:
bash <(curl -Ls https://raw.githubusercontent.com/liandu2024/s-ui/main/install.sh)
安装过程中按提示确认。安装完成后,控制台将输出默认访问地址、端口以及初始管理员用户名和密码,请先复制暂存。
3. 申请 SSL 证书并开启 HTTPS 访问
为了杜绝面板后台明文传输与密码泄漏风险,需要为域名配置 SSL 证书:
3.1 申请证书
在 VPS 终端执行证书申请脚本(也可以使用 acme.sh 手动签发):
bash <(curl -fsSL https://raw.githubusercontent.com/liandu2024/little/refs/heads/main/acme/rootacme.sh)
在菜单中选择申请证书功能,输入解析到当前服务器的域名(如 node.yourdomain.com),完成证书签发并记录生成的公钥证书与私钥路径(通常位于 /root/cert.crt 与 /root/private.key)。
3.2 在面板中启用 HTTPS
- 在浏览器中输入初始 HTTP 链接访问面板,登录后台。
- 点击左侧导航栏的 系统设置 (Settings)。
- 将证书公钥文件路径填入
SSL 证书路径 (Certificate File),私钥路径填入SSL 密钥路径 (Private Key File)。 - 在 域名 (Domain) 栏填入解析好的完整域名,保存并重启 s-ui 面板服务。
- 在浏览器使用带 HTTPS 的域名地址重新访问:
https://node.yourdomain.com:端口/
安全重设: 成功以 HTTPS 加密方式访问后台后,请第一时间进入 管理员设置,修改默认的用户名和登录密码!
4. 创建前置节点与配置落地住宅 IP 出口
4.1 创建前置接入节点
进入 入站管理 (Inbounds),根据自身需求添加入站节点,支持添加多种协议(如 Shadowsocks、Hysteria2、TUIC、Vless 等),保存后生成用户订阅。
4.2 配置落地住宅 IP 出站
- 进入 出站管理 (Outbounds),点击 添加出站 (Add Outbound)。
- 协议类型选择
SOCKS5或HTTP(取决于所购买的住宅 IP 规格)。 - 标签/名称: 填写容易识别的名称(例如
residential-out)。 - 服务器地址与端口: 填入住宅代理服务商提供的连接域名/IP 和端口。
- 认证信息: 填入对应的住宅代理用户名与密码,点击保存。
4.3 绑定默认路由出口
- 进入 路由管理 (Rules)。
- 找到 默认出站 (Default Outbound) 设置项。
- 将默认出站规则由机房直连切换为你刚才添加的住宅出站标签(
residential-out)并保存规则。
5. 客户端连接与验证
5.1 导入客户端
复制 s-ui 后台生成的节点订阅链接或二维码,直接导入到常见客户端(如 Hiddify、Shadowrocket、Clash Verge、V2Ray 等)。
注意: 客户端不需要进行链式代理或繁琐规则嵌套,就像日常连接单个普通前置节点一样直接启动连接。
5.2 检验落地 IP
连接成功后,打开 IP 检测网站(例如 ipinfo.io 或 ip138):
- 检测到的 IP 应当为住宅代理的出口 IP。
- IP 类型显示为 ISP 家庭宽带(Residential),而非数据中心(Data Center/IDC)。
6. 卸载与清理
如果需要从 VPS 上完全卸载并清理 s-ui 面板及相关配置,可以在终端中输入:
# 运行管理菜单
s-ui
在弹出的交互式终端菜单中,输入对应的卸载编号(通常为对应的数字序号)回车确认;或者直接通过 systemctl 停用并删除服务:
# 手动停止并卸载服务
systemctl stop s-ui
systemctl disable s-ui
rm -rf /usr/local/s-ui /etc/s-ui
rm -f /etc/systemd/system/s-ui.service
systemctl daemon-reload
7. 项目与教程来源
- 教程出处: YouTube 频道「安格视界」——《最强自建节点完整版:SSL证书/HTTPS + 抗封锁 + 落地住宅IP,抛弃链式代理》
- 视频源地址: https://www.youtube.com/watch?v=0FUnxXF2DFA
- 核心面板项目: s-ui(基于 sing-box 内核的多协议图形化面板)
- 项目代码仓库: https://github.com/alireza0/s-ui