Openwrt安装ddns-go

必备条件

  1. 已刷好OpenWRT的路由
  2. Openwrt已配置好网络

根据CPU架构下载DDNS-go

我用的是迅雷赚钱宝1代,其CPU是arm7,所以要下载对应的arm7版本

https://github.com/jeessy2/ddns-go/releases

解压文件,将文件复制到openwrt

用WinSCP连接OpenWRT,复制ddns-go进去

WinSCP下载

如果不知道放到哪里,就用df -h查看空间使用情况:

root@OpenWrt:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                   75.7M      3.7M     72.0M   5% /
/dev/ubi0_0              75.7M      3.7M     72.0M   5% /
devtmpfs                512.0K         0    512.0K   0% /dev
tmpfs                   113.8M    256.0K    113.6M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev

SSH client, 终端客户端

FinalShell下载 或者 PUtty下载

安装

命令行进入ddns-go所在文件夹,执行以下命令。

Mac/Linux:  ./ddns-go -s install

安装后自启动都是配置好的。 [可选] 服务卸载

Mac/Linux: ./ddns-go -s uninstall

[可选] 支持安装带参数

-l 监听地址
-f 同步间隔时间(秒)
-cacheTimes 间隔N次与服务商比对
-c 自定义配置文件路径
-noweb 不启动web服务
-skipVerify 跳过证书验证
-dns 自定义 DNS 服务器
-resetPassword 重置密码

问题解决

openwrt ddns-go 查询域名信息发生异常! tls: failed to verify certificate: x509: certificate signed by unknown authority

原因:在路由器下运行ddns-go 因为缺少证书报错,由于/etc/ssl 路径被挂载为只读,无法导入证书。

解决办法:1. 安装:ca-certificates,安装后相应证书文件都有了。

申请Cloudflare的API KEY

Cloudfalre 个人资料 -> 创建令牌 -> 编辑区域 DNS (使用模板)

配置ddns-go

配置cloudflare的API Key 配置cloudflare的API Key 配置域名 输入的二级域名记录如果不存在,ddns-go会自动创建。但在删除ddns-go配置时,并不会删除。

IPv6地址选直接从网卡获取,因为IPv6每个设备都有公网IPv6地址。如果主路由想为子网其他设备更新ddns ipv6, 可以使用命令根据MAC地址获取。

例如:

在Linux系统中获取网卡eth1的IPv6地址

ip -6 addr show eth1

获取局域网中的其它设备IPv6地址 其它设备需要支持EUI-64(IPv6后半部分包含ff:fe)

Linux

ip -6 route | awk '{print $1}' | awk '/240:?/' | awk -F::/ '{print $1 ":suffix of other mac"}'

Windows

Get-NetRoute -AddressFamily IPv6 | Where-Object { $_.DestinationPrefix.StartsWith("240") -and $_.DestinationPrefix.endsWith("/64") } | ForEach-Object { ($_.DestinationPrefix -split '::/')[0] + ":suffix of other mac" }

IPv4地址如果设备获取的地址是192.168.*.*这种私有地址,就选择通过接口获取,大多都是这种情况。

验证效果

posted @ 2024-09-12 18:45  jopny  阅读(21)  评论(0编辑  收藏  举报