2026年8月28日 Technical Release

NAT VPS 进阶玩机手册:Cloudflare Tunnel 零端口建站与 Realm 极速中转实战

"深度玩转低成本 NAT VPS:利用 Cloudflare Tunnel 彻底告别端口映射与 IP 变动困扰、零端口暴露安全建站,以及使用极轻量 Rust 中转工具 Realm 实现低内存高吞吐流量转发与跨机房互联实战。"

NAT VPS 进阶玩机手册:Cloudflare Tunnel 零端口建站与 Realm 极速中转实战

核心导读

  • 零公网端口建站:借助 Cloudflare Tunnel(cloudflared),NAT VPS 无需任何入站端口映射,即可实现标准 80/443 访问、免费 SSL 与 WAF 防护,彻底无视母鸡 IP 变动。
  • 极致轻量流量中转:采用 Rust 编写的 Realm,内存占用仅 3MB,单机承载百万连接与 TCP/UDP 双栈高性能加速。
  • 分布式极客工作流:配合哪吒探针与 Tailscale Userspace 组建跨国私有网络,结合 Rclone + Cloudflare R2 实现全自动化灾备。
  • 在独角鲸云的 Podman、LXC 与 KVM 架构上均已通过完整测试——立即开启你的算力实验

为什么说 NAT VPS 是极客的最佳实验场?

NAT VPS 以极低的价格(通常仅为同配置独立 IP VPS 的 1/5 甚至 1/10)提供了纯粹的 CPU、内存和存储算力。

