先去FreeMyIP申请一个免费的域名
在网页的Domain name输入你想要的域名前缀然后点击检查可用性
如果顺利的话会给你类似这样的网址。
https://freemyip.com/update?token=xxxxxxx&domain=xxxxxxx
记住它,它将是你动态域名的更新链接。
FreeMyip支持更新IPv6的IP到域名中。我写了一个脚本,可以获取公网IPv4和IPv6自动更新到FreeMyip
#!/bin/bash
# 定义token和domain变量
TOKEN="输入你的TOKEN"
DOMAIN="输入你的域名.freemyip.com"
# 是否开启IPv4或者IPv6的更新,1表示开启,0表示关闭
UPDATE_IPV4=1
UPDATE_IPV6=1
# 获取IPv4地址并更新
if [[ $UPDATE_IPV4 -eq 1 ]]; then
ipv4=$(curl -4 -s https://ifconfig.co)
if [[ -n "$ipv4" && "$ipv4" != "<html>"* ]]; then
echo "获取的IPv4地址: $ipv4"
update_url_ipv4="https://freemyip.com/update?token=$TOKEN&domain=$DOMAIN&myip=$ipv4"
update_result_ipv4=$(curl -s "$update_url_ipv4")
echo "IPv4地址更新结果: $update_result_ipv4"
else
echo "无法获取IPv4地址"
fi
fi
# 获取IPv6地址并更新
if [[ $UPDATE_IPV6 -eq 1 ]]; then
ipv6=$(curl -6 -s https://ifconfig.co)
if [[ -n "$ipv6" && "$ipv6" != "<html>"* ]]; then
echo "获取的IPv6地址: $ipv6"
update_url_ipv6="https://freemyip.com/update?token=$TOKEN&domain=$DOMAIN&myip=$ipv6"
update_result_ipv6=$(curl -s "$update_url_ipv6")
echo "IPv6地址更新结果: $update_result_ipv6"
else
echo "无法获取IPv6地址"
fi
fi
将脚本保存为一个文件(例如 update_ip.sh
),并通过以下命令给予执行权限:
chmod +x update_ip.sh
然后运行脚本进行测试:
./update_ip.sh
返回值应该是这样的:
$ bash ./update_ip.sh
获取的IPv4地址: XXXXXXXX
IPv4地址更新结果: OK
获取的IPv6地址: XXXXXXXX
IPv6地址更新结果: OK
接下来你就可以设置Cron来定时执行这个脚本的运行了
编辑 crontab
文件:
crontab -e
添加以下行:
*/5 * * * * /path/to/update_ip.sh
这样,cron
就会每五分钟执行一次 update_ip.sh
脚本。当然间隔时间你可以自己设置。如果你不明白cron规则,你可以参考这个网站。