拯救动态 IP,以HiNet NAT VPS 为例:部署 Cloudflare DDNS(nat.domain.com就可以替代机器的IP)
[保姆级教程] 拯救动态 IP!HiNet NAT VPS 必看:手把手教你部署 Cloudflare DDNS
author: gemini 3.0 pro
如果你买了 HiNet(中华电信)或者其他 NAT 类型的 VPS,你可能会收到商家的一条提示:**”需自行部署 DDNS”**。
对于纯小白来说,这句话简直是天书。其实它的意思很简单:你的 VPS 公网 IP 是会变的(动态 IP),你需要一个自动脚本,每隔几分钟把新 IP 告诉你的域名,这样你才能永远连得上。
今天这篇教程,专门针对 Linux 基础薄弱的小白,涵盖了从 Cloudflare 设置到解决
crontab not found等各种踩坑点,包教包会。
📋 目录
- 🛠️ 准备工作
- 🚧 第一步:Cloudflare 域名设置(避坑关键)
- 💻 第二步:VPS 环境修补(小白最容易卡这里)
- 📜 第三步:部署 DDNS 脚本
- ⏰ 第四步:设置自动续命 (Crontab)
- 🎉 总结:以后怎么用?
- 🔍 常见问题解答
🛠️ 准备工作
- 一个 Cloudflare 账号(已有域名并托管在 CF 上)。
- SSH 连接工具(FinalShell, Xshell 等)。
- 一颗不怕折腾的心。
🚧 第一步:Cloudflare 域名设置(避坑关键)
很多人脚本跑不通,都是因为这一步的”密码”选错了。
1. 添加 A 记录
去 Cloudflare 后台 -> 选中你的域名 -> DNS -> Records -> Add record。
- Type:
A - Name: 比如
tw(这样你的域名就是tw.yourdomain.com) - IPv4: 随便填
1.1.1.1(脚本一会会自动改) - Proxy status: 必须关掉!(点一下橙色云朵,让它变成灰色的 DNS Only)。这是做节点的大忌,开了 CDN 可能会导致无法连接。

2. 获取 Global API Key(重点!)
市面上 90% 的简单脚本只认这个”老式万能钥匙”,不要去创建新的 API Token,那个配置太麻烦。
- 点击右上角头像 -> My Profile -> API Tokens。
- 往下翻,找到 API Keys 栏目。
- 找到 Global API Key -> 点击 View。
- 输入登录密码验证,复制那串长字符。

💻 第二步:VPS 环境修补(小白最容易卡这里)
NAT 小鸡通常系统极其精简,很多基础命令都没有。我们先得把工具装好。
连接 SSH,依次执行以下命令:
Debian/Ubuntu 系统(绝大多数 NAT 都是这个):
1 | apt-get update |
CentOS 系统:
1 | yum update |
!!! warning “🔴 踩坑点 1:crontab: command not found“
如果你想设置定时任务时报错这个,就是因为没装 cron。装完后,记得启动服务:
service cron start (Debian/Ubuntu) 或 service crond start (CentOS)。
📜 第三步:部署 DDNS 脚本
我们使用最经典、依赖最少的 Shell 脚本。
1. 创建文件夹并下载
为了管理方便,我们建个文件夹:
1 | mkdir -p /root/cf-ddns |
2. 修改配置
使用 nano 编辑器打开脚本:
1 | nano cf-ddns.sh |
找到以下几行,填入你的信息:
1 | # 你的 Cloudflare 登录邮箱 |
Nano 操作提示:
- 修改完按
Ctrl + O,然后回车保存。 - 按
Ctrl + X退出。
3. 首次运行测试
输入:
1 | ./cf-ddns.sh |
!!! warning “🔴 踩坑点 2:No file, need IP 然后卡住”
只要你最后看到了 Updated record to 36.xxx.xxx.xxx,说明成功了!
前面的报错不用管。
如果一直报错 Auth Failed:检查邮箱有没有填错,检查 CFKEY 是不是 Global Key。
⏰ 第四步:设置自动续命 (Crontab)
光运行一次没用,IP 变了还得手动跑。我们要让系统每 5 分钟自动跑一次。
打开定时任务编辑器:
1
crontab -e
(选编辑器时选 1. nano)
在文件最后一行粘贴:
1
*/5 * * * * /root/cf-ddns/cf-ddns.sh >/dev/null 2>&1
保存退出(Ctrl+O, Enter, Ctrl+X)。
!!! warning “🔴 踩坑点 3:路径错误”
很多小白直接照抄网上的命令,结果脚本路径不对。请确保 /root/cf-ddns/cf-ddns.sh 这个路径下真的有你的脚本文件。你可以用 pwd 命令查看当前路径。
🎉 总结:以后怎么用?
部署好 DDNS 后,你的 NAT VPS 就拥有了”永久地址”。
在 Clash/Sing-box/V2RayN 里:
- **地址 (Address)**:填域名
tw.baidu.com - **端口 (Port)**:填商家分配给你的公网端口(比如 10086)。
- 千万别填 22 或 443,除非你做了端口映射。
- **地址 (Address)**:填域名
验证方法:
- 只要你的 VPS 不炸,Cloudflare 后台的 IP 地址应该永远和你 VPS 的真实 IP 保持一致。
搞定!现在你可以安心睡觉,不用担心半夜 IP 变了导致节点失联了。
🔍 常见问题解答
Q1: 脚本运行成功但域名没有解析?
A: 检查以下几点:
- 确认 Cloudflare 中的 A 记录是否已创建
- 确认 Proxy status 是否设置为 DNS Only(灰色云朵)
- 检查域名 DNS 传播是否完成(可能需要几分钟到几小时)
Q2: 如何验证 DDNS 是否正常工作?
A: 可以通过以下方式验证:
1 | # 查看当前 VPS 的公网 IP |
两个 IP 应该是一致的。
Q3: 脚本运行频率可以调整吗?
A: 可以。修改 crontab 中的时间设置:
*/5 * * * *- 每 5 分钟(推荐)*/10 * * * *- 每 10 分钟0 */2 * * *- 每 2 小时
不建议设置太频繁,避免被 Cloudflare 限制。
Q4: 如何查看脚本运行日志?
A: 修改 crontab 配置,将输出重定向到日志文件:
1 | */5 * * * * /root/cf-ddns/cf-ddns.sh >> /root/cf-ddns/ddns.log 2>&1 |
然后查看日志:
1 | tail -f /root/cf-ddns/ddns.log |
Q5: VPS 重启后需要重新设置吗?
A: 不需要。crontab 任务是持久化的,系统重启后会自动恢复。但如果你的 VPS 是精简版系统,可能需要确保 cron 服务开机自启:
1 | # Debian/Ubuntu |
🎯 技术要点回顾
- ✅ 使用 Global API Key 而非 API Token 简化配置
- ✅ 关闭 Cloudflare Proxy 避免连接问题
- ✅ 安装必要的系统工具(curl、cron、nano)
- ✅ 使用 crontab 实现自动更新
- ✅ 注意脚本路径和权限设置
希望这篇教程能帮助大家顺利解决 NAT VPS 的动态 IP 问题!如果有任何疑问,欢迎在评论区交流讨论。
本文基于实际部署经验编写,所有命令都经过测试验证。



