Python Requests调用Tor代理失败求助:连接被主动拒绝
解决Requests通过Tor代理连接被拒绝的问题
你碰到的[Errno 10061]错误核心是本地Tor服务没在你指定的9050端口运行,或者依赖包没配置对。我来一步步帮你排查解决:
第一步:确认Tor服务的状态和端口
这是最容易踩的坑:
- 如果你用的是Tor Browser,它默认的SOCKS5端口是
9150,而非9050(9050是独立Tor服务的默认端口)。必须先打开Tor Browser,它才会启动本地SOCKS代理; - 如果是单独安装的Tor服务(比如Windows的Tor Service、Linux的tor包),要确保服务已经启动。可以通过命令行检查端口是否在监听:
- Windows:打开cmd,运行
netstat -ano | findstr :9050,查看是否有进程占用该端口; - Linux/macOS:终端运行
lsof -i :9050或者netstat -tulpn | grep 9050。
- Windows:打开cmd,运行
第二步:安装必要的依赖
Requests本身不支持SOCKS5代理,你需要安装对应的扩展包:
pip install requests[socks] # 或者单独安装PySocks pip install PySocks
第三步:修正代码中的代理配置
根据你的Tor服务类型调整端口:
情况1:使用Tor Browser的代理
import requests proxies = { 'http': 'socks5://localhost:9150', 'https': 'socks5://localhost:9150' } url = 'http://httpbin.org/ip' try: response = requests.get(url, proxies=proxies, timeout=10) response.raise_for_status() print(response.text) except requests.exceptions.RequestException as e: print(f"请求出错: {e}")
情况2:使用独立Tor服务(端口9050)
如果确认Tor服务已在9050端口运行,保持原端口配置即可,但要确保服务处于启动状态。
额外验证步骤
如果还是有问题,可以先用curl测试代理是否可用:
# 针对Tor Browser端口 curl --socks5 localhost:9150 http://httpbin.org/ip # 针对独立Tor服务端口 curl --socks5 localhost:9050 http://httpbin.org/ip
如果curl能返回正常的IP结果,说明代理没问题,再回头检查代码细节。
内容的提问来源于stack exchange,提问作者Vaxe
相关产品推荐
相关产品推荐

