因为家庭宽带的ipv6会不停变动,所以即便是使用CDN搭配建站,也要很频繁的修改CDN控制台里的IPV6地址。
所有为了方便,写了个py脚本,自动检测ipv6地址是否有变化,如果有就自动提交到CDN控制台。
需要使用python3,所以需要安装好。
sudo apt install python3
root@astarry:/# python3 --version
Python 3.8.10
#就OK了。
记得先开启失控CDN的api功能。
1、脚本
import requests
import json
import requests
import time
url = 'https://user.cdn1.vip/v1/sites/****' ##***填入CDN的网站ID
def getIPv6Address():
text = requests.get('https://v6.ident.me').text
return text
if __name__ == "__main__":
print(getIPv6Address())
lastAddress=""
while True:
ipAddress = getIPv6Address()
data = {
"backend": [{"index": 0, "state": "up", "addr": ipAddress, "weight": "1"}]
}
headers={
"api-key": "", ##填入自己的api key
"api-secret": "" ##填入自己的api secret
}
if lastAddress!=ipAddress:
response = requests.put(url, data=json.dumps(data),headers=headers)
print(response.json())
lastAddress=ipAddress
time.sleep(60)
else:
print("IP地址未发生变化")
time.sleep(60)
ps:此脚本只会修改CDN的源站IP地址,且只能用于IPV6。
2、使用systemd作为服务运
使用文本编辑器(如vim)在 /etc/systemd/system 目录下创建一个 cdn.service 文件,用于配置此脚本服务。
sudo vim /etc/systemd/system/cdn.service
写入内容:
[Unit]
Description=cdn server
Afteer=network.target
Wants=network.target
[Service]
Type=simple
#启动脚本的命令,需要替换成脚本的存放位置。
ExecStart=/usr/bin/python3 /home/astarry/123/cdn.py
Restart=always
[Install]
WantedBy=multi-user.target
保存退出即可。
#启动
systemctl start cdn
#重启
systemctl restart cdn
#查看cdn状态
systemctl status cdn
3、将cdn.service设置开机自启
systemctl enable cdn
这样就不用担心光猫重启,或者断网重连导致ipv6变动,CDN无法访问到源站的情况了。