Files
dock/de12系统代理
2026-02-20 14:13:12 +08:00

111 lines
4.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
cat << 'EOF' > ultimate_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} 终极自愈版·全局代理与 Docker 穿透助手 (含还原机制) ${PLAIN}"
echo -e "${BLUE}=====================================================${PLAIN}"
PROXY_IP="45.192.240.121"
PROXY_PORT="21628"
PROXY_URL="socks5://${PROXY_IP}:${PROXY_PORT}"
echo -e "\n${BLUE}[阶段 1] 依赖与环境自检...${PLAIN}"
if ! command -v proxychains4 &> /dev/null; then
echo -e "${YELLOW}缺少 proxychains4尝试自动安装...${PLAIN}"
if ! apt-get install proxychains4 -y -qq >/dev/null 2>&1; then
echo -e "${RED}Apt 源可能损坏,自动切换 Debian 12 官方源修复...${PLAIN}"
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2>/dev/null
sudo bash -c 'cat << SRC > /etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main
deb http://deb.debian.org/debian bookworm-updates main
deb http://security.debian.org/debian-security bookworm-security main
SRC'
sudo apt-get update -qq && sudo apt-get install proxychains4 curl -y -qq
fi
fi
echo -e "${BLUE}[阶段 2] 注入终端环境变量...${PLAIN}"
export http_proxy="${PROXY_URL}"
export https_proxy="${PROXY_URL}"
export all_proxy="${PROXY_URL}"
export HTTP_PROXY="${PROXY_URL}"
export HTTPS_PROXY="${PROXY_URL}"
export ALL_PROXY="${PROXY_URL}"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,.aliyuncs.com"
alias sudo='sudo -E'
# 测试终端变量
TEST_1=$(curl -L --max-time 5 -s ip.gs)
if [ "$TEST_1" == "$PROXY_IP" ]; then
echo -e "${GREEN} -> 终端环境变量注入成功!${PLAIN}"
else
echo -e "${RED} -> 终端环境变量测试失败,请检查代理节点状态。${PLAIN}"
fi
echo -e "${BLUE}[阶段 3] 部署 Proxychains (修复 Error 52 DNS问题)...${PLAIN}"
TEMP_PC_CONF="/tmp/ultimate_pc.conf"
# 核心修复:移除 proxy_dns防止不支持 UDP 的节点断连报错
cat << CONF > $TEMP_PC_CONF
strict_chain
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 $PROXY_IP $PROXY_PORT
CONF
alias pc="proxychains4 -q -f $TEMP_PC_CONF"
# 测试 Proxychains
TEST_2=$(pc curl -L --max-time 5 -s ip.gs 2>/dev/null)
if [ "$TEST_2" == "$PROXY_IP" ]; then
echo -e "${GREEN} -> 强制劫持工具 (pc) 部署成功Error 52 已解决!${PLAIN}"
else
echo -e "${YELLOW} -> pc 测试失败,但如果阶段 2 成功,普通命令仍可用。${PLAIN}"
fi
echo -e "${BLUE}[阶段 4] 突破 Docker 守护进程隔离...${PLAIN}"
if command -v docker &> /dev/null; then
mkdir -p /etc/systemd/system/docker.service.d
# 为 Docker 后台服务单独注入代理
cat << DOCKER_CONF > /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=${PROXY_URL}"
Environment="HTTPS_PROXY=${PROXY_URL}"
Environment="NO_PROXY=localhost,127.0.0.1,.aliyuncs.com"
DOCKER_CONF
systemctl daemon-reload
systemctl restart docker
echo -e "${GREEN} -> Docker 代理已挂载并重启完毕!${PLAIN}"
else
echo -e "${YELLOW} -> 未检测到 Docker跳过此步骤。${PLAIN}"
fi
echo -e "\n${BLUE}[阶段 5] 生成一键清场工具...${PLAIN}"
# 定义清理函数,满足你“不想终身全局”的需求
proxy_clean() {
echo -e "${YELLOW}正在清除所有代理痕迹...${PLAIN}"
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
unalias sudo pc 2>/dev/null
rm -f /tmp/ultimate_pc.conf
if [ -f /etc/systemd/system/docker.service.d/http-proxy.conf ]; then
rm -f /etc/systemd/system/docker.service.d/http-proxy.conf
systemctl daemon-reload
systemctl restart docker
fi
echo -e "${GREEN}清理完毕!系统已恢复直连状态。${PLAIN}"
}
echo -e "${GREEN} -> 已生成 'proxy_clean' 命令。${PLAIN}"
echo -e "\n${GREEN}=====================================================${PLAIN}"
echo -e "${GREEN} 所有网络魔法已就绪!${PLAIN}"
echo -e " 1. 你现在可以直接运行 ${YELLOW}docker compose up -d${PLAIN} 拉取镜像了。"
echo -e " 2. 遇到不听话的脚本,命令前加 ${YELLOW}pc${PLAIN} (如 pc wget ...)。"
echo -e " 3. 用完之后,想恢复原状,只需输入: ${RED}proxy_clean${PLAIN}"
echo -e "${GREEN}=====================================================${PLAIN}"
EOF