如果您需要使用DDNS,网络上太多家都是假免费的DDNS服务,
被骗好几次了,这家才是我用过,真正免费好用的DDNS,您真的可以试试。
https://www.duckdns.org/
DDNS又称为动态DNS,可以让我们的浮动IP取得一个域名。
这样就能透过域名来访问我们浮动IP的主机。
例如我的ISP是Hi-Net,家用型的只肯给一个固定IP及六个浮动IP,那是不是就代表没法用浮动IP架站呢?
当然可以,只要你有DDNS就搞定罗,而且如果您自己有域名,但证书供应商又不提供API让你动态更新DNS纪录时 ,
还可以透过CNAME的设置,将您的域名指向DDNS的域名,这样您还能用自己的域名连上动态IP的主机了🥰。
示意图如下:
host -t a bbb.e-course.app
bbb.e-course.app is an alias for imacbbb.duckdns.org.
imacbbb.duckdns.org has address 111.248.139.21
在这里我提供一个动态更新的bash供参考,请注意,您需依实际情况调整 bash内容去符合您自己的环境。
我在这边只是提供了一个概念跟方法,您可以有两个bash,一只检查IP是否变更了,另一只进行IP的更新。
check_ip_changed.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
DNS_IP=$(host -t a bbb.e-course.app 8.8.8.8|grep address|awk '{print $4}')
echo ${DNS_IP}
IP=`ifconfig eth0|grep 'inet'|awk '{print $2}'`
echo ${IP}
if [ $DNS_IP != $IP ]; then
echo "Update DDNS"
/root/ddns.sh
fi
解说:
一、您需要依实际状况,调整命令,取得您自己目前DNS解析出来的DNS IP,例如我是透过DNS取得
二、您需要能用命令,取得您外网的网卡IP,我的例子中网卡是eth0,您的网卡应该是ppp0,这网卡我改过名称了。
三、可以看到,在上方的bash中,会比对DNS_IP及IP,如果不同时,就运行ddns.sh进移动态DNS的IP更新。
下方是ddns.sh的内容,您需要调整正确的subdomain、token及网络卡
#!/bin/bash
SUBDOMAIN=<SUBDOMAIN>
TOKEN=<YOUR TOKEN>
IP=`ifconfig eth0|grep 'inet'|awk '{print $2}'`
echo "update ${SUBDOMAIN}.duckdns.org => IP:${IP}"
curl "https://www.duckdns.org/update/${SUBDOMAIN}/${TOKEN}/${IP}"
四、确认没问题后,放入调度中,每分钟检测即可。
* * * * * /root/check_ip_changed.sh
PPPoE有可能会被ISP断线,您以参考我另一篇文章
https://www.ccc.tc/article/my-bash-of-repppoe
No Comment
Post your comment