Windows 或 OpenWrt路由器 DDNS IPv6
在OpenWrt路由器或Windows本地DDNS的方法记录
想通过web域名访问家里的电脑、监控、NAS
需要将公网ip地址映射到域名上,但家庭用户只有动态的公网
大多还都是ipv6的动态公网
这样就只能使用ddns(动态DNS)了( •̀ ω •́ )
DDNS:动态DNS(英语:Dynamic DNS,简称DDNS)是域名系统(DNS)中的一种自动更新名称服务器(Name server)内容的技术。根据互联网的域名订立规则,域名必须跟从固定的IP地址。但动态DNS系统为动态网域提供一个固定的名称服务器(Name server),透过即时更新,使外界用户能够连上动态用户的网址。 –来自wiki
Windows DDNS解析
一、DDNS-Go
最新下载页面没看到Windows版本
点击Show all 31 assets(ZH 显示全部31项资产)
下载符合自己系统架构的压缩包
一般是64位windows系统
ddns-go_6.1.2_windows_x86_64.zip
ddns-go_版本_系统_架构.zip
将下载的压缩包解压并放在一个文件夹里
二、配置DDNS-Go
运行DDNS-Go并输入Token令牌
双击ddns-go.exe
会跳出安全中心 选择允许
接着是运行终端 并默认监听端口9876
DNS服务商选择自己的域名注册商
Token 令牌: 可以参考创建Cloudflare API令牌
默认保存的配置文件位于C:\Users\用户名\.ddns_go_config.yaml
IPv6获取
一般情况下直接使用通过网卡获取,如果网卡获取出现ip地址混乱
比如openwrt会下发两个IPv6地址
短地址是路由DHCPv6服务根据DUID分配的IPv6 GUA (Global Unicast Address) 全球单播地址
长地址是客户端根据路由器RA信息,根据SLAAC自动生成的IPv6 GUA (Global Unicast Address) 全球单播地址
参考 openwrt分配了2个ipv6是什么原因? 恩山lgs2007m评论
在这之前需要在位于其他项 禁止公网访问 ☑️
填写用户名 与 密码 并保存
通过命令获取 详情参阅 图下面有Windows命令获取IPv6的执行代码

1 | Get-NetRoute -AddressFamily IPv6 | Where-Object { $_.DestinationPrefix.StartsWith("240") -and $_.DestinationPrefix.endsWith("/64") } | ForEach-Object { ($_.DestinationPrefix -split '::/')[0] + ":suffix of other mac" } |
OpenWrt 路由器DDNS
OpenWrt路由器一般有防火墙
关于OpenWrt IPv6防火墙配置 可以参考OpenWrt IPv6防火墙通行规则放行
你可以选择路由器自带的动态DDNS 或者 Lucky 大吉
动态DDNS
有一些固件是没有CloudFlare的
需要在软件源点击更新列表后,在筛选器中输入 ddns-scripts-cloudflare 并回车
然后安装 ddns-scripts-cloudflare
配置
登录OpenWrt后台界面,依次点击服务、动态DNS、添加新服务(或者编辑已有的未运行服务)
基本设置修改如下
已启用 ☑️
查询主机名:你的域名(例:img.bakaxiaofang.moe)
IP地址版本:互联网协议(例:IPv6地址)
DDNS服务提供商:(例:cloudflare.com-v4)
确认切换服务? 点击 切换服务 按钮
域名:你的域名(例:img.bakaxiaofang.moe)
用户名:邮箱账号
密码: Token 令牌-可以参考创建Cloudflare API令牌

高级设置修改如下
IP地址来源: 如果是通过路由器转发选择
网络网络: 选择获取IPv6的接口名称
需要设置好防火墙的转发和通行规则
关于IPv6防火墙的转发和通信规则 可以参考OpenWrt IPv6防火墙通行规则放行
如果是是想直接DDNS设备IPv6选择
脚本脚本: 脚本的绝对路径
事件网络: 选择获取IPv6的接口名称

脚本配置详情参考OpenWrt DDNS通过脚本获得IPv6
你需要将写好的脚本上传到路由器里
Windows可以用WinSCP上传文件
- 然后在脚本这里填写上传的绝对路径 记得对脚本文件提权
1
2
3
4
5#关于提权
ssh root@192.168.1.1
#用户名@路由器IPv4地址
chmod +x sh脚本上传的绝对路径
#提权事件网络: 选择要获取的IPv6所在的接口
Lucky 大吉
下载ipk包并上传安装
恩山吉大羊帖子-(2023.7.13)lucky,端口转发,DDNS,反向代理,WOL,stun穿透,计划任务,acme,webdav,ftp
软件包没有这个
有istore软件中心的固件可以直接安装
根据路由器系统CPU架构下载对应的lucky核心包
在状态>概览下可以看到我的路由器CPU架构是ARMv8 Processor rev 4 (v8l) x 2
实际上ARMv8就是Arm64

lucky_2.7.2_Openwrt_arm64.ipk !选择符合主机系统CPU架构的ipk包
GitHub gdy666/luci-app-lucky releases

如果你的Lucky大吉版本过旧 需要更新,或者你之前卸载了但没卸载干净
1
2
3
4
5
6ssh root@192.168.1.1
#用户名@路由器IPv4地址
#执行以下命令 卸载删除干净之前的文件
opkg remove lucky
opkg remove luci-i18n-lucky-zh-cn
opkg remove luci-app-lucky打开OpenWrt后台管理界面,依次点击系统、文件传输、选择文件
将那三个下载的ipk包依次上传上去
依次安装 记得安装要等待页面图标转圈结束出现红字
lucky_版本_Openwrt_架构.ipk
luci-app-lucky_版本_all.ipk
luci-i18n-lucky-zh-cn_版本_all.ipk
重新进入Openwrt后台管理界面
会看到服务多出Lucky大吉
Lucky 大吉配置
打开OpenWrt后台管理界面
依次点击服务、Lucky、启动、确定

这时Lucky后台管理会显示地址 一般是路由地址+16601端口
管理后台登录信息会显显示默认登陆账号密码 一般是账号666 密码666
进入Lucky后台管理界面之后在动态域名、添加任务与动态DDNS相同配置
DDNS任务添加
任务名称: 随意
任务开关: 启用
操作模式: 简易模式
托管服务商: Cloudflare
Token: 令牌-可以参考创建Cloudflare API令牌
类型: IPv6
获取公网IP方式: 建议通过指令获取
自定义获取IP指令:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15pd=$(ubus call network.interface.SSS status | grep -A 2 '"ipv6-prefix-assignment"' | grep address | awk '{print $2}' | awk '{print substr($0,1,length($0)-4)}' | sed 's/^.//')
hz=":xxxx:xxxx:xxxx:xxxx"
wanip6=${pd}${hz}
echo "${wanip6}"
#还要根据网络接口的名称修改SSS
#比如在有wan6的情况下 将wan的获取IPv6地址从手动改成 自动
#可能会出现一个wan_6名称的新接口
#多个lan口根据获取IPv6的lan口名字修改 wan口也是
#xxxx:xxxx:xxxx:xxxx IPv6后缀
#这里修改完用指令测试一下看有没有获取IPv6地址
例子:
pd=$(ubus call network.interface.lan status | grep -A 2 '"ipv6-prefix-assignment"' | grep address | awk '{print $2}' | awk '{print substr($0,1,length($0)-4)}' | sed 's/^.//')
hz=":2452:310b:8924:bdfa"
wanip6=${pd}${hz}
echo "${wanip6}"
域名列表: 你的域名
一行一条域名添加任务
效果如图
