🌐OpenWRT中为局域网设备配置IPv6 DDNS

2024-8-29|2024-12-25
Yawatasensei
Yawatasensei
type
status
date
slug
summary
tags
category
icon
password
🍌
之前介绍过如何在OpenWRT上实现OpenClash与IPv6的共存,不但主路由有公网IPv6地址,所有的客户端也都有了唯一的IPv6公网地址。有了IPv6之后我们可以做很多事情,例如远程回家进行网络管理、公网的远程串流、Emby媒体服务器的公网使用、自建DNS服务器等等。目前大部分的DDNS教程都只是如何获得插件所在设备的IPv4及IPv6地址及DDNS域名绑定,今天来分享一下如何在旁路由(旁路网关)上安装配置DDNS-GO,通过IPv6地址为局域网内需要的设备绑定域名。
notion image
DDNS(动态域名系统,Dynamic DNS)是一种允许用户在IP地址变化时自动更新DNS记录的服务。通常,互联网服务提供商会给家庭或小型办公室的网络分配动态IP地址,这意味着IP地址会周期性变化。如果你运行一个需要被外界访问的服务(比如家庭服务器或游戏主机),IP地址的变化会导致外界无法访问你的服务。
DDNS的工作原理如下:
  1. 动态IP监测:DDNS客户端软件在你的设备上运行,定期检查你的公共IP地址是否变化。
  1. 更新DNS记录:当检测到IP地址变化时,客户端会自动将新的IP地址更新到DDNS服务提供商的DNS服务器上。
  1. 域名解析:外界的请求通过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了。如果没有的话,可以注销路由器管理页面,重新登录即可。
notion image
 

配置luci-app-ddns-go插件

luci-app-ddns-go插件的作用是为ddns-go提供一个可视化的luci操作界面,用于对ddns-go核心的配置和管理,并不直接负责ddns的检测、更新和域名解析服务,只有在配置完成luci-app-ddns-go插件并启动服务之后,才可以进行ddns的配置。
notion image
 
配置非常简单:
  1. 勾选启动的复选框。
  1. 如果需要自定义ddns-go的访问端口,可以修改设置访问端口,我这里维持不变。
  1. 指定DNS解析服务器,选择Ali DNS或者Tencent DNS都可以。如果你路由器本机也经过代理,可以选择国外dns,或者设置为你自己自定义的DNS
  1. 其他项无特殊偏好,维持不动。
  1. 保存并应用。
  1. 看到DDNS-GO服务器已启动,即表示成功,可以通过http://路由器ip地址:9876进行访问。
  1. 首次登录需要设置管理员账号和密码,直接根据提示配置即可。
 

配置ddns服务

访问Cloudflare的User API Tokens页面:User API Tokens - Cloudflare
或者通过右上角账户 - 外观 - API令牌 进入User API Tokens页面。
我们需要创建一个API令牌给DDNS-GO使用,用于修改对应域名的解析地址。
点击创建令牌,选择编辑区域dns,点击后面的使用模板。
notion image
区域资源 - 特定区域 - Select的下拉中选择你绑定的域名
notion image
然后点击继续以显示摘要 - 创建令牌 即可看到API令牌(API Token)的字符串,复制保存到安全的地方。

配置路由本机DDNS域名

如果你的路由器本机不需要配置ddns域名也可以跳过这部分。
 
通过http://路由器ip地址:9876 访问DDNS-GO的web界面。
notion image
DNS Provider:
  1. 选择Cloudflare
  1. Token填写刚刚我们获得的API令牌(API Token)
  1. TTL不用动,只有产生IP变动之后TTL才会生效。
 
IPv4部分:
  1. 域名(domain)填写你希望使用的域名,例如我写的是home.xxxx.xom
  1. 其他不用动
 
IPv6部分:
  1. 启动的复选框勾上
  1. Get IP Method不用动
  1. 域名(domain)填写和ipv4相同的域名即可。
 
然后拉到最下方,点击保存,然后点击右上角的日志(logs)查看运行情况:
看到added domain xxxxxx successfully即表示添加成功。稍等片刻,等待DNS解析广播结束之后即可用这个域名:端口的方式在公网进行访问。
 

配置局域网客户端DDNS域名

再次说明,如果你是通过旁路由(旁路网关)提供局域网的IPv6 RA服务,那么需要将DDNS-GO安装在旁路由(旁路网关)上,否则无法获取到完整的IPv6路由列表,也无法为客户端进行DDNS域名绑定。
配置局域网客户端的DDNS域名其实与配置路由器本机的DDNS流程大致相同,使用的Cloudflare API Token还是上面我们申请的Token。
在DDNS-GO的管理页面点击右上角的新增(Add)
notion image
DNS Provider:
  1. 选择Cloudflare
  1. 令牌(Token)填写我们上面获取到的API Token
  1. TTL选择Auto
 
IPv4部分:
  1. 取消勾选启动按钮。我们IPv4只有一个公网地址,已经分配给路由器本机使用了,所以这里就不再对IPv4进行配置。
 
IPv6部分:
  1. 勾选启动
  1. 获取IP地址方法(Get IP Method)选择最后一个By Command ,也就是命令模式
  1. 输入以下命令来提取特定局域网设备的IPv6地址,mac地址注意要小写,同时如果从Windows复制过来,需要把-替换为:
然后拉到最下方,点击保存,然后点击右上角的日志(logs)查看运行情况:
看到added domain xxxxxx successfully即表示添加成功。稍等片刻,等待DNS解析广播结束之后即可用这个域名:端口的方式在公网进行访问。

🤗 总结归纳

通过对局域网客户端DDNS域名的配置,就可以避免记又臭又长的IPv6地址,同时也可以避免因为IPv6地址变动而访问不了家里所部署服务的情况。当前在绑定DDNS之后,记得在防火墙中为对应服务的端口配置规则,否则还是访问不了的。
尽管本文使用的DDNS服务商为赛博大善人Cloudflare,但其他家服务器商的配置也大同小异,可以举一反三。

📎 参考文章

 
💡
有关OpenWRT安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
如何在Android电视上使用Xbox无线接收器OpenClash替换使用Mihomo内核
Loading...