mirror of
https://github.com/wnlen/clash-for-linux.git
synced 2026-03-21 22:06:45 +08:00
5
.env
5
.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="true"
|
||||
|
||||
# 订阅请求头(可选)
|
||||
# 常见机场需要 User-Agent;如不需要可留空
|
||||
export CLASH_HEADERS='User-Agent: ClashforWindows/0.20.39'
|
||||
|
||||
32
start.sh
32
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,11 +650,30 @@ 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 已关闭自动更新订阅,优先使用本地已有配置启动"
|
||||
|
||||
# 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
|
||||
|
||||
# =========================================================
|
||||
# 判断订阅是否已是完整 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"
|
||||
|
||||
@ -830,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}"
|
||||
|
||||
Reference in New Issue
Block a user