rob*_*lls 5 remote-access dynamic-ip static-ip hosts.allow
我们的服务器(所有 CentOS)都受 IP 限制,但我经常外出并停留在动态 IP 地址上。使用 DynDNS 小部件我已将此动态 IP 设置为始终与 DynDNS 主机名同步,但我应该如何将此解析为 hosts.allow 中的 IP。目前我已经编写了一个 cron 脚本,它每隔几分钟运行一次并检查分配给该主机名的 IP 并将动态 IP 写入 hosts.allow 但我不太热衷于将其作为解决方案。有没有更优雅的方式我可以这样做?
谢谢。
下面的脚本将 ping 您的动态地址并仅获取 ip,然后与 last_ip.txt 中存储的 ip 进行比较,如果它们不同,hosts.allow 中的 ip 将被删除并替换为新 ip 以及 last_ip 中的 ip 。TXT。
然后,您可以在 crontab 上将此代码设置为每 5 分钟或 10 分钟或任何您认为合适的时间运行一次。
它并不那么复杂,可能会解决您的问题......
#!/bin/bash
DYN_IP="www.google.com.br"
CMD=$(ping -c1 $DYN_IP | head -1 | awk -F' ' '{ print $3}' | sed 's/(\|)//g')
FILE="./last_ip.txt"
NEW_IP=$CMD
if [ -e $FILE ]; then
OLD_IP=$(cat $FILE)
else
OLD_IP="0"
fi
if [ $OLD_IP != $NEW_IP ]; then
echo $NEW_IP > last_ip.txt
sed -i "/^sshd: $OLD_IP/d" /etc/hosts.allow
echo "sshd: $NEW_IP" >> /etc/hosts.allow
echo "Allow ip changed to $NEW_IP"
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2304 次 |
| 最近记录: |