update: mihomo
This commit is contained in:
73
mihomo/update_config.sh
Executable file
73
mihomo/update_config.sh
Executable file
@@ -0,0 +1,73 @@
|
||||
#!/bin/bash
|
||||
|
||||
# --- 配置区 ---
|
||||
SUB_URL="https://45.137.180.230/api/getData/Authorize?token=048f12afb09c43b81f1ce0c35aac3564"
|
||||
CONFIG_FILE="config.yaml"
|
||||
BACKUP_FILE="config.yaml.bak"
|
||||
|
||||
# 你的自定义头部配置(去掉了密码,保留核心设置)
|
||||
read -r -d '' HEADER << EOM
|
||||
# 基础配置
|
||||
port: 7890
|
||||
socks-port: 7891
|
||||
redir-port: 7892
|
||||
allow-lan: true
|
||||
bind-address: "*"
|
||||
mode: rule
|
||||
log-level: info
|
||||
ipv6: false
|
||||
|
||||
# 面板配置(无密码模式)
|
||||
external-controller: 0.0.0.0:9090
|
||||
secret: ""
|
||||
|
||||
EOM
|
||||
# --- 配置区结束 ---
|
||||
|
||||
echo "开始下载订阅..."
|
||||
|
||||
# 1. 下载订阅内容
|
||||
curl -l -k -s -H "User-Agent: clash" "$SUB_URL" -o temp_sub.yaml
|
||||
|
||||
# 2. 检查是否下载成功
|
||||
if [ -s temp_sub.yaml ] && (grep -q "proxies:" temp_sub.yaml || grep -q "proxy-providers:" temp_sub.yaml); then
|
||||
echo "下载成功,正在清洗并合并配置..."
|
||||
|
||||
# 备份旧配置
|
||||
cp "$CONFIG_FILE" "$BACKUP_FILE" 2>/dev/null
|
||||
|
||||
# 3. 清洗订阅文件,删除所有可能冲突的全局行
|
||||
sed -i '/^port:/d' temp_sub.yaml
|
||||
sed -i '/^socks-port:/d' temp_sub.yaml
|
||||
sed -i '/^redir-port:/d' temp_sub.yaml
|
||||
sed -i '/^mixed-port:/d' temp_sub.yaml
|
||||
sed -i '/^allow-lan:/d' temp_sub.yaml
|
||||
sed -i '/^bind-address:/d' temp_sub.yaml
|
||||
sed -i '/^mode:/d' temp_sub.yaml
|
||||
sed -i '/^log-level:/d' temp_sub.yaml
|
||||
sed -i '/^ipv6:/d' temp_sub.yaml
|
||||
sed -i '/^external-controller:/d' temp_sub.yaml
|
||||
sed -i '/^external-ui:/d' temp_sub.yaml
|
||||
sed -i '/^secret:/d' temp_sub.yaml
|
||||
|
||||
# 4. 合并:自定义头部 + 清洗后的订阅内容
|
||||
echo "$HEADER" > "$CONFIG_FILE"
|
||||
cat temp_sub.yaml >> "$CONFIG_FILE"
|
||||
|
||||
# 清理临时文件
|
||||
rm temp_sub.yaml
|
||||
|
||||
echo "配置已更新!正在重启 Mihomo..."
|
||||
docker compose restart mihomo
|
||||
|
||||
echo "------------------------------------"
|
||||
echo "更新完成!"
|
||||
echo "Yacd 地址: http://你的服务器IP:8090"
|
||||
echo "API 地址: http://你的服务器IP:9090"
|
||||
echo "密码栏请保持: 为空"
|
||||
echo "------------------------------------"
|
||||
else
|
||||
echo "错误:下载失败或订阅格式不正确!"
|
||||
[ -f temp_sub.yaml ] && rm temp_sub.yaml
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user