如何在duckdns上发布IPv6

jaa*_*aaq 5 networking dns ipv6 dynamic-dns

我的 ISP 最近开始提供 IPv6。我家里有一个带有 PiVPN 的 Raspi,希望在我外出时能够访问我的 LAN。我已经使用DuckDNS多年了,对于 IPv4,它效果很好。但是,由于它们位于 AWS 上,因此似乎无法解析 IPv6,因此您必须自己将其提供给他们的更新 API。OK如果一切正常或者KO出现问题,此 API 通常会返回。

这是我用来更新的代码:

token='mytoken'
domain='mydomain'
ipv6=$(ip addr show dev "eth0" | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d' | grep -v '^fd00' | grep -v '^fe80' | head -1)

echo url="https://www.duckdns.org/update?domains=$domain&token=$token&ip=&ip6v=$ipv6&clear=true&verbose=true" | curl -k -o ~/duckdns/duckdns.log -K -
Run Code Online (Sandbox Code Playgroud)

我比较了我的“本地”ipv6 和通过卷曲另一台服务器获得的 ipv6(如此处所述)但似乎没有区别,所以我很确定我正确地获取了我的 IPv6。

它返回一个OK,但随后说当我尝试在网站上检查它时,我提供了一个无效的 IP。

关于如何将 IPv6 添加到 duckdns 域的任何想法?

jaa*_*aaq 6

因此,由于某种原因,DuckDNS 自己在安装选项卡下推荐的发布 IP 的方法不起作用。如果您将通过 stdout 解析 echo 并设置 url 变量的行更改curl为仅构造字符串并卷曲该字符串,则它可以工作:

curl -s "https://www.duckdns.org/update?domains=$domain&token=$token&ip=&ipv6=$ipv6addr" -o ~/duckdns/duckdns.log
Run Code Online (Sandbox Code Playgroud)

此版本将让 DuckDNS 找出您的 IPv4,并根据您的设备配置本身设置您的 IPv6,如问题所示。请确保定期运行该脚本,因为如果 NDP 发现冲突地址或您尚未设置静态 IPv6,则全局 IPv6 可能会发生更改。