File size: 2,531 Bytes
386b079
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash

echo "=== 详细测试 SSH 连接 ==="
echo ""

echo "1. 测试 TCP 连接到 hf.co:443..."
if timeout 5 bash -c "echo > /dev/tcp/hf.co/443" 2>/dev/null; then
    echo "✓ TCP 连接成功"
else
    echo "✗ TCP 连接失败"
    exit 1
fi
echo ""

echo "2. 测试端口 22..."
if timeout 5 bash -c "echo > /dev/tcp/hf.co/22" 2>/dev/null; then
    echo "✓ 端口 22 可达"
    PORT_22_AVAILABLE=true
else
    echo "✗ 端口 22 不可达"
    PORT_22_AVAILABLE=false
fi
echo ""

echo "3. 获取 hf.co 的 IP 地址..."
HF_IP=$(getent hosts hf.co | awk '{print $1}' | head -1)
if [ -n "$HF_IP" ]; then
    echo "✓ hf.co IP: $HF_IP"
else
    echo "✗ 无法解析 hf.co"
    exit 1
fi
echo ""

echo "4. 测试使用 IP 地址连接..."
if timeout 5 bash -c "echo > /dev/tcp/$HF_IP/443" 2>/dev/null; then
    echo "✓ 使用 IP 连接成功"
else
    echo "✗ 使用 IP 连接失败"
fi
echo ""

echo "5. 测试 SSH 连接(端口 443,详细输出)..."
echo "开始测试(60秒超时)..."
timeout 60 ssh -vT -o ConnectTimeout=30 -p 443 [email protected] 2>&1 | tee /tmp/ssh_test_443.log | grep -E "(Connecting|established|banner|timeout|error|Authenticated|successfully)" | head -20
SSH_443_EXIT=${PIPESTATUS[0]}
echo ""

if [ "$PORT_22_AVAILABLE" = "true" ]; then
    echo "6. 测试 SSH 连接(端口 22,详细输出)..."
    echo "开始测试(60秒超时)..."
    timeout 60 ssh -vT -o ConnectTimeout=30 -p 22 [email protected] 2>&1 | tee /tmp/ssh_test_22.log | grep -E "(Connecting|established|banner|timeout|error|Authenticated|successfully)" | head -20
    SSH_22_EXIT=${PIPESTATUS[0]}
    echo ""
fi

echo "7. 测试使用 IP 地址连接..."
timeout 60 ssh -vT -o ConnectTimeout=30 -p 443 git@$HF_IP 2>&1 | tee /tmp/ssh_test_ip.log | grep -E "(Connecting|established|banner|timeout|error|Authenticated|successfully)" | head -20
SSH_IP_EXIT=${PIPESTATUS[0]}
echo ""

echo "=== 测试结果汇总 ==="
echo ""
echo "端口 443: $([ $SSH_443_EXIT -eq 0 ] || [ $SSH_443_EXIT -eq 1 ] && echo '可能成功' || echo '失败')"
if [ "$PORT_22_AVAILABLE" = "true" ]; then
    echo "端口 22: $([ $SSH_22_EXIT -eq 0 ] || [ $SSH_22_EXIT -eq 1 ] && echo '可能成功' || echo '失败')"
fi
echo "使用 IP: $([ $SSH_IP_EXIT -eq 0 ] || [ $SSH_IP_EXIT -eq 1 ] && echo '可能成功' || echo '失败')"
echo ""
echo "详细日志:"
echo "  端口 443: /tmp/ssh_test_443.log"
if [ "$PORT_22_AVAILABLE" = "true" ]; then
    echo "  端口 22: /tmp/ssh_test_22.log"
fi
echo "  使用 IP: /tmp/ssh_test_ip.log"