如何用 3X-UI 让线路机对接动态 IP NAT 落地机

以 NAT VPS 作为落地机搭建 SS 节点,通过 3X-UI 配置出站规则,将流量从线路机转发至动态 IP 的 NAT 落地机

发布于
作者是 GEMILUXVII · 收录在 纸上谈兵 · 标签 techvpsxrayproxynatshadowsocks · 约 8 分钟阅读 · 这里是

前言#

本文是基于已搭建 3x-ui 的线路机做中转,使用动态家宽的 NAT VPS 落地,达到动态纯净 IP 出口的目的。


方案概览#

🖥️客户端任意客户端
🛰️主 VPS公网 IP
3x-ui 入口
🏠NAT VPSSS2022 协议
🌍公网出口NAT VPS 最终落地 IP

准备清单#

  • 一台有公网 IP 的主 VPS 作为线路机(跑 3x-ui 作为入口)
  • 一台 NAT VPS(作为 SS 服务端,提供出口)
  • 保证 NAT VPS 有可达端口——关键前提:要么提供端口映射层,要么提供 IPv6
    • 端口映射方案:NAT 提供商在控制面板设定映射规则(如公网端口 20000 -> 内网端口 8388)
    • IPv6 方案:NAT VPS 直接分配 IPv6,主 VPS 能通过 IPv6 直连

一、前提检查:NAT VPS 可达性#

1.1 端口映射#

如果 NAT VPS 由提供商托管(如某些 NAT 机房),通常提供控制面板端口映射功能。

示例:在提供商面板设定映射规则

  • 公网端口 20000 -> 内网端口 8388
  • 你的主 VPS 会连接到"NAT VPS 的公网 IP:20000"

1.2 直接可用端口#

部分服务商会直接给出可用端口,无需映射,如下图:

NAT VPS 可用端口信息

此时直接使用其端口即可,无需映射。


二、在 NAT VPS 搭建 Shadowsocks2022 节点#

2.1 一键脚本#

本文使用此一键脚本在 NAT VPS 上搭建 SS2022 节点(sing-box):

caigouzi121380/singbox-deploy View this repository on GitHub

SS2022 节点将会作为落地节点,出口为其动态家宽出口。

2.2 搭建 SS 节点#

  1. SSH 到 NAT VPS,复制一键脚本指令:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/caigouzi121380/singbox-deploy/main/install-singbox-yyds.sh)"
  1. 节点名称
[INFO] 依赖安装完成
请输入节点名称(留空则默认议名):

此处随便填写,选择一个好记顺眼的名称即可。

  1. 协议选择
[INFO] === 选择要部署的协议 ===
1) Shadowsocks (SS)
2) Hysteria2 (HY2)
3) TUIC
4) VLESS Reality

请输入要部署的协议编号(多个用空格分隔,如: 1 2 4):

选择 1:1) Shadowsocks (SS)

  1. 加密方式选择
[INFO] === 选择 Shadowsocks 加密方式 ===
1) 2022-blake3-aes-128-gcm (推荐)
2) aes-128-gcm

请输入选择(默认为 1):

选择 1:1) 2022-blake3-aes-128-gcm (推荐)

  1. 输入 IP/域名
请输入节点连接 IP 或 DDNS域名(留空默认出口IP):

此处填写 SSH 到 NAT VPS 时所用的 IP/域名,即 NAT VPS 的入口

  1. 配置 Shadowsocks (SS)
请输入 SS 端口(留空则随机 10000-60000):

此处填写内部任意端口,并非服务商分配给 NAT 机的可用端口,比如我们填写一个 8443 作为内部端口,之后我们会将此端口映射到外部服务商分配的可用端口。

如果服务商直接给出了可用端口,那么直接填写可用端口即可,比如开放端口为 21043~21044,直接填写 21043/21044即可。

  1. 部署完成

输出类似如下内容即为部署完成,我们就在 NAT VPS 上搭建好了一个可用于落地的 SS2022 节点。

记住此处的密码,端口和加密方式。

==========================================
[INFO] 🎉 Sing-box 部署完成!
==========================================

[INFO] 📋 配置信息:
   SS 端口: 8443 | 密码: OUXioj8pk/VU4UA/f+fxmA== | 加密: 2022-blake3-aes-128-gcm
   服务器: YOUR_SERVER_IP
   Reality server_name(SNI): addons.mozilla.org

[INFO] 📂 文件位置:
   配置: /etc/sing-box/config.json
   服务: /etc/init.d/sing-box

[INFO] 📜 客户端链接:
   === Shadowsocks (SS) ===
   ss://2022-blake3-aes-128-gcm%3AOUXioj8pk%2FVU4UA%2Ff%2BfxmA%3D%3D@YOUR_SERVER_IP:49520#ss
   ss://MjAyMi1ibGFrZTMtYWVzLTEyOC1nY206T1VYaW9qOHBrL1ZVNFVBL2YrZnhtQT09@YOUR_SERVER_IP:49520#ss
   

[INFO] 🔧 管理命令:
   启动: rc-service sing-box start
   停止: rc-service sing-box stop
   重启: rc-service sing-box restart
   状态: rc-service sing-box status
   日志: tail -f /var/log/sing-box.log

==========================================
[INFO] 正在创建 sb 管理面板: /usr/local/bin/sb
[INFO] ✅ 管理面板已创建,可输入 sb 打开管理面板

2.3 端口映射#

此步我们要将在 2.2 中 NAT VPS 的内部端口映射到外部,以便 3x-ui 能从公网访问其 SS2022 节点。

以懒猫云的 NAT VPS 为例,

NAT VPS 端口映射配置

我的节点内部端口为 8443,我将其映射为外部可用端口 18443,记住映射的外部端口,这将是我们后面 3x-ui 出站到 NAT VPS 所用的端口。


三、主 VPS 上 3x-ui 新增 SS 出站#

进入 3x-ui → Xray设置出站规则添加出站

基本信息:

  • 类型:Shadowsocks
  • 备注/标签:任意,比如 nat-ss

连接信息:

  • 地址:NAT VPS 公网 IP
  • 端口:使用公网映射外部端口
  • 加密方式:BLAKE3_AES_128_GCM(与服务端一致)
  • 密码:PASSWORD(为 NAT SS 节点的密码,例如在 2.2 节中,密码即为 OUXioj8pk/VU4UA/f+fxmA==

3x-ui Shadowsocks 出站配置

点击添加出站即可。


四、3x-ui 路由策略#

3x-ui 路由规则配置

A. 全量落地

  • 进入 3x-ui → Xray设置路由规则
  • 点击 Inbound Tags 选择你的入站端口,比如要将 443 端口搭建了的节点路由到 NAT 机就选择 inbound-443
  • 然后点击 Outbound Tag 选择出站名为你刚添加出站的出站标签,比如 nat-ss,添加规则
  • 选择左上角保存,然后点击重新启动 Xray

B. 分流落地

A. 全量落地 ,但是添加你想要分流的网站,比如填写Domain部分为 claude.ai,geosite:openai,此时经由此节点的相关网站均会流向 NAT VPS 的出口,其余网站保持不变。


提醒:非 NAT 落地同样适用#

本文以 NAT 机为例,本质是“线路机 → SS 出站 → 落地机”。如果你的落地机是非 NAT 公网机,同样只需在落地机上搭建一个 SS 节点,再在 3x-ui 添加对应出站即可,步骤完全一致。

评论