aileeao / check_proxy.sh
aihuashanying's picture
修复不能push的问题
386b079
#!/bin/bash
echo "=== 检查 Clash Verge 代理配置 ==="
echo ""
# 1. 检查网络接口
echo "1. 网络接口信息:"
ip addr show | grep -E "^[0-9]+:|inet " | head -10
echo ""
# 2. 检查路由
echo "2. 默认路由:"
ip route show | grep default
echo ""
# 3. 检测 Windows 主机 IP
WSL_HOST_IP=$(ip route show | grep -i default | awk '{ print $3}' | head -1)
echo "3. WSL 网关 IP(Windows 主机): $WSL_HOST_IP"
echo ""
# 4. 测试 Clash 端口
echo "4. 测试 Clash 代理端口:"
for port in 7897 7890 7891 1080; do
if timeout 2 bash -c "echo > /dev/tcp/$WSL_HOST_IP/$port" 2>/dev/null; then
echo " ✓ 端口 $port 可达"
if [ $port -eq 7897 ]; then
echo " 这是 Clash 混合代理端口(支持 HTTP 和 SOCKS5)"
elif [ $port -eq 7890 ]; then
echo " 这可能是 Clash HTTP 代理端口"
elif [ $port -eq 7891 ]; then
echo " 这可能是 Clash SOCKS5 代理端口"
fi
else
echo " ✗ 端口 $port 不可达"
fi
done
echo ""
# 5. 检查环境变量
echo "5. 代理环境变量:"
echo " http_proxy: ${http_proxy:-未设置}"
echo " https_proxy: ${https_proxy:-未设置}"
echo " HTTP_PROXY: ${HTTP_PROXY:-未设置}"
echo " HTTPS_PROXY: ${HTTPS_PROXY:-未设置}"
echo " all_proxy: ${all_proxy:-未设置}"
echo " ALL_PROXY: ${ALL_PROXY:-未设置}"
echo ""
# 6. 测试 HTTP 连接
echo "6. 测试 HTTP 连接(通过代理):"
if [ -n "$http_proxy" ] || [ -n "$HTTP_PROXY" ]; then
PROXY_URL=${http_proxy:-$HTTP_PROXY}
echo " 使用代理: $PROXY_URL"
curl -s --connect-timeout 5 --proxy "$PROXY_URL" https://www.google.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo " ✓ HTTP 代理工作正常"
else
echo " ✗ HTTP 代理连接失败"
fi
else
echo " 未设置代理环境变量,测试直连..."
curl -s --connect-timeout 5 https://www.google.com > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo " ✓ 直连成功(可能通过 TUN 模式自动代理)"
else
echo " ✗ 连接失败"
fi
fi
echo ""
# 7. 测试 hf.co 连接
echo "7. 测试 hf.co 连接:"
timeout 5 bash -c "echo > /dev/tcp/hf.co/443" 2>/dev/null
if [ $? -eq 0 ]; then
echo " ✓ hf.co:443 可达"
else
echo " ✗ hf.co:443 不可达"
fi
echo ""
# 8. 检查 SSH 配置
echo "8. SSH 配置:"
if [ -f ~/.ssh/config ]; then
echo " hf.co 配置:"
grep -A 10 "Host hf.co" ~/.ssh/config || echo " 未找到 hf.co 配置"
else
echo " ~/.ssh/config 不存在"
fi