原帖地址:https://www.nodeseek.com/post-453020-1
NAT VPS 是什么
技术版
NAT VPS 的工作方式是:
一台物理服务器通常只有一个公网 IP 地址。通过 网络地址转换 (NAT) 和 端口映射 (Port Forwarding) 技术,服务器把这个公网 IP 下的不同端口,分配给不同的 VPS。
每个用户会得到一个自己可用的的 端口范围,在这个范围内可以运行各种应用/服务。这样,虽然所有 VPS 用户共用同一个公网 IP,但因为各自的端口号互不重叠,通信不会发生冲突。例如:
- 用户 A 分配端口范围
10000–10050 - 用户 B 分配端口范围
10051–10100 - 用户 C 分配端口范围
10101–10150
这样每个用户都能对外提供服务,同时通信不会发生冲突。
通俗比喻版
可以把 NAT VPS 想象成一栋大楼:
- 整栋楼只有一个 门牌号(公网 IP)
- 楼里住着很多住户(不同的 VPS 用户)
- 每个住户都有自己独立的 房间号(端口范围)
外面的人如果想找某个住户,就必须同时知道 门牌号 + 房间号,快递才能准确送达,不会送错。
同样,NAT VPS 用户虽然没有单独的公网 IP,但通过分配的端口范围,就能独立运行服务,彼此互不干扰。
不同实现方式
NAT VPS 可以基于不同的虚拟化或容器化技术来实现。常见方式包括:
- KVM(Kernel-based Virtual Machine)
- 属于 完全虚拟化,每个 VPS 都是一个独立的虚拟机,拥有完整的内核和操作系统。
- 优点:隔离性强,接近物理机,功能最完整。
- 缺点:资源开销相对较大。
- LXC / LXD(Linux Containers)
- 属于 轻量级操作系统层虚拟化,多个 VPS 共用宿主机内核,但文件系统、进程空间等是隔离的。
- 优点:性能高、资源消耗小。
- LXD 是 LXC 的增强版,提供了更易用的管理接口。
- Incus
- LXD 的社区分支,由 LXD 原始开发者维护,功能和定位类似 LXD。
- 更加社区驱动,适合希望长期稳定、开放的用户。
- Docker
- 面向应用的容器化方案,通常不是直接用于 VPS,但部分商家会用 Docker 来实现简易 NAT VPS。
- 优点:部署和迁移方便,适合单一服务。
- 缺点:隔离性较弱,不如 KVM/LXC 灵活完整。
无论使用哪种底层方案,NAT VPS 的核心始终是:多个用户共享一个公网 IP,通过端口范围进行资源划分与隔离。
(by ChatGPT)
小内存保平安
不要在任何内存小于 512M 的小鸡上运行任何涉及机器性能的测试脚本。
若强行运行,可能导致 Panic、无法 SSH 等问题,机器失联。若失联,建议直接控制面板重装。
下面以学长网络的日本家宽 NAT VPS 为例,进行教程。
学长网络的日本家宽 NAT VPS 采用KVM虚拟化,自由度较大。目前 Softbank 家宽 NAT 在售,IP 质量优,每天定时换 IP。
点击选购(AFF)
本教程基于Debian系统。
快速开机、连接SSH
0. VirtFusion 面板首次安装系统
进入 VirtFusion 面板
在商家后台页点击刚购买的产品
点击下面红框处的 OPEN CONTROL PANEL
首次安装系统
在第一个Name输入框处,随便输入一个主机名
Operating System 选择 Debian 12 Minimal
Swap Space 个人偏向于选择与内存相同的值,或使得 RAM+Swap=1GB 的最小值。此处为 512MB
SSH Keys 不会用的话不用动,就用密码登录就可以,密码在系统安装完成后,会邮件发到邮箱
DNS 都改为 Cloudflare 的,Primary 选择 1.1.1.1 , Secondary 选择 1.0.0.1
然后点击最下方的 **Install with Debian 12**
所有配置可参考下图所示
因为未配置 SSH Keys,所以会弹出一个红框需要确认,就选 **Install Without** 就可以
参考下图所示
耐心等待系统安装完成
1. 获取用户名、密码和 SSH 端口
到邮件中找到端口号、用户名、密码
邮件中的 Address 忽略掉,不用记录,邮件中的 Address 忽略掉,不用记录
参考下图所示
2. 获取 DDNS 域名
学长网络提供有 DDNS 域名,在控制面板首页可以获取到
参考下图所示
3. 配置内外一致的端口映射,并获取端口范围
点击控制面板中的 Network 标签
校验 Service Port 1 中,箭头左边的端口,应该与邮件中收到的一致
在 Configurable Ports 中,会显示一堆端口和输入框,这些就是可用于搭建各种应用的端口。这些端口是连续的记录箭头左侧的端口号范围,后续所有的应用都需要使用此范围里的端口
为了配置内外端口一致的端口映射,在每个输入框中都输入与箭头左边相同的端口号数字,全部输入完成后点击 Update
参考下图所示
配置成功后,端口号会由铜色变为浅蓝色,显示形如 <IP>:<端口>
参考下图所示
这样配置出来的端口映射内外端口一致,在后续搭建服务的时候,这里的端口可以直接通过<DDNS域名>:<端口>形式访问。
以上就完成了所有在 VirtFusion 中的操作
4. SSH 连接机器
以 Xshell 作示例,其它软件可参照配置
新建一个会话,会话属性参照下图设置

