< 返回

免费域名 + 动态 DNS,兼容大部分设备

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 &

保存即生效

Zexo Designed by Zero with ❤️