免费域名 + 动态 DNS,兼容大部分设备
2023.05.15
#网络
dynv6
是个免费易用的动态 DNS 服务商,点我注册
脚本默认使用 ipv6,几乎每个设备都能拥有的公网 ipv6
#!/usr/bin/env bash
if [[ "$OSTYPE" == "darwin"* ]]; then
# macOS
ipv6=$(ifconfig | grep inet6 | grep autoconf | grep -v temporary | awk '{print $2}' | cut -d '%' -f1 | grep -E '^240e:|2408:8000:|2409:8000:')
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
# Linux
ipv6=$(ip addr show | awk '/inet6/{print $2}' | cut -d '/' -f1 | grep -E '240e:|2408:8000:|2409:8000:' | head -1)
else
ipv6=$(curl -s 6.ipw.cn)
fi
hostname=你的域名 (注册后创建)
token=你的token
# token 获取方式
# 1. 登录后 -> 右上角邮箱 -> Keys -> HTTP Tokens
# 2. 登录后 -> My Zones -> 任意一个域名 -> Instructions -> Benutzername
saved_ip=$(cat ~/.ddns/ipv6.txt)
if [[ "$ipv6" == "$saved_ip" ]]; then
echo "当前ip为:${ipv6}"
echo "ipv6 地址没有变化"
else
echo "当前ip为:${ipv6}"
echo "ipv6 改变,开始更新"
curl "http://dynv6.com/api/update?hostname=$hostname&ipv6=$ipv6&token=$token"
cat /dev/null> ~/.ddns/ipv6.txt
echo $ipv6 > ~/.ddns/ipv6.txt
fi
复制上面的代码,存为 xx.sh
记得赋予可执行权限 chmod +x xx.sh
最后可以设置个定时任务 crontab -e
# 每十分钟执行一次脚本
*/10 * * * * nohup bash ~/.ddns/ddns.sh > ~/.ddns/ddns.log 2>&1 &
保存即生效