添加 de12系统代理
This commit is contained in:
87
de12系统代理
Normal file
87
de12系统代理
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user