83 lines
3.4 KiB
Plaintext
83 lines
3.4 KiB
Plaintext
cat << 'EOF' > super_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}特性: 环境变量注入 + Sudo穿透 + 强制代理(Proxychains)${PLAIN}"
|
||
echo -e "${YELLOW}寿命: 仅限当前窗口,关闭窗口或重启系统后【彻底失效】${PLAIN}\n"
|
||
|
||
# 默认代理节点 (你可以直接敲回车使用默认值)
|
||
DEFAULT_IP="45.192.240.121"
|
||
DEFAULT_PORT="21628"
|
||
DEFAULT_PROTO="socks5"
|
||
|
||
read -p "请输入代理 IP [$DEFAULT_IP]: " PROXY_IP
|
||
PROXY_IP=${PROXY_IP:-$DEFAULT_IP}
|
||
read -p "请输入代理端口 [$DEFAULT_PORT]: " PROXY_PORT
|
||
PROXY_PORT=${PROXY_PORT:-$DEFAULT_PORT}
|
||
|
||
PROXY_URL="${DEFAULT_PROTO}://${PROXY_IP}:${PROXY_PORT}"
|
||
|
||
echo -e "\n${BLUE}[1/4] 注入全套环境变量...${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}"
|
||
|
||
echo -e "${BLUE}[2/4] 配置 Sudo 环境穿透...${PLAIN}"
|
||
# 让 sudo 命令自动带上 -E 参数,继承当前的环境变量
|
||
alias sudo='sudo -E'
|
||
|
||
echo -e "${BLUE}[3/4] 部署临时强制代理 (Proxychains)...${PLAIN}"
|
||
# 检查并静默安装 proxychains4 (软件本身会安装,但配置是临时的)
|
||
if ! command -v proxychains4 &> /dev/null; then
|
||
echo -e "${YELLOW}检测到缺少 proxychains4 组件,正在通过包管理器临时安装...${PLAIN}"
|
||
sudo apt-get update -qq && sudo apt-get install proxychains4 -y -qq
|
||
fi
|
||
|
||
# 在 /tmp 生成临时配置文件 (系统重启后 /tmp 会被自动清空,不留痕迹)
|
||
TEMP_PC_CONF="/tmp/temp_proxychains_$$.conf"
|
||
cat << CONF > $TEMP_PC_CONF
|
||
strict_chain
|
||
proxy_dns
|
||
remote_dns_subnet 224
|
||
tcp_read_time_out 15000
|
||
tcp_connect_time_out 8000
|
||
[ProxyList]
|
||
$DEFAULT_PROTO $PROXY_IP $PROXY_PORT
|
||
CONF
|
||
|
||
# 创建快捷别名 'pc',调用临时配置文件
|
||
alias pc="proxychains4 -q -f $TEMP_PC_CONF"
|
||
|
||
echo -e "${BLUE}[4/4] 验证出口网络...${PLAIN}"
|
||
# 优先使用强制代理测试连通性
|
||
TEST_IP=$(pc curl -L --max-time 5 -s ip.gs)
|
||
|
||
if [ -n "$TEST_IP" ]; then
|
||
echo -e "\n${GREEN}=======================================${PLAIN}"
|
||
echo -e "${GREEN}网络已全面打通!当前出口 IP: ${YELLOW}${TEST_IP}${PLAIN}"
|
||
echo -e "${GREEN}=======================================${PLAIN}"
|
||
echo -e "【使用秘籍】:"
|
||
echo -e "1. ${YELLOW}听话的程序${PLAIN}: 直接运行 (如 wget, curl),环境变量已生效。"
|
||
echo -e "2. ${YELLOW}需提权操作${PLAIN}: 直接用 sudo (已配置穿透,不掉代理)。"
|
||
echo -e "3. ${YELLOW}不听话的程序${PLAIN}: 命令前加 ${GREEN}pc${PLAIN} (例如: ${GREEN}pc apt update${PLAIN} 或 ${GREEN}pc ./install.sh${PLAIN})。"
|
||
echo -e "4. ${YELLOW}绝对领域${PLAIN}: 运行 ${GREEN}pc bash${PLAIN} ,将开启一个被死死按在代理里的子终端。"
|
||
echo -e "\n${RED}[提示] 退出当前窗口、敲击 exit,或重启机器,以上所有魔法自动消失。${PLAIN}"
|
||
else
|
||
echo -e "\n${RED}[失败] 代理节点无法连接,请检查 IP、端口或防火墙状态!${PLAIN}"
|
||
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
|
||
unalias sudo pc 2>/dev/null
|
||
rm -f $TEMP_PC_CONF
|
||
fi
|
||
EOF |