我的服务器如何检测 IP 更改以通知我的动态 DNS 提供商?

我的服务器如何检测 IP 更改以通知我的动态 DNS 提供商?

只需设置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

相关内容