先去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规则,你可以参考这个网站。

最后修改:2024 年 07 月 26 日
如果觉得我的文章对你有用,请随意赞赏