只需设置ubuntu服务器,它具有动态ip。我正在寻找一种方法来保持我的 DNS 服务器更新。我使用 Entrydns 来执行此操作,他们提供以下命令来更新服务器。
curl -k -X PUT -d "" https://entrydns.net/records/modify/TOKEN
我需要的是一种检查 ip 是否已更改的方法,以便我可以更新 dns 服务器。
答案1
最好制作一个在网络配置更改时触发的脚本,并让该脚本无条件更新 DNS。如果您使用网络管理器,则可以输入这样的脚本/etc/NetworkManager/dispatcher.d
- 请参阅网络管理员(8)了解详情。
如果您不使用网络管理器,/etc/dhcp/dhclient-enter-hooks.d
可能更合适。
然后你就不必轮询任何东西。
答案2
像这样的事情会做:
#!/bin/bash
# "${0%.sh}.myip" transforms /path/to/script.sh to /path/to/script.myip
if [[ ! -s "${0%.sh}.myip" ]]; then echo "0.0.0.0" > "${0%.sh}.myip"
newip=$(curl -k -X PUT -d "" https://entrydns.net/records/modify/TOKEN)
read oldip < "${0%.sh}.myip"
echo $newip > "${0%.sh}.myip"
if [[ $newip != $oldip]]; echo "IP changed"; fi
答案3
如果您可以忍受更新 IP 的短暂延迟,并且对在 entrydns.net 上更新记录的频率没有限制,则可能有一种更简单的方法
如果此命令适用于更新 entrydns.net,则只需将其放入 crontab 中并将其配置为按设定的时间间隔运行。
curl -k -X PUT -d "" https://entrydns.net/records/modify/TOKEN