点击连接,则应该能够成功连接。
然后即可开始玩耍。
其它常用命令补充
5. 开启 BBR
个人未使用过其它 BBR 魔改版,按顺序执行以下命令打开原版 BBR。
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.d/99-bbr.conf
echo "net.core.default_qdisc=fq" >> /etc/sysctl.d/99-bbr.conf
sysctl -p /etc/sysctl.d/99-bbr.conf
可以执行 lsmod | grep bbr ,如返回结果有 tcp_bbr,则验证 BBR 已经打开。
6. 配置 DDNS
对于动态IP家宽机器,都建议配置自己的DDNS。
本示例中采用 https://github.com/jeessy2/ddns-go 这个项目,也可以使用个人习惯使用的其它方式。
仅就如何安装DDNS-GO给出了简单执行说明,还支持更多命令,可以进入项目查看其README。实现DDNS所需的其它要素,如域名、Token……等问题,请自行Google。
安装前,在第3步的端口范围内,确定1个面板使用的端口
按顺序执行以下命令安装v6.12.4(当前最新)版
mkdir ddns-go && cd ddns-go
wget https://github.com/jeessy2/ddns-go/releases/download/v6.12.4/ddns-go_6.12.4_linux_x86_64.tar.gz
tar zxvf ddns-go_6.12.4_linux_x86_64.tar.gz && rm ddns-go_6.12.4_linux_x86_64.tar.gz
./ddns-go -s install -l :<使用的端口>
然后访问 http://<DDNS域名>:<使用的端口> 即可进行配置。首次访问会提示配置用户名和密码,请一定要配置强密码。
7. 挂探针
哪吒
直接从哪吒后台复制安装命令即可,命令应该形如
curl -L https://raw.githubusercontent.com/nezhahq/scripts/main/agent/install.sh -o agent.sh && chmod +x agent.sh && env NZ_SERVER=<哪吒服务器>:<哪吒端口> NZ_TLS=<true/false> NZ_CLIENT_SECRET=<哪吒Secret> NZ_UUID=<哪吒uuid> ./agent.sh
Komari
直接从 Komari 后台复制安装命令即可,命令应该形如
bash <(curl -sL https://raw.githubusercontent.com/komari-monitor/komari-agent/refs/heads/main/install.sh) -e https://<Komari服务器>:<Komari端口> -t <KomariToken>
安装完成后,应该能够在面板看见新机器。个人折腾经验内目前还未发现安装命令不行的情况。
8. 验证/配置虚拟内存
输入 free -m ,查看Swap项是否有内容,是否存在与 VirtFusion 开机时候,设定一致的虚拟内存
效果如下图所示
如果 Swap 显示为0,则未设置虚拟内存,则执行以下的命令设置
以设置512M虚拟内存为例
dd if=/dev/zero of=/swapfile count=512 bs=1M
chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
echo -e "/swapfile none swap sw 0 0" >> /etc/fstab
9. APT 换源
一般来说,什么地域的机器,就换对应什么地域的源,能极大地加快软件包下载速度
该机器在日本,换 xTom 源,系统是 Debian 12 Bookworm ,则执行下面的命令
cat <<'EOF' > /etc/apt/sources.list
deb https://mirrors.xtom.jp/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.xtom.jp/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.xtom.jp/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.xtom.jp/debian-security bookworm-security main contrib non-free non-free-firmware
EOF
换源完成后,执行 apt update。
注意,如果系统不一样,则不能照抄该命令,需要根据具体系统、具体源进行配置。
10. 换 Cloud 内核,降低硬盘及内存占用
NAT机硬盘都比较小,寸土寸金
该系统开机后默认是标准内核,可更换为 Cloud 内核,降低硬盘占用近300M
安装 Cloud 内核并重启
apt update
apt install linux-image-cloud-amd64
systemctl reboot
重启后应该会默认启动至新的 Cloud 内核
查看当前在用的内核:uname -sr
返回值中有cloud-amd64 则代表当前正在使用 Cloud 内核,可以将旧内核删除
删除当前未在使用的内核
注意,不能在上一步未重启的情况下执行该条命令!
apt -y remove --purge $(dpkg -l | grep linux-image | awk '{print$2}' | grep -v $(uname -r))
查看当前系统中安装的内核
dpkg -l | grep linux-image | awk '{print$2}'
应该只显示linux-image-版本号-cloud-amd64
更新引导
update-grub
11. Docker
注意,安装Docker本身需要 200+M 磁盘空间,请结合磁盘空间的紧张程度进行评估。
直接执行curl https://get.docker.com | bash安装 Docker 和 Docker Compose
安装完成后,可执行docker info输出 Docker 信息,在Plugins中应该也会有显示Docker Compose。
12. 路由测试 Nexttrace
安装命令
wget https://github.com/nxtrace/NTrace-V1/releases/download/v1.4.3-beta.2/nexttrace_linux_amd64
chmod +x nexttrace_linux_amd64
mv nexttrace_linux_amd64 /usr/local/bin/nexttrace
使用:nexttrace <domain/ip>
13. 流媒体解锁测试
直接运行bash <(curl -Ls check.unlock.media)
使用ssh隧道来访问未设置端口映射的内网端口:
powershell或别的终端运行
ssh -f -N -L 0.0.0.0:20649:127.0.0.1:20649 root@your_vps_ip -p your_ssh_port
然后在你的浏览器打开0.0.0.0:20649就行了,适合ddns-go、xui这种不应该暴露在外的网页控制端口