0

0

Linux下如何配置动态DNS以实现远程办公?(内网穿透)

穿越時空

穿越時空

发布时间:2026-03-12 16:49:02

|

480人浏览过

|

来源于php中文网

原创

需配置动态DNS客户端将当前IP实时更新至DNS服务商:一、选支持API的厂商(如DuckDNS、Cloudflare)并获取凭证;二、用curl脚本或systemd服务推送IP;三、部署ddclient实现多服务商兼容;四、配置NAT与防火墙确保端口可达。

linux下如何配置动态dns以实现远程办公?(内网穿透)

如果您在Linux系统中需要通过动态DNS实现远程办公访问内网服务,但公网IP频繁变动导致无法稳定连接,则需配置动态DNS客户端将当前IP地址实时更新至DNS服务商。以下是完成该配置的步骤:

一、选择支持API更新的动态DNS服务商

动态DNS依赖服务商提供可编程接口(如HTTP API或标准协议如DDNS-O-Matic、DynDNS兼容接口),用于向其域名解析记录提交当前IP变更。主流支持Linux脚本调用的服务包括No-IP、DuckDNS、FreeDNS.afraid.org及Cloudflare(需配合API Token)。

1、访问DuckDNS官网注册账户并创建一个子域名(例如myoffice.duckdns.org)。

2、登录后在控制面板获取专属token字符串,该字符串将用于后续curl请求的身份认证。

3、确认所选服务商是否提供Linux命令行更新方式,DuckDNS和Cloudflare均原生支持curl+API调用,无需额外安装客户端

二、使用curl脚本手动推送IP至DuckDNS

该方法不依赖守护进程,适合轻量级部署或测试环境,通过定时任务触发IP上报逻辑。

1、创建脚本文件:sudo nano /usr/local/bin/update-duckdns.sh

2、写入以下内容(替换YOURDOMAINYOURTOKEN为实际值):

#!/bin/bash<br>curl -s "https://www.duckdns.org/update?domains=YOURDOMAIN&token=YOURTOKEN&ip="

3、赋予执行权限:sudo chmod +x /usr/local/bin/update-duckdns.sh

4、测试运行:sudo /usr/local/bin/update-duckdns.sh,返回OK表示成功。

5、添加到crontab每5分钟检查一次:*/5 * * * * /usr/local/bin/update-duckdns.sh >/dev/null 2>&1

三、使用systemd服务自动管理Cloudflare DNS记录

Cloudflare提供高可靠性DNS基础设施与细粒度API权限控制,适用于对安全性与稳定性要求较高的远程办公场景。

1、在Cloudflare仪表盘获取全局API Key,并创建仅限DNS编辑权限的API Token。

2、安装jq工具解析JSON响应:sudo apt install jq(Debian/Ubuntu)或sudo yum install jq(CentOS/RHEL)。

3、编写更新脚本/usr/local/bin/cf-ddns.sh,包含Zone ID、Record ID、域名及Token变量。

Krea AI
Krea AI

多功能的一站式AI图像生成和编辑平台

下载

4、脚本中使用curl -X PUT调用Cloudflare API更新A记录,目标IP通过curl -s https://api.ipify.org获取。

5、配置systemd服务单元文件/etc/systemd/system/cf-ddns.service与定时器cf-ddns.timer,启用并启动定时器:sudo systemctl enable --now cf-ddns.timer

四、部署ddclient作为通用动态DNS客户端

ddclient是专为Linux设计的成熟DDNS客户端,内置对No-IP、DynDNS、Google Domains等数十家服务商的支持,支持后台常驻与自动重试机制。

1、安装ddclient:sudo apt install ddclient(Debian/Ubuntu)或sudo yum install epel-release && sudo yum install ddclient(RHEL/CentOS)。

2、运行交互式配置向导:sudo dpkg-reconfigure ddclient,按提示输入服务商类型、用户名、密码、域名等信息。

3、编辑主配置文件/etc/ddclient.conf,确保包含use=web, web=checkip.dyndns.com以启用公网IP探测。

4、验证配置语法:sudo ddclient -daemon=0 -debug -verbose -noquiet

5、重启服务使生效:sudo systemctl restart ddclientddclient默认每5分钟轮询一次IP变化,检测到变更即触发DNS更新

五、配置NAT端口映射与防火墙放行

动态DNS仅解决域名解析问题,还需确保路由器将外部请求正确转发至内网Linux主机,并允许对应端口通信。

1、登录家用/企业路由器管理界面,进入“端口映射”或“虚拟服务器”设置页。

2、添加新规则:外部端口(如22、80、443)、内部IP(Linux主机局域网地址)、协议(TCP/UDP)。

3、在Linux主机上开放对应端口:sudo ufw allow 22(若启用ufw)或sudo firewall-cmd --permanent --add-port=22/tcp(firewalld)。

4、重启防火墙:sudo ufw reloadsudo firewall-cmd --reload

5、验证端口可达性:从外网设备使用telnet myoffice.duckdns.org 22测试SSH端口连通性,必须确保ISP未封锁常用端口且路由器启用UPnP或DMZ功能非必需但可辅助调试

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

456

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

335

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

82

2025.09.10

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

254

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1089

2024.03.01

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

454

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

183

2023.10.30

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号