Update install.sh

This commit is contained in:
wnlen
2026-03-20 13:57:57 +08:00
parent 574174588d
commit a96d47eac4

View File

@ -388,43 +388,68 @@ fi
PROFILED_FILE="/etc/profile.d/clash-for-linux.sh" PROFILED_FILE="/etc/profile.d/clash-for-linux.sh"
install_profiled() { install_profiled() {
local http_port="${MIXED_PORT:-7890}" local install_dir="$Install_Dir"
# 兼容你后面可能支持 autoauto 就先用 7890
[ "$http_port" = "auto" ] && http_port="7890"
# 只写 IPv4 loopback避免某些环境 ::1 解析问题
sudo tee "$PROFILED_FILE" >/dev/null <<EOF sudo tee "$PROFILED_FILE" >/dev/null <<EOF
# Clash for Linux proxy helpers # Clash for Linux proxy helpers
# Auto-generated by clash-for-linux installer. # Auto-generated by clash-for-linux installer.
# Default proxy endpoint (HTTP) # ===== 自动加载 .env =====
export CLASH_HTTP_PROXY="http://127.0.0.1:${http_port}" CLASH_INSTALL_DIR="${install_dir}"
# Default proxy endpoint (SOCKS5) ENV_FILE="\${CLASH_INSTALL_DIR}/.env"
export CLASH_SOCKS_PROXY="socks5://127.0.0.1:${http_port}"
if [ -f "\$ENV_FILE" ]; then
set +u
. "\$ENV_FILE" >/dev/null 2>&1 || true
set -u
fi
# ===== 默认值(兜底)=====
CLASH_LISTEN_IP="\${CLASH_LISTEN_IP:-127.0.0.1}"
CLASH_HTTP_PORT="\${CLASH_HTTP_PORT:-7890}"
CLASH_SOCKS_PORT="\${CLASH_SOCKS_PORT:-7891}"
# ===== 开启代理 =====
proxy_on() { proxy_on() {
export http_proxy="\$CLASH_HTTP_PROXY" export http_proxy="http://\${CLASH_LISTEN_IP}:\${CLASH_HTTP_PORT}"
export https_proxy="\$CLASH_HTTP_PROXY" export https_proxy="http://\${CLASH_LISTEN_IP}:\${CLASH_HTTP_PORT}"
export all_proxy="\$CLASH_SOCKS_PROXY" export HTTP_PROXY="http://\${CLASH_LISTEN_IP}:\${CLASH_HTTP_PORT}"
export HTTP_PROXY="\$CLASH_HTTP_PROXY" export HTTPS_PROXY="http://\${CLASH_LISTEN_IP}:\${CLASH_HTTP_PORT}"
export HTTPS_PROXY="\$CLASH_HTTP_PROXY" export all_proxy="socks5://\${CLASH_LISTEN_IP}:\${CLASH_SOCKS_PORT}"
export ALL_PROXY="\$CLASH_SOCKS_PROXY" export ALL_PROXY="socks5://\${CLASH_LISTEN_IP}:\${CLASH_SOCKS_PORT}"
echo "[OK] Proxy enabled: \$CLASH_HTTP_PROXY" export no_proxy="127.0.0.1,localhost,::1"
export NO_PROXY="127.0.0.1,localhost,::1"
echo "[OK] Proxy enabled: http://\${CLASH_LISTEN_IP}:\${CLASH_HTTP_PORT}"
} }
# ===== 关闭代理 =====
proxy_off() { proxy_off() {
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY
unset all_proxy ALL_PROXY no_proxy NO_PROXY
echo "[OK] Proxy disabled" echo "[OK] Proxy disabled"
} }
# ===== 状态 =====
proxy_status() { proxy_status() {
echo "http_proxy=\${http_proxy:-<empty>}" echo "http_proxy=\${http_proxy:-<empty>}"
echo "https_proxy=\${https_proxy:-<empty>}" echo "https_proxy=\${https_proxy:-<empty>}"
echo "all_proxy=\${all_proxy:-<empty>}" echo "all_proxy=\${all_proxy:-<empty>}"
echo "CLASH_HTTP_PORT=\${CLASH_HTTP_PORT}"
echo "CLASH_SOCKS_PORT=\${CLASH_SOCKS_PORT}"
} }
EOF EOF
sudo chmod 644 "$PROFILED_FILE" sudo chmod 644 "$PROFILED_FILE"
# ===== 自动写入 bashrc关键=====
local BASHRC_FILE="/root/.bashrc"
local SOURCE_LINE='[ -f /etc/profile.d/clash-for-linux.sh ] && source /etc/profile.d/clash-for-linux.sh'
if [ -f "$BASHRC_FILE" ]; then
if ! grep -Fq "$SOURCE_LINE" "$BASHRC_FILE"; then
echo "$SOURCE_LINE" >> "$BASHRC_FILE"
fi
fi
} }
install_profiled || true install_profiled || true