You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Socket和Tor检测服务状态时遇General SOCKS服务器故障错误

解决 socks.GeneralProxyError: Socket error: 0x01: General SOCKS server failure 错误

常见原因及修复方案

1. Tor服务未正常运行

这是触发该错误最常见的原因,说明程序无法连接到本地9050端口的Tor服务:

  • 检查Tor服务状态:
    • Windows:打开任务管理器查看tor.exe进程,或在系统服务中确认Tor服务是否启动。
    • Linux/macOS:执行 systemctl status tor(systemd系统)或brew services list(macOS brew安装的Tor)。
  • 手动启动Tor服务:
    • Windows:启动Tor Browser或直接开启Tor系统服务。
    • Linux:sudo systemctl start tor
    • macOS:brew services start tor

2. 代码逻辑错误

你的代码存在两处明显问题,会导致逻辑混乱或误导性输出:

  • 错误1:print(connected) 是打印函数对象,而非连接成功的提示,应改为print("目标服务连接成功")这类明确信息。
  • 错误2:未添加异常捕获,程序遇到错误会直接崩溃,无法定位具体问题。

修复后的代码示例:

import socks
import socket

def tor_connect():
    # 设置SOCKS5代理,最后一个参数开启Tor推荐的远程DNS解析
    socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050, True)
    socket.socket = socks.socksocket

def check_service():
    try:
        tor_connect()
        print("已连接到Tor代理")
        # 替换dest_ip为实际目标IP
        s = socket.create_connection(("dest_ip", 22), timeout=5)
        print("目标SSH服务连接成功")
        s.close()
    except socks.GeneralProxyError as e:
        print(f"代理连接失败: {e}")
    except socket.timeout:
        print("连接超时,目标服务可能未运行或不可达")
    except ConnectionRefusedError:
        print("目标服务拒绝连接")
    except Exception as e:
        print(f"其他错误: {e}")

if __name__ == "__main__":
    check_service()

3. Tor端口配置冲突

  • 检查Tor端口是否匹配:默认Tor SOCKS端口为9050,若修改过torrc配置文件,需确认SocksPort项与代码中的端口一致。
    • Windows配置文件路径:%APPDATA%\Tor\torrc
    • Linux配置文件路径:/etc/tor/torrc
  • 检查端口占用情况:
    • Windows:netstat -ano | findstr :9050
    • Linux/macOS:lsof -i :9050
      若端口被占用,可关闭占用程序,或修改Tor的SocksPort及代码中的对应端口。

4. 防火墙或安全软件拦截

本地防火墙、杀毒软件可能阻止程序访问Tor的9050端口,或阻止Tor访问外部网络。可临时关闭安全软件测试,若问题解决,添加对应程序或端口的允许规则。

内容的提问来源于stack exchange,提问作者Mayank Joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 07:07:21