#!/bin/bash echo "=== 测试 TUN 模式是否正常工作 ===" echo "" echo "1. 测试普通 HTTP/HTTPS 连接(应该通过 TUN 模式代理)..." if timeout 10 curl -s https://www.google.com > /dev/null 2>&1; then echo "✓ HTTP/HTTPS 连接正常(可能已通过 TUN 代理)" else echo "✗ HTTP/HTTPS 连接失败" fi echo "" echo "2. 测试到 hf.co 的连接..." if timeout 5 bash -c "echo > /dev/tcp/hf.co/443" 2>/dev/null; then echo "✓ hf.co:443 可达" HF_IP=$(getent hosts hf.co | awk '{print $1}' | head -1) echo " hf.co 解析到的 IP: $HF_IP" else echo "✗ hf.co:443 不可达" fi echo "" echo "3. 测试 DNS 解析..." if nslookup hf.co > /dev/null 2>&1; then echo "✓ DNS 解析正常" NSLOOKUP_OUTPUT=$(nslookup hf.co 2>&1) echo "$NSLOOKUP_OUTPUT" | grep -A 2 "Name:" else echo "✗ DNS 解析失败" fi echo "" echo "4. 检查路由表(查看是否有 TUN 相关路由)..." ip route show | grep -E "tun|172\.|198\." | head -5 echo "" echo "5. 检查网络接口(查看是否有 TUN 接口)..." ip addr show | grep -E "^[0-9]+:|tun|utun" | head -10 echo "" echo "6. 测试 SSH 连接(详细输出)..." echo "开始 SSH 连接测试(30秒超时)..." timeout 30 ssh -vT git@hf.co 2>&1 | tee /tmp/ssh_debug.log | grep -E "(Connecting|Authenticated|successfully|Connection|timeout|error|failed|banner)" | head -20 echo "" echo "完整日志保存在: /tmp/ssh_debug.log" echo "查看完整日志: cat /tmp/ssh_debug.log"