然而,许多开发者在入手 NAT VPS 后常常受困于两大痛点:

  1. 端口受限与访问难看:常规建站必须使用外部分配的 >1024 高位端口(例如 http://example.com:28456),不仅 URL 冗长,且如果宿主机 IP 发生变动或被阻断,所有解析必须手动重置。
  2. 内存极小:入门级 NAT 容器(如 Podman / LXC)内存常在 128MB ~ 512MB 之间,若运行笨重的中转程序或 Java/Python 组件,极易触发 OOM(内存溢出)。

今天,我们将通过两套现代化技术栈彻底击碎这些限制:Cloudflare Tunnel 解决 Web 服务与穿透问题,Realm 解决极低内存下的高吞吐网络中转问题。


架构全景对比

传统 NAT 端口映射 vs Cloudflare Tunnel 架构对比 架构对比:传统 NAT 端口映射 vs. Cloudflare Tunnel 零暴露隧道 传统 NAT 端口映射模式 访客浏览器 入站端口 28080 宿主机 NAT 网关 iptables PREROUTING NAT VPS 实例 (10.0.0.5:80) 痛点:必须暴露端口、易受扫射、母鸡 IP 变动则失效 Cloudflare Tunnel 现代模式 访客 (443) Cloudflare 边缘 Anycast / SSL / WAF 双向出站加密隧道 (QUIC) NAT VPS (cloudflared 客户端) 优势:0 入站端口、抗 DDoS、IP 变动零影响
图 1:传统 NAT 端口转发依赖宿主机映射与入站暴露,而 Cloudflare Tunnel 主动建立加密出站隧道,实现安全零端口建站。

玩法一:Cloudflare Tunnel 零端口映射建站实战

Cloudflare Tunnel(即 cloudflared)运行在 NAT VPS 内部,它主动与 Cloudflare 全球边缘数据中心建立轻量级的 QUIC/HTTP2 出站长连接。

核心优势

  1. 无需公网 IP 与入站端口:宿主机防火墙即使封禁所有外部入站,只要允许 VPS 访问外网,就能正常工作。
  2. 标准 HTTPS 443 访问:自动颁发并续期全球信任的 TLS 证书。
  3. 多域名与多服务隔离路由:一个 Tunnel 可轻松绑定 blog.yourdomain.comapi.yourdomain.comdrive.yourdomain.com,分别反向代理到本地不同的内部端口。
  4. 原生 DDoS 与 Web 应用防火墙(WAF)

Step 1:安装 cloudflared

连接到你的 NAT VPS(可通过控制面板提供的 SSH 端口或 Web 终端):

# 自动检测架构并下载官方二进制(支持 amd64 / arm64)
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
  curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /usr/local/bin/cloudflared
elif [ "$ARCH" = "aarch64" ]; then
  curl -fsSL https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64 -o /usr/local/bin/cloudflared
fi

chmod +x /usr/local/bin/cloudflared
cloudflared --version

Step 2:快速一键接入(Token 方式推荐)

最简单稳定的方式是使用 Cloudflare Zero Trust 控制台创建的 Tunnel Token:

  1. 登录 Cloudflare Zero Trust 控制台
  2. 导航至 NetworksTunnels → 点击 Create a Tunnel
  3. 选择 Cloudflared,给隧道命名(例如 narwhal-nat-vps)。
  4. 在安装页面中,选择 Linux 环境,控制台会生成一条带 --token 的安装命令。
  5. 在 VPS 上直接执行:
cloudflared service install <YOUR_TUNNEL_TOKEN>

该命令会自动创建并启动 systemd 服务,保证开机自启和异常自动恢复:

systemctl status cloudflared

Step 3:配置多服务路由(Public Hostnames)

在 Cloudflare 控制台的 Public Hostnames 选项卡中,你可以随时为该 NAT VPS 添加多条域名路由映射,完全不需要重启服务或修改服务器文件:

子域名 (Subdomain)域名 (Domain)协议 (Service)本地 URL (URL)用途说明
blogyourdomain.comHTTPlocalhost:3000Astro / Hexo 静态博客
panyourdomain.comHTTPlocalhost:5244Alist 个人网盘
vaultyourdomain.comHTTPlocalhost:8080Vaultwarden 密码库
statusyourdomain.comHTTPlocalhost:8008探针监控 Web 面板

访问 https://blog.yourdomain.com 时,流量经过 Cloudflare CDN 加速和 WAF 过滤后,直接通过安全隧道回源到本地 localhost:3000,体验与独立 IP VPS 毫无二致!


玩法二:Realm 极简高吞吐流量中转

当你在香港、日本或美西拥有低延迟的 NAT VPS 节点时,很多时候希望用它作为流量中转站(Relay Server),为跨国连接提供线路优化或游戏加速。

很多传统中转工具(如 Nginx stream 或 Java/Go 程序)在 128MB 内存的 NAT 小鸡上运行时容易爆内存,且配置繁琐。Realm 是采用 Rust 编写的现代化端口转发工具,具备以下杀手级特性:

  • 极小内存开销:常驻仅占用 2MB ~ 4MB 内存。
  • 高性能 Zero-Copy:在 Linux 上利用 splice 系统调用实现真正的零拷贝数据搬运。
  • TCP + UDP 双栈同转:一行配置同时支持 TCP 和 UDP。
  • 自动 DNS 刷新:后端目标若为动态域名,Realm 会自动异步重解析。

Realm 数据中继流向

Realm 端口转发加速流程图 Realm 高性能中转加速链路示意图 本地客户端 游戏/SSH/应用 连接中转机 优质近海直连 NAT VPS (独角鲸云) Realm (RAM < 4MB) 监听内部端口 10080 跨国国际骨干 远端目标落地 远端服务器 / 数据库 目的地端口 443/3306
图 2:Realm 仅需几兆内存即可在 NAT VPS 上实现低延迟 TCP/UDP 跨国流量调度与转发。

Step 1:安装 Realm

直接从 GitHub 释放预编译包:

# 下载最新版 Realm
curl -s https://api.github.com/repos/zhboner/realm/releases/latest \
| grep "browser_download_url.*realm-x86_64-unknown-linux-gnu.tar.gz" \
| cut -d : -f 2,3 \
| tr -d \" \
| wget -qi -

tar -xvf realm-x86_64-unknown-linux-gnu.tar.gz
mv realm /usr/local/bin/realm
chmod +x /usr/local/bin/realm
rm realm-x86_64-unknown-linux-gnu.tar.gz

Step 2:编写配置文件

在 NAT VPS 控制面板中,先为你分配的端口添加一条转发规则,例如:

  • 协议:TCP + UDP
  • 内部端口10080
  • 外部端口:系统分配(假设为 23456

创建配置文件 /etc/realm/config.toml

mkdir -p /etc/realm

cat > /etc/realm/config.toml <<EOF
# 基础日志配置
[log]
level = "warn"

[network]
no_delay = true
use_udp = true

# 转发规则 1:中转游戏或 SSH 流量
[[endpoints]]
listen = "0.0.0.0:10080"
remote = "target-node.example.com:22"

# 转发规则 2:中转 Web / 数据库流量
[[endpoints]]
listen = "0.0.0.0:10081"
remote = "198.51.100.20:3306"
EOF

[!TIP] 这里的 listen 务必绑定 0.0.0.0:内部端口,确保 NAT 宿主机转发的流量能被正确接收。


Step 3:配置 Systemd 守护进程

创建服务文件 /etc/systemd/system/realm.service

[Unit]
Description=Realm High-Performance Relay Service
After=network.target network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/realm -c /etc/realm/config.toml
Restart=always
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

启动并验证服务:

systemctl daemon-reload
systemctl enable --now realm
systemctl status realm

测试内存占用:

ps aux | grep realm | awk '{print $6/1024 " MB"}'
# 输出通常在 2.8 MB ~ 4.2 MB,对内存毫无压力!

进阶认知:为什么 NAT 容器修改不了 BBR?

许多新手在拿到 NAT VPS(尤其是 LXC / Podman 容器实例)后,第一件事就是习惯性运行一键脚本开启 BBR,结果常常遇到如下报错:

sysctl: error setting key 'net.ipv4.tcp_congestion_control': Read-only file system
# 或者
sysctl: setting key "net.ipv4.tcp_congestion_control": Permission denied

1. 为什么会报错?

LXC 和 Podman 是轻量级容器虚拟化,与宿主机共享同一个 Linux 内核。为了保障宿主机的安全与整机稳定性,容器内的 /proc/sys 和网络命名空间被设计为只读模式(Read-Only),普通容器无法直接修改宿主机全局的内核参数。

2. 容器不需要(也无需)在内部开启 BBR

容器的网络协议栈直接由宿主机内核驱动。
只要宿主机(母鸡)底层启用了 BBR,该宿主机上的所有 LXC / Podman 容器发出的 TCP 数据包都会自动享受 BBR 算法的拥塞控制与抗丢包加速。独角鲸云的所有宿主机母鸡节点在部署时均已在内核层面默认开启了 BBR + FQ 队列。

3. 如何在容器内验证当前连接是否正在使用 BBR?

在容器内发起一条外部 TCP 连接(例如使用 curl 下载一个大文件或运行中的 Realm 转发),然后在另一个终端执行:

ss -ti

观察输出中包含的信息,如果看到类似如下字段:

cubic ...   # 若宿主机未开启
bbr wscale:... rtt:32.4/1.2 bw:85.2Mbps mrtt:30.1 ... # 带有 bbr 算法标识

只要能看到 bbr 算法状态字段,即代表该 TCP 会话当前正在享受内核级 BBR 加速!

4. 什么样的场景必须选择 KVM?

如果你有以下硬性需求,建议在购买时选择 KVM 虚拟化架构

  • 必须自定义调试内核 TCP 参数(如修改 tcp_wmem / tcp_rmem / tcp_fastopen)。
  • 需要自编译或加载非官方内核模块(如标准 WireGuard 内核驱动、BBRv3 等)。
  • 详见:KVM、LXC 与 Podman 虚拟化架构深度对比

玩法四:自动化云备份(数据“免死金牌”)

NAT VPS 作为低成本算力实验场,虽然性价比极高,但为了应对偶发的环境重置或误操作,配置文件与数据的云端热备是极客运维不可或缺的一环。

使用 Rclone 配合 Cloudflare R2(提供 10GB 永久免费存储且无出站流量费),可以构建一套极其优雅的每日自动备份脚本:

1. 安装与配置 Rclone

curl https://rclone.org/install.sh | bash
# 配置 R2 存储桶连接
rclone config

2. 编写轻量备份脚本 /opt/backup.sh

#!/usr/bin/env bash
set -e

BACKUP_DIR="/tmp/backup_$(date +%Y%m%d)"
BACKUP_ARCHIVE="/tmp/backup_$(date +%Y%m%d).tar.gz"
mkdir -p "$BACKUP_DIR"

# 1. 备份关键服务配置与数据
cp -r /etc/realm "$BACKUP_DIR/" 2>/dev/null || true
cp -r /etc/cloudflared "$BACKUP_DIR/" 2>/dev/null || true
# 如果运行了 sqlite/网站数据:
# cp -r /var/www/html "$BACKUP_DIR/" 2>/dev/null || true

# 2. 打包压缩
tar -czf "$BACKUP_ARCHIVE" -C /tmp "backup_$(date +%Y%m%d)"

# 3. 同步到 Cloudflare R2 并清理 7 天前旧备份
rclone copy "$BACKUP_ARCHIVE" r2:my-backup-bucket/nat-vps/
rm -rf "$BACKUP_DIR" "$BACKUP_ARCHIVE"

echo "[$(date)] Backup successfully uploaded to R2."

3. 加入 Cron 定时任务

# 每天凌晨 3:30 执行
(crontab -l 2>/dev/null; echo "30 3 * * * /bin/bash /opt/backup.sh > /var/log/backup.log 2>&1") | crontab -

选型矩阵:不同虚拟化类型的最佳实践

在独角鲸云上,不同架构各具所长:

架构类型内存开销基线推荐玩法组合核心优势
Podman~20 MBRealm 中转 / 极轻量爬虫 / Cloudflare Tunnel极致低开销,内存几乎 100% 留给业务
LXC~64 MBWeb 建站 / Nezha 监控 / Tailscale 节点接近裸机的 IO 与网络性能,稳定省心
KVM~512 MBDocker Swarm / 独立 WireGuard / 自定义内核模块独立内核控制权,支持完整 sysctl 与 TUN 设备

想要探索不同架构的技术实现细节,可参考 虚拟化架构深度对比Tailscale 用户模式指南


常见问题与排障指南 (FAQ)

Q1: 使用 Cloudflare Tunnel 会不会被封或减速?

Cloudflare Tunnel 走的是标准 Anycast 网络回源,所有流量加密传输。国内访问时,若遇到个别节点线路波动,可在 Cloudflare DNS 配合优选 CNAME / 优选 IP 策略进一步提升连接速率。

Q2: Podman / LXC 容器内运行 cloudflared 提示缺少权限?

只要使用的是 Token 安装模式(cloudflared service install <TOKEN>),cloudflared 在用户空间即可以纯非特权模式运行,无需任何内核模块或特权容器支持。

Q3: 为什么 Realm 转发后远端服务器获取到的都是 NAT 机器的 IP?

这是所有反向代理/端口中转工具的正常现象。流量由中转机代理发出,远端看到的来源 IP 是中转机地址。如果应用(如 Web 网站)需要获取客户端真实真实 IP,建议优先采用 Cloudflare Tunnel 方案(HTTP Header 会自动附带 CF-Connecting-IP)。


结语

NAT VPS 远不只是一台“便宜的玩具小鸡”。通过 Cloudflare Tunnel 打破公网端口的物理桎梏,利用 Realm 榨干最后一兆内存的网络中转潜能,再配合自动化云备份与私有组网,几台单价极低的 NAT 机器就能组合成高可用、全球分布的极客算力矩阵。

独角鲸云提供覆盖全球 10+ 节点的按天计费 NAT VPS,随开随用,秒级交付。


参考链接与扩展阅读