From 70f88187afdb2bf8815382f2c4bac7444d83107d Mon Sep 17 00:00:00 2001 From: wnlen <544241974@qq.com> Date: Tue, 17 Mar 2026 01:57:35 +0800 Subject: [PATCH 1/5] Update .env --- .env | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.env b/.env index ba52ac7..d94c22e 100644 --- a/.env +++ b/.env @@ -15,6 +15,11 @@ # 示例:export CLASH_URL='https://example.com/sub?token=xxx' export CLASH_URL='' +# 是否自动更新 Clash 订阅配置: +# true = 启动时检查订阅并重新下载/转换配置 +# false = 禁用自动更新,直接使用本地已有 config.yaml +export CLASH_AUTO_UPDATE="false" + # 订阅请求头(可选) # 常见机场需要 User-Agent;如不需要可留空 export CLASH_HEADERS='User-Agent: ClashforWindows/0.20.39' From 79f9e5167cacdca6341b20566ae0e9aafc75cacf Mon Sep 17 00:00:00 2001 From: wnlen <544241974@qq.com> Date: Tue, 17 Mar 2026 02:01:20 +0800 Subject: [PATCH 2/5] Update start.sh --- start.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/start.sh b/start.sh index f2be2b1..ec2c65b 100644 --- a/start.sh +++ b/start.sh @@ -448,8 +448,10 @@ if { [ "${SYSTEMD_MODE}" = "true" ] && [ -z "${URL:-}" ]; } || [ "${MANUAL_EMPTY SKIP_CONFIG_REBUILD=true fi +CLASH_AUTO_UPDATE="${CLASH_AUTO_UPDATE:-true}" + #################### Clash 订阅地址检测及配置文件下载 #################### -if [ "$SKIP_CONFIG_REBUILD" != "true" ]; then +if [ "$SKIP_CONFIG_REBUILD" != "true" ] && [ "$CLASH_AUTO_UPDATE" = "true" ]; then echo -e '\n正在检测订阅地址...' Text1="Clash订阅地址可访问!" Text2="Clash订阅地址不可访问!" @@ -494,7 +496,7 @@ if [ "$SKIP_CONFIG_REBUILD" != "true" ]; then fi #################### 下载订阅并生成 config.yaml(非兜底路径) #################### -if [ "$SKIP_CONFIG_REBUILD" != "true" ]; then +if [ "$SKIP_CONFIG_REBUILD" != "true" ] && [ "$CLASH_AUTO_UPDATE" = "true" ]; then ensure_subconverter || true echo -e '\n正在下载Clash配置文件...' Text3="配置文件clash.yaml下载成功!" @@ -648,6 +650,12 @@ if [ "$SKIP_CONFIG_REBUILD" != "true" ]; then fi fi +if [ "$SKIP_CONFIG_REBUILD" != "true" ] && [ "$CLASH_AUTO_UPDATE" != "true" ]; then + echo -e "\033[33m[WARN]\033[0m 已关闭自动更新订阅,使用本地已有配置启动" + ensure_fallback_config || true + SKIP_CONFIG_REBUILD=true +fi + # ========================================================= # 判断订阅是否已是完整 Clash YAML(Meta / Mihomo / Premium) # 若是完整配置,则直接使用,跳过后续代理拆解与拼接 From 9b97197acbe50a7fafcde0d6b1f77e5dfc48287a Mon Sep 17 00:00:00 2001 From: wnlen <544241974@qq.com> Date: Tue, 17 Mar 2026 02:06:49 +0800 Subject: [PATCH 3/5] Update start.sh --- start.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index ec2c65b..244189a 100644 --- a/start.sh +++ b/start.sh @@ -660,7 +660,7 @@ fi # 判断订阅是否已是完整 Clash YAML(Meta / Mihomo / Premium) # 若是完整配置,则直接使用,跳过后续代理拆解与拼接 # ========================================================= -if grep -qE '^(proxies:|proxy-providers:|mixed-port:|port:)' "$Temp_Dir/clash.yaml"; then +if [ -s "$Temp_Dir/clash.yaml" ] && grep -qE '^(proxies:|proxy-providers:|mixed-port:|port:)' "$Temp_Dir/clash.yaml"; then echo "[INFO] subscription is a full Clash config, use it directly" cp -f "$Temp_Dir/clash.yaml" "$Conf_Dir/config.yaml" @@ -681,8 +681,8 @@ if grep -qE '^(proxies:|proxy-providers:|mixed-port:|port:)' "$Temp_Dir/clash.ya ln -sfn "$Dashboard_Src" "$Conf_Dir/ui" 2>/dev/null || true fi - SKIP_CONFIG_REBUILD=true - fi + SKIP_CONFIG_REBUILD=true +fi #################### 订阅转换/拼接(非兜底路径) #################### if [ "$SKIP_CONFIG_REBUILD" != "true" ]; then From b84b17f7cb36eeebcff02379cbe2890b8a9b8e88 Mon Sep 17 00:00:00 2001 From: wnlen <544241974@qq.com> Date: Tue, 17 Mar 2026 02:11:50 +0800 Subject: [PATCH 4/5] Update start.sh --- start.sh | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/start.sh b/start.sh index 244189a..b423362 100644 --- a/start.sh +++ b/start.sh @@ -651,8 +651,21 @@ if [ "$SKIP_CONFIG_REBUILD" != "true" ] && [ "$CLASH_AUTO_UPDATE" = "true" ]; th fi if [ "$SKIP_CONFIG_REBUILD" != "true" ] && [ "$CLASH_AUTO_UPDATE" != "true" ]; then - echo -e "\033[33m[WARN]\033[0m 已关闭自动更新订阅,使用本地已有配置启动" - ensure_fallback_config || true + echo -e "\033[33m[WARN]\033[0m 已关闭自动更新订阅,优先使用本地已有配置启动" + + # 1) 优先使用已有 conf/config.yaml;没有才 fallback + if [ ! -s "$Conf_Dir/config.yaml" ]; then + ensure_fallback_config || true + fi + + # 2) 补齐运行必须字段 + force_write_controller_and_ui "$Conf_Dir/config.yaml" || true + force_write_secret "$Conf_Dir/config.yaml" || true + + # 3) 明确指定运行配置 + CONFIG_FILE="$Conf_Dir/config.yaml" + + # 4) 跳过后续“下载 / 转换 / 拼接”流程 SKIP_CONFIG_REBUILD=true fi @@ -838,7 +851,10 @@ ReturnStatus=$? if [ "$ReturnStatus" -eq 0 ]; then echo '' if [ "$EXTERNAL_CONTROLLER_ENABLED" = "true" ]; then - echo -e "Clash Dashboard 访问地址: http://${EXTERNAL_CONTROLLER}/ui" + SERVER_IP="$(hostname -I | awk '{print $1}')" + API_PORT="${EXTERNAL_CONTROLLER##*:}" + + echo -e "Clash Dashboard 访问地址: http://${SERVER_IP}:${API_PORT}/ui" SHOW_SECRET="${CLASH_SHOW_SECRET:-false}" SHOW_SECRET_MASKED="${CLASH_SHOW_SECRET_MASKED:-true}" From f41d75088cc32651ab49a9be6e1e4ea4503e4ed8 Mon Sep 17 00:00:00 2001 From: wnlen <544241974@qq.com> Date: Tue, 17 Mar 2026 02:14:02 +0800 Subject: [PATCH 5/5] Update .env --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index d94c22e..effea66 100644 --- a/.env +++ b/.env @@ -18,7 +18,7 @@ export CLASH_URL='' # 是否自动更新 Clash 订阅配置: # true = 启动时检查订阅并重新下载/转换配置 # false = 禁用自动更新,直接使用本地已有 config.yaml -export CLASH_AUTO_UPDATE="false" +export CLASH_AUTO_UPDATE="true" # 订阅请求头(可选) # 常见机场需要 User-Agent;如不需要可留空