機場運營之配置文件云更新相關

機場運營 · 01-22 · 299 人浏览
機場運營之配置文件云更新相關

前言:如果你有更好的想法、更便捷的方法,可以在博客裏面留言聯係,或者加入我的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

2024-01-21T22:28:19.png

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
XrayR Script
  1. 11 01-23

    整这些有的没的有啥用? 落地机都在海外,域名怎么可能被墙?

    1. Xue Li (作者)  01-24
      @11

      你沒理解,我的意思是連接節點的域名被墻,直接替換。

本站立足于美利堅合衆國,請讀者自覺遵守當地法律!如有違規,本站不承擔任何法律責任! This site is based in the United States of America, readers are requested to abide by local laws! If there are any violations, this site does not bear any legal responsibility! Theme Jasmine by Kent Liao