news 2026/10/6 18:43:21

Ubuntu动态DNS配置(手把手教你设置DDNS实现公网IP自动更新)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu动态DNS配置(手把手教你设置DDNS实现公网IP自动更新)

在家庭或小型办公网络中,你的公网IP地址可能会频繁变动(由ISP动态分配),这会导致你无法通过固定域名远程访问家中的服务器、NAS、摄像头等设备。为了解决这个问题,我们可以使用动态DNS(Dynamic DNS,简称DDNS)服务,将一个固定的域名自动绑定到你当前的公网IP上。

本文将详细介绍如何在Ubuntu系统上配置动态DNS,即使你是Linux新手,也能轻松完成设置。我们将使用免费的DDNS服务商(如DuckDNS、No-IP等)配合脚本实现IP自动更新。

什么是动态DNS?

动态DNS(DDNS)是一种将动态变化的公网IP地址映射到固定域名的服务。当你家里的宽带IP发生变化时,DDNS客户端会自动检测新IP并通知DDNS服务商更新DNS记录,从而保证你始终可以通过同一个域名访问你的设备。

准备工作

  • 一台运行Ubuntu(20.04/22.04等版本均可)的电脑或服务器
  • 一个可用的DDNS服务账号(本文以免费的 DuckDNS 为例)
  • 基本的终端操作能力(会复制粘贴命令即可)

步骤一:注册DuckDNS账号

  1. 访问 https://www.duckdns.org
  2. 使用Google、GitHub等账号登录
  3. 在页面上输入你想要的子域名(例如:myhome.duckdns.org)
  4. 点击“add domain”创建成功后,页面会显示你的Token(一串字母数字组合),请妥善保存

步骤二:在Ubuntu上配置DDNS更新脚本

我们将创建一个简单的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

步骤三:设置定时任务(Cron)

为了让脚本每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设备了(前提是你的路由器已正确端口转发)。

其他DDNS服务商支持

除了DuckDNS,你也可以使用No-IP、DynDNS等服务。方法类似,只需替换API调用URL和认证参数即可。例如,No-IP提供官方Linux客户端,可直接安装使用。

总结

通过以上步骤,你已经成功在Ubuntu上配置了动态DNS(DDNS)。无论你的公网IP如何变化,都可以通过固定的域名访问内网服务。这对于搭建个人网站、远程桌面、监控系统等场景非常实用。

记住定期检查日志文件~/duckdns/duck.log,确保更新正常。如果你遇到问题,可以检查网络连接、防火墙设置或DDNS服务商状态。

希望这篇Ubuntu动态DNS配置教程对你有帮助!如有疑问,欢迎在评论区留言交流。

来源:https://www.vpshk.cn/https://www.vpshk.cn/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 23:53:37

【大模型私有化部署新选择】:Open-AutoGLM本地化实施方案详解

第一章:Open-AutoGLM私有化部署的背景与意义随着企业对数据隐私和模型可控性的要求日益提升,大语言模型的私有化部署逐渐成为关键需求。Open-AutoGLM 作为一款开源的自动化生成语言模型,支持在本地环境或私有云中部署,确保敏感数据…

作者头像 李华
网站建设 2026/10/5 6:13:23

零代码+全场景!ChatWiki四步搭建企业AI知识库,效率提升必备收藏指南

传统知识管理因知识分散导致查找效率低、响应慢。ChatWiki作为零代码AI知识库解决方案,通过接入大模型、上传文档处理、关联知识库和智能响应四步,帮助企业构建智能记忆中枢。其全场景适配和精细化管理功能,使企业能高效利用AI技术提升知识管…

作者头像 李华
网站建设 2026/10/5 6:13:26

openEuler 系统想远程管理?不用公网 IP 也能轻松实现,方法在这!

文章目录前言1. 本地SSH连接测试2. openEuler安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试前言 openEuler 是一款聚焦多样性计算的操作系统,支持服务器、嵌入式设备和云计算环境,安全性和稳定性都不错…

作者头像 李华
网站建设 2026/10/5 6:13:20

Mac上运行Open-AutoGLM到底难不难?看完这篇你就知道该怎么做

第一章:Mac上运行Open-AutoGLM的现状与挑战在苹果芯片架构逐步普及的背景下,越来越多开发者尝试在Mac平台上部署和运行大型语言模型。Open-AutoGLM作为基于AutoGPT架构衍生的开源项目,具备自动化任务分解与执行能力,但其在Mac本地…

作者头像 李华
网站建设 2026/10/6 12:05:19

基于UC3842的开关电源设计

第三章 多端反激式开关电源硬件电路及PCB板设计 .3.1 UC3842芯片介绍 UC3842芯片是一种电流型PWM控制芯片且性能好、频率可以自己设定。其频率由RC网络确定,最大占空比可高达100%。并且它可以对每一个周期的电流进行限制,可以提供100瓦以下的输出功率&a…

作者头像 李华