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

使用Selenium WebDriver Firefox通过Tor Socks5 9050端口连接网站失败

嘿,我之前也踩过Tor + Firefox + Selenium连接不上的坑,咱们一步步来排查和解决:

第一步:先确认Tor服务真的在跑

很多时候连接失败根本不是代码的问题,而是Tor没启动或者端口没监听。

  • 先手动验证9050端口是否被占用:
    • Linux/macOS终端运行:netstat -an | grep 9050
    • Windows命令提示符运行:netstat -ano | findstr :9050
      如果能看到127.0.0.1:9050处于LISTENING状态,说明Tor在正常工作;如果没有,先启动Tor服务:
    • Linux:sudo systemctl start tor
    • Windows:打开Tor Browser(它会自动启动后台Tor服务),或者用Tor服务管理器手动启动。
第二步:修正并完善Firefox代理配置

你的代码已经有了基础框架,但有几个细节要补,而且注意变量名要一致(最后一行的pr...应该是profile吧?)。试试这个完整的配置:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

# 初始化Firefox配置
profile = webdriver.FirefoxProfile()
# 设置代理类型为手动配置
profile.set_preference('network.proxy.type', 1)
# 指定SOCKS5版本
profile.set_preference("network.proxy.socks_version", 5)
# SOCKS代理地址和端口
profile.set_preference('network.proxy.socks', '127.0.0.1')
profile.set_preference('network.proxy.socks_port', 9050)
# 强制DNS通过Tor解析(避免DNS泄露,也能解决部分域名无法解析的问题)
profile.set_preference("network.proxy.socks_remote_dns", True)
# 让HTTP和HTTPS请求也走SOCKS代理(很多人会漏掉这步)
profile.set_preference('network.proxy.http', '127.0.0.1')
profile.set_preference('network.proxy.http_port', 9050)
profile.set_preference('network.proxy.ssl', '127.0.0.1')
profile.set_preference('network.proxy.ssl_port', 9050)
# 不绕过任何地址(确保所有请求都走Tor)
profile.set_preference('network.proxy.no_proxies_on', '')

# 可选:如果需要后台运行,开启无头模式
options = Options()
options.add_argument('--headless')

# 启动浏览器(注意变量名要对,别写错成pr...)
browser = webdriver.Firefox(firefox_profile=profile, options=options)
# 测试连接Tor验证页面
browser.get('https://check.torproject.org/')
print(browser.title)
第三步:检查版本兼容性

如果配置没问题还是连不上,大概率是版本不匹配:

  • 确保Selenium版本和Firefox版本对应:比如Selenium 4.x需要搭配最新的geckodriver,Firefox最好用稳定版(别用太老的版本)。
  • 下载对应版本的geckodriver,放到系统PATH里,或者在初始化时指定路径:webdriver.Firefox(executable_path='/你的geckodriver路径', firefox_profile=profile)
第四步:偷懒但有效的方法——直接用Tor Browser的配置

如果手动配置总是出问题,不如直接用Tor Browser自带的profile,它已经把所有Tor相关的设置都调好的:

# 替换成你Tor Browser的profile路径
# Windows示例:
tor_profile_path = r'C:\Users\你的用户名\Desktop\Tor Browser\Browser\TorBrowser\Data\Browser\profile.default'
# Linux示例:
# tor_profile_path = '/home/你的用户名/tor-browser_en-US/Browser/TorBrowser/Data/Browser/profile.default'

profile = webdriver.FirefoxProfile(tor_profile_path)
browser = webdriver.Firefox(firefox_profile=profile)
browser.get('https://check.torproject.org/')

这样基本不会出错,因为Tor Browser本身就是为Tor网络优化过的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:29:36