前言

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

Important

仅用于学习与个人自用,请遵守当地法律与服务条款。


方案概览

🖥️客户端任意客户端
🛰️主 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 直接可用端口

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

image.png

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


二、在 NAT VPS 搭建 Shadowsocks2022 节点

2.1 一键脚本

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

caigouzi121380
caigouzi121380/singbox-deploy

一个跨平台、自动化、全兼容的 Sing-box 一键部署脚本

39865Shell

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

2.2 搭建 SS 节点

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

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

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

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

选择 1:1) Shadowsocks (SS)

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

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

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

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

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

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

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

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

  1. 部署完成

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
==========================================
[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 为例,

image.png

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

Note

服务商直接提供可用端口者无需进行端口映射


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

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

基本信息:

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

连接信息:

  • 地址:NAT VPS 公网 IP
  • 端口:使用公网映射外部端口
Note

如我们在 2.3 节中例子,我将 8443 –> 18443,18443 为外部端口,此处就应该填写 18443 作为线路机连接到 NAT 机 SS 节点的端口。若服务商直接给出可用端口,那么就填写你使用的可用端口即可

  • 加密方式:BLAKE3_AES_128_GCM(与服务端一致)
  • 密码:PASSWORD(为 NAT SS 节点的密码,例如在 2.2 节中,密码即为 OUXioj8pk/VU4UA/f+fxmA==

image.png

点击添加出站即可。


四、3x-ui 路由策略

image.png

A. 全量落地

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

保存后一定要点击重新启动 Xray!否则无法生效!

B. 分流落地

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


提醒:非 NAT 落地同样适用

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