type
status
date
slug
summary
tags
category
icon
password
之前介绍过如何在OpenWRT上实现OpenClash与IPv6的共存,不但主路由有公网IPv6地址,所有的客户端也都有了唯一的IPv6公网地址。有了IPv6之后我们可以做很多事情,例如远程回家进行网络管理、公网的远程串流、Emby媒体服务器的公网使用、自建DNS服务器等等。目前大部分的DDNS教程都只是如何获得插件所在设备的IPv4及IPv6地址及DDNS域名绑定,今天来分享一下如何在旁路由(旁路网关)上安装配置DDNS-GO,通过IPv6地址为局域网内需要的设备绑定域名。
DDNS(动态域名系统,Dynamic DNS)是一种允许用户在IP地址变化时自动更新DNS记录的服务。通常,互联网服务提供商会给家庭或小型办公室的网络分配动态IP地址,这意味着IP地址会周期性变化。如果你运行一个需要被外界访问的服务(比如家庭服务器或游戏主机),IP地址的变化会导致外界无法访问你的服务。
DDNS的工作原理如下:
- 动态IP监测:DDNS客户端软件在你的设备上运行,定期检查你的公共IP地址是否变化。
- 更新DNS记录:当检测到IP地址变化时,客户端会自动将新的IP地址更新到DDNS服务提供商的DNS服务器上。
- 域名解析:外界的请求通过DDNS服务提供的域名解析到你当前的IP地址,确保即使IP地址改变,服务仍可正常访问。
常见的DDNS服务提供商包括No-IP、DynDNS和Cloudflare等。我使用DDNS主要用于Wake On Lan以及通过Moonlight+Sunshine进行远程串流打游戏。
DDNS-GO是一个开源的动态DNS解决方案,帮助用户通过DDNS访问家庭内网服务,实现内网穿透等。DDNS-GO支持在多种操作系统上使用,包括Linux(各种发行版,包括飞牛fnOS)、Windows、macOS以及使用OpenWRT的路由器,包括主路由和旁路由。DDNS-GO兼容多个DNS服务提供商,比如Cloudflare、阿里云DNS(AliDNS)、GoDaddy、DNSPod等,非常灵活,且同时支持IPv4和IPv6动态地址获取及设置,并提供简洁的Web管理界面,便于配置和监控动态DNS服务。
本文内容不仅适用于OpenWRT系统,其他类似飞牛fnOS等系统,在使用DDNS-GO插件的情况下,也可适用。
📝 付费内容
配置前提
本次配置教程所使用的ddns服务提供商为Cloudflare,需要自备域名并将域名绑定到cloudflare。
另外,需要你的局域网下设备可以正常获取公网IPv6地址,教程参考🌐IPv6与旁路由共存:实现策略代理与原生地址的完美平衡
在ddns-go服务的安装设备上,我个人推荐安装在旁路由(旁路网关)上,因为我们的IPv6 RA(Router Advertisement)服务器也是这台设备,如果安装在主路由上,那么可能无法获取到完整的IPv6邻居列表。如果主路由开启了RA服务器模式,也可以在主路由上进行安装。
安装luci-app-ddns-go
大部分仓库均提供luci-app-ddns-go这个插件,可以通过
系统 - 软件包
进行安装,或者像我一样通过SSH输入命令安装。安装成功之后,刷新路由器管理页面,在服务选项卡下应该就有DDNS-GO了。如果没有的话,可以注销路由器管理页面,重新登录即可。
配置luci-app-ddns-go插件
luci-app-ddns-go插件的作用是为ddns-go提供一个可视化的luci操作界面,用于对ddns-go核心的配置和管理,并不直接负责ddns的检测、更新和域名解析服务,只有在配置完成luci-app-ddns-go插件并启动服务之后,才可以进行ddns的配置。
配置非常简单:
- 勾选启动的复选框。
- 如果需要自定义ddns-go的访问端口,可以修改设置访问端口,我这里维持不变。
- 指定DNS解析服务器,选择Ali DNS或者Tencent DNS都可以。如果你路由器本机也经过代理,可以选择国外dns,或者设置为你自己自定义的DNS
- 其他项无特殊偏好,维持不动。
- 保存并应用。
- 看到
DDNS-GO服务器已启动
,即表示成功,可以通过http://路由器ip地址:9876
进行访问。
- 首次登录需要设置管理员账号和密码,直接根据提示配置即可。
配置ddns服务
访问Cloudflare的User API Tokens页面:User API Tokens - Cloudflare
或者通过右上角
账户 - 外观 - API令牌
进入User API Tokens页面。我们需要创建一个API令牌给DDNS-GO使用,用于修改对应域名的解析地址。
点击创建令牌,选择编辑区域dns,点击后面的使用模板。
在
区域资源 - 特定区域 - Select
的下拉中选择你绑定的域名然后点击
继续以显示摘要 - 创建令牌
即可看到API令牌(API Token)的字符串,复制保存到安全的地方。配置路由本机DDNS域名
如果你的路由器本机不需要配置ddns域名也可以跳过这部分。
通过
http://路由器ip地址:9876
访问DDNS-GO的web界面。DNS Provider:
- 选择Cloudflare
- Token填写刚刚我们获得的API令牌(API Token)
- TTL不用动,只有产生IP变动之后TTL才会生效。
IPv4部分:
- 域名(domain)填写你希望使用的域名,例如我写的是
home.xxxx.xom
- 其他不用动
IPv6部分:
- 启动的复选框勾上
- Get IP Method不用动
- 域名(domain)填写和ipv4相同的域名即可。
然后拉到最下方,点击保存,然后点击右上角的日志(logs)查看运行情况:
看到
added domain xxxxxx successfully
即表示添加成功。稍等片刻,等待DNS解析广播结束之后即可用这个域名:端口
的方式在公网进行访问。配置局域网客户端DDNS域名
再次说明,如果你是通过旁路由(旁路网关)提供局域网的IPv6 RA服务,那么需要将DDNS-GO安装在旁路由(旁路网关)上,否则无法获取到完整的IPv6路由列表,也无法为客户端进行DDNS域名绑定。
配置局域网客户端的DDNS域名其实与配置路由器本机的DDNS流程大致相同,使用的Cloudflare API Token还是上面我们申请的Token。
在DDNS-GO的管理页面点击右上角的新增(Add)
DNS Provider:
- 选择Cloudflare
- 令牌(Token)填写我们上面获取到的API Token
- TTL选择Auto
IPv4部分:
- 取消勾选启动按钮。我们IPv4只有一个公网地址,已经分配给路由器本机使用了,所以这里就不再对IPv4进行配置。
IPv6部分:
- 勾选启动
- 获取IP地址方法(Get IP Method)选择最后一个
By Command
,也就是命令模式
- 输入以下命令来提取特定局域网设备的IPv6地址,mac地址注意要小写,同时如果从Windows复制过来,需要把
-
替换为:
。
然后拉到最下方,点击保存,然后点击右上角的日志(logs)查看运行情况:
看到
added domain xxxxxx successfully
即表示添加成功。稍等片刻,等待DNS解析广播结束之后即可用这个域名:端口
的方式在公网进行访问。🤗 总结归纳
通过对局域网客户端DDNS域名的配置,就可以避免记又臭又长的IPv6地址,同时也可以避免因为IPv6地址变动而访问不了家里所部署服务的情况。当前在绑定DDNS之后,记得在防火墙中为对应服务的端口配置规则,否则还是访问不了的。
尽管本文使用的DDNS服务商为赛博大善人Cloudflare,但其他家服务器商的配置也大同小异,可以举一反三。
📎 参考文章
有关OpenWRT安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~