我的 ISP 最近开始提供 IPv6。我在家里有一个带有 PiVPN 的 Raspi,我希望能够在我离开时访问我的局域网。我已经使用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 -
我比较了我的“本地”ipv6 和我从卷曲另一台服务器得到的一个,如此处所述,但似乎没有区别,所以我很确定我正确地获得了我的 IPv6。
当我尝试在网站上检查它时,它返回一个OK
但然后说我提供了一个无效的 IP。
关于如何将 IPv6 添加到 duckdns 域的任何想法?
因此,出于某种原因,DuckDNS 自己在安装选项卡下推荐的发布 IP 的方式不起作用。如果您将行
curl
从通过 stdout 解析 echo 并设置 url 变量更改为仅构造字符串并卷曲它,它可以工作:此版本将让 DuckDNS 找出您的 IPv4 并根据您的设备自身配置的内容设置您的 IPv6,如问题所示。确保定期运行脚本,因为如果 NDP 发现地址冲突或您没有设置静态 IPv6,您的全局 IPv6 可能会发生变化。
使用 crontab 定期运行此脚本
鸭子.sh