#!/bin/bash echo "=== 测试混合端口的 SOCKS5 功能 ===" echo "" WSL_HOST_IP=$(ip route show | grep default | awk '{print $3}') echo "Windows 主机 IP: $WSL_HOST_IP" echo "混合代理端口: 7897" echo "" # 测试 SOCKS5 echo "1. 测试 SOCKS5 代理..." if command -v curl > /dev/null 2>&1; then echo "使用 curl 测试 SOCKS5..." timeout 10 curl -v --socks5-hostname $WSL_HOST_IP:7897 https://www.google.com 2>&1 | head -20 if [ $? -eq 0 ]; then echo "" echo "✓ SOCKS5 代理工作正常" else echo "" echo "✗ SOCKS5 代理测试失败" fi else echo "curl 未安装,跳过测试" fi echo "" # 测试 HTTP 代理 echo "2. 测试 HTTP 代理..." if command -v curl > /dev/null 2>&1; then echo "使用 curl 测试 HTTP 代理..." export http_proxy=http://$WSL_HOST_IP:7897 timeout 10 curl -v --proxy "$http_proxy" https://www.google.com 2>&1 | head -20 if [ $? -eq 0 ]; then echo "" echo "✓ HTTP 代理工作正常" else echo "" echo "✗ HTTP 代理测试失败" fi else echo "curl 未安装,跳过测试" fi echo "" # 测试 nc 的 SOCKS5 支持 echo "3. 测试 nc 的 SOCKS5 功能..." if command -v nc > /dev/null 2>&1; then echo "测试 nc 是否支持 -X 选项..." if nc -h 2>&1 | grep -q "\-X"; then echo "✓ nc 支持 SOCKS 代理" echo "" echo "尝试通过 nc 连接..." timeout 5 nc -X 5 -x $WSL_HOST_IP:7897 hf.co 443 < /dev/null if [ $? -eq 0 ]; then echo "✓ 通过 nc 的 SOCKS5 连接成功" else echo "✗ 通过 nc 的 SOCKS5 连接失败" fi else echo "✗ nc 不支持 SOCKS 代理" echo "可能需要安装 netcat-openbsd: sudo apt-get install netcat-openbsd" fi else echo "✗ nc 未安装" fi