前言:如果你有更好的想法、更便捷的方法,可以在博客裏面留言聯係,或者加入我的TG頻道。
假設我們買了兩臺VPS用來做節點,正常操作是,我在機場面板上面加節點信息,然後VPS安裝XrayR對接。
我需要添加兩個節點:1.父節點 2.子節點(套用Cloudflare CDN)
於是可以通過MySQL命令在後臺執行。
那麽如果長期下去會遇到一些問題,例如vps太多一個個更改配置太麻煩(舊域名被墻,配置文件的域名替換為新域名)
操作:
1.通過替換域名脚本,也就是舊域名解析換成新域名解析,IP地址複製。在之前的教程裏面有python脚本。
2.因爲cdn域名更換了,所以xrayr的配置文件内域名也要更換,可以通過一個web php返回最新的域名地址,讓vps自動替換。
於是可以通過shell脚本,來讓節點VPS自動每5分鐘替換cdn域名,Your_Cdn_Domain_API 替換為一個web網頁返回一個未被墻的域名即可。也就是説,原本xrayr配置domain為a.a.com,被墻了,脚本自動通過網頁api請求獲取最新未被墻的域名,例如為b.com,然後自動替換xrayr的配置文件,前綴不會更改,此時配置文件中域名即爲:a.b.com
1.安裝一些配置環境程式,複製以下命令命名為install.sh授予執行權限,然後運行即可。:
#!/bin/bash
# 检查并安装 curl
if ! command -v curl &> /dev/null
then
if [ -f /etc/debian_version ]; then
apt-get update && apt-get install -y curl
elif [ -f /etc/redhat-release ]; then
yum install -y curl
elif [ -f /etc/alpine-release ]; then
apk add --no-cache curl
fi
fi
# 检查并安装 sed
if ! command -v sed &> /dev/null
then
if [ -f /etc/debian_version ]; then
apt-get update && apt-get install -y sed
elif [ -f /etc/redhat-release ]; then
yum install -y sed
elif [ -f /etc/alpine-release ]; then
apk add --no-cache sed
fi
fi
2.以下命令編寫為 update.sh,授予執行權限。
请将 /Node_Update/update.sh 替换为 update.sh 脚本的实际路径。
这个命令会创建一个新的定时任务,每5分钟运行一次 update.sh 脚本。
echo "*/5 * * * * /Node_Update/update.sh" | crontab -
update.sh的内容為:
#!/bin/bash
# 获取新的域名
new_domain=$(curl -s Your_Cdn_Domain_API)
# 检查新的域名是否在配置文件中
if ! grep -q "$new_domain" /etc/XrayR/config.yml; then
# 如果新的域名不在配置文件中,修改配置文件
sed -i "s/\(CertDomain: \"[^.]*\.\)[^\"]*\"/\1$new_domain\"/g" /etc/XrayR/config.yml
# 重启 XrayR
xrayr restart
rc-service XrayR restart
echo "域名已更新并重启 XrayR。"
else
echo "域名已存在,无需更新。"
fi
查看定時任務:
crontab -l
整这些有的没的有啥用? 落地机都在海外,域名怎么可能被墙?
你沒理解,我的意思是連接節點的域名被墻,直接替換。