Windows 10系统中Tor服务的安装与运行方法及Python洋葱站点请求脚本适配问题
我来帮你搞定Windows 10上的Tor服务部署和Python脚本适配问题——毕竟我之前也碰到过类似的跨系统兼容坑,一步步来:
一、在Windows 10上安装并配置Tor服务
和Ubuntu自带的Tor服务不同,Windows上我们需要用Tor官方提供的Expert Bundle(专业版包)来搭建后台服务,而不是普通的Tor浏览器(它是图形界面的客户端):
下载Tor Expert Bundle
去Tor官方的Expert Bundle下载页面,选择对应你Windows系统的版本(32位或64位),下载后得到一个压缩包。解压到合适的路径
把压缩包解压到一个无中文、无空格的路径下,比如C:\Tor。解压后你会看到Tor、Data等文件夹。配置Tor配置文件
进入C:\Tor\Data\Tor目录,找到torrc.sample文件,复制一份并重命名为torrc(去掉.sample后缀)。用记事本或代码编辑器打开这个文件,做以下调整:- 找到
SocksPort 9050这一行,去掉前面的注释符号#,确保SOCKS代理端口是9050(默认值,不要随便改,除非你知道自己在做什么)。 - 确认
DataDirectory路径指向当前的Data\Tor文件夹,比如DataDirectory C:\Tor\Data\Tor,如果这一行被注释了就去掉#。
- 找到
安装并启动Tor服务
打开管理员模式的命令提示符(CMD),进入Tor的Tor文件夹路径:cd C:\Tor\Tor执行安装命令:
tor --service install安装完成后,启动服务:
tor --service start以后每次开机Tor服务都会自动启动,你也可以通过
tor --service stop停止服务,tor --service remove卸载服务。验证Tor服务是否正常运行
- 打开任务管理器,切换到「服务」标签,找到名为
Tor Win32 Service的服务,确认状态是「正在运行」。 - 用命令测试端口监听:
如果返回一行结果,说明9050端口已经被Tor服务占用,服务运行正常。netstat -ano | findstr :9050
- 打开任务管理器,切换到「服务」标签,找到名为
二、调整Python脚本适配Windows环境
你的Ubuntu脚本在Windows上失效,大概率是代理配置或者依赖问题,按以下步骤调整:
确保安装了正确的依赖
如果用的是requests库,Windows上需要单独安装SOCKS代理支持:pip install requests[socks]检查脚本中的代理配置
确保脚本里的代理指向Tor服务的SOCKS端口(默认9050),示例代码如下:import requests # 配置Tor SOCKS代理 proxies = { 'http': 'socks5://127.0.0.1:9050', 'https': 'socks5://127.0.0.1:9050' } try: # 替换成你要访问的洋葱站点 response = requests.get('http://example.onion', proxies=proxies, timeout=30) response.raise_for_status() print(response.text) except Exception as e: print(f"请求失败:{str(e)}")如果你用的是
urllib库,代理配置如下:import urllib.request from socks import SOCKS5ProxyHandler # 设置Tor SOCKS代理 proxy_handler = SOCKS5ProxyHandler(('127.0.0.1', 9050)) opener = urllib.request.build_opener(proxy_handler) urllib.request.install_opener(opener) try: response = urllib.request.urlopen('http://example.onion', timeout=30) print(response.read().decode('utf-8')) except Exception as e: print(f"请求失败:{str(e)}")关键注意点
- 不要把代理写成
socks://,一定要用socks5://,部分库对协议前缀的识别很严格。 - 确保Tor服务的
torrc文件中没有限制本地连接(默认AllowLocalhost 1是开启的,不需要额外修改)。
- 不要把代理写成
三、常见问题排查
如果调整后还是不行,试试这些排查步骤:
- 先用Tor浏览器手动访问目标洋葱站点,确认站点本身是可访问的,排除站点故障的可能。
- 暂时关闭Windows防火墙和第三方安全软件,测试是否是防火墙阻止了Tor或Python的网络请求。
- 检查Tor服务的日志:日志文件在
C:\Tor\Data\Tor\notice.log,打开看看有没有报错信息,比如端口被占用、权限不足等。 - 确认Python脚本运行时没有使用代理软件(比如VPN),避免代理冲突。
内容的提问来源于stack exchange,提问作者manoj adhikari




