From 27bc03f1f5ed98878793a34f562bccd2d70a1174 Mon Sep 17 00:00:00 2001 From: 3344 Date: Fri, 20 Feb 2026 13:19:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20de12=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E4=BB=A3=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- de12系统代理 | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 de12系统代理 diff --git a/de12系统代理 b/de12系统代理 new file mode 100644 index 0000000..983878c --- /dev/null +++ b/de12系统代理 @@ -0,0 +1,87 @@ +cat << 'EOF' > set_proxy.sh +#!/bin/bash + +# 定义颜色 +RED='\033[31m' +GREEN='\033[32m' +YELLOW='\033[33m' +BLUE='\033[34m' +PLAIN='\033[0m' + +echo -e "${BLUE}=======================================${PLAIN}" +echo -e "${BLUE} 终端临时代理环境配置助手 ${PLAIN}" +echo -e "${BLUE}=======================================${PLAIN}" +echo -e "${YELLOW}提示: 此代理仅在当前窗口生效,断开连接或重启后自动失效。${PLAIN}\n" + +echo "请选择代理模式:" +echo "1) 使用默认代理 (45.192.240.121:21628)" +echo "2) 手动输入自定义代理 (IP 和 端口)" +echo "3) 清除当前代理 (恢复直连)" +read -p "请输入选项 [1-3]: " opt + +case $opt in + 1) + PROXY_IP="45.192.240.121" + PROXY_PORT="21628" + ;; + 2) + read -p "请输入代理 IP: " PROXY_IP + read -p "请输入代理端口: " PROXY_PORT + ;; + 3) + unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY + echo -e "\n${GREEN}[成功] 已清除所有代理设置,恢复直连网络。${PLAIN}" + curl -L --max-time 5 -s ip.gs + return 0 2>/dev/null || exit 0 + ;; + *) + echo -e "${RED}[错误] 输入无效,已退出。${PLAIN}" + return 1 2>/dev/null || exit 1 + ;; +esac + +echo -e "\n${BLUE}[状态]${PLAIN} 正在测试代理连通性并适配协议..." + +# 防失败措施 1:定义测试函数,设置 5 秒超时防卡死 +test_proxy() { + local protocol=$1 + export http_proxy="${protocol}://${PROXY_IP}:${PROXY_PORT}" + export https_proxy="${protocol}://${PROXY_IP}:${PROXY_PORT}" + export all_proxy="${protocol}://${PROXY_IP}:${PROXY_PORT}" + + # 尝试获取当前外网 IP + TEST_IP=$(curl -x "${protocol}://${PROXY_IP}:${PROXY_PORT}" -L --max-time 5 -s ip.gs) + + if [ -n "$TEST_IP" ]; then + return 0 + else + return 1 + fi +} + +# 防失败措施 2:协议自动降级 (Socks5 -> HTTP) +if test_proxy "socks5"; then + echo -e "${GREEN}[成功]${PLAIN} Socks5 协议连接成功!" +elif test_proxy "http"; then + echo -e "${YELLOW}[警告]${PLAIN} Socks5 协议测试失败 (系统工具老旧或代理限制),已自动降级为 HTTP 协议并连接成功!" +else + echo -e "${RED}[失败]${PLAIN} 代理无法连接!请检查代理服务器状态、IP白名单或目标端口。" + # 还原代理设置,防止污染当前环境 + unset http_proxy https_proxy all_proxy + return 1 2>/dev/null || exit 1 +fi + +# 防失败措施 3:兼容大写环境变量 (某些老旧脚本只识别大写) +export HTTP_PROXY=$http_proxy +export HTTPS_PROXY=$https_proxy +export ALL_PROXY=$all_proxy + +echo -e "\n${BLUE}=======================================${PLAIN}" +echo -e "${GREEN}网络已打通!代理环境配置完毕。${PLAIN}" +echo -e "当前出口 IP 识别为: ${YELLOW}${TEST_IP}${PLAIN}" +echo -e "你现在可以继续运行你的重装脚本或其他下载命令了。" +echo -e "${BLUE}=======================================${PLAIN}\n" + +EOF + +chmod +x set_proxy.sh \ No newline at end of file