定时获取域名所解析的 IP ,并将 IP 添加至 UFW 防火墙规则;

仅适用于 IPv4 网络的机器!

# 新建脚本
vi /usr/ufwip.sh

Shell 脚本内容如下,请自行替换 google.com 为自己的域名:

#!/bin/bash

# crontab 任务:每20分钟执行一次
# */20 * * * * bash /usr/ufwip.sh > /dev/null

if [ -e /var/ip.log ]
then
   echo "file exist"
else
   echo "1.1.1.1" >> /var/ip.log
fi

OLDIP=$(cat /var/ip.log)
if [ $OLDIP ]
then
    echo "not null"
else
    echo "init ip 1.1.1.1"
    OLDIP="1.1.1.1"
fi

TMPSTR=`ping google.com -c 1 | sed '1{s/.*(\([^ ]*\)) 56.*/\1/;q}'`

if [ $TMPSTR != $OLDIP ]
then
    ufw allow from $TMPSTR
    ufw reload
    echo "ufw add ip succeed"
    echo $TMPSTR > /var/ip.log
else
    echo "IP not change."
fi