在家庭或小型办公网络中,你的公网IP地址可能会频繁变动(由ISP动态分配),这会导致你无法通过固定域名远程访问家中的服务器、NAS、摄像头等设备。为了解决这个问题,我们可以使用动态DNS(Dynamic DNS,简称DDNS)服务,将一个固定的域名自动绑定到你当前的公网IP上。
本文将详细介绍如何在Ubuntu系统上配置动态DNS,即使你是Linux新手,也能轻松完成设置。我们将使用免费的DDNS服务商(如DuckDNS、No-IP等)配合脚本实现IP自动更新。
动态DNS(DDNS)是一种将动态变化的公网IP地址映射到固定域名的服务。当你家里的宽带IP发生变化时,DDNS客户端会自动检测新IP并通知DDNS服务商更新DNS记录,从而保证你始终可以通过同一个域名访问你的设备。
我们将创建一个简单的Shell脚本来定期检查并更新IP。
1. 创建脚本目录和文件:
mkdir -p ~/duckdnsnano ~/duckdns/duck.sh 2. 在打开的编辑器中粘贴以下内容(替换 YOUR_SUBDOMAIN 和 YOUR_TOKEN):
#!/bin/bashecho url="https://www.duckdns.org/update?domains=YOUR_SUBDOMAIN&token=YOUR_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K - 例如,如果你的子域名是 myhome,Token是 abc123def456,那么脚本内容应为:
#!/bin/bashecho url="https://www.duckdns.org/update?domains=myhome&token=abc123def456&ip=" | curl -k -o ~/duckdns/duck.log -K - 3. 保存并退出: 按 Ctrl+O → 回车 → Ctrl+X
4. 赋予脚本执行权限:
chmod +x ~/duckdns/duck.sh 为了让脚本每5分钟自动运行一次,我们需要配置cron任务。
1. 编辑当前用户的crontab:
crontab -e 2. 在文件末尾添加以下行:
*/5 * * * * /home/你的用户名/duckdns/duck.sh >/dev/null 2>&1 请将 你的用户名 替换为实际的Ubuntu用户名(可通过 whoami 命令查看)。
3. 保存并退出编辑器。
手动运行一次脚本,查看是否成功:
~/duckdns/duck.shcat ~/duckdns/duck.log 如果返回 OK,说明配置成功!现在你可以通过 http://your-subdomain.duckdns.org 访问你的Ubuntu设备了(前提是你的路由器已正确端口转发)。
除了DuckDNS,你也可以使用No-IP、DynDNS等服务。方法类似,只需替换API调用URL和认证参数即可。例如,No-IP提供官方Linux客户端,可直接安装使用。
通过以上步骤,你已经成功在Ubuntu上配置了动态DNS(DDNS)。无论你的公网IP如何变化,都可以通过固定的域名访问内网服务。这对于搭建个人网站、远程桌面、监控系统等场景非常实用。
记住定期检查日志文件 ~/duckdns/duck.log,确保更新正常。如果你遇到问题,可以检查网络连接、防火墙设置或DDNS服务商状态。
希望这篇Ubuntu动态DNS配置教程对你有帮助!如有疑问,欢迎在评论区留言交流。
本文由主机测评网于2025-12-23发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20251211979.html