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

Python:Selenium配置Tor代理无法建立连接

解决Firefox Selenium连接Tor代理时的“Proxy server is refusing connections”错误

嘿,我来帮你搞定这个Tor代理连接失败的问题!先从几个常见的排查点和修复方案说起:

第一步:先确认Tor服务是否在运行

9050是Tor默认的SOCKS端口,但如果Tor本身没启动,肯定会出现代理拒绝连接的情况。你可以这么检查:

  • Windows:打开命令提示符,输入 netstat -ano | findstr :9050,看看有没有进程在监听这个端口
  • Linux/macOS:用终端执行 lsof -i :9050,确认Tor服务处于运行状态

如果Tor没启动,先打开Tor Browser或者启动Tor系统服务再试。

第二步:修正Firefox代理配置(关键!)

你的代码里漏了一个Tor必需的配置:让Firefox使用SOCKS代理的远程DNS解析。加上这行就能解决大部分连接问题:

profile.set_preference("network.proxy.socks_remote_dns", True)

第三步:适配新版本Selenium的API

如果你的Selenium版本比较新,FirefoxProfile和FirefoxBinary的用法已经被弃用了,改用Options类配置更稳妥。重构后的完整代码如下:

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

# 配置Firefox选项
firefox_options = Options()
firefox_options.set_preference("network.proxy.type", 1)
firefox_options.set_preference("network.proxy.socks_version", 5)
firefox_options.set_preference("network.proxy.socks", "127.0.0.1")
firefox_options.set_preference("network.proxy.socks_port", 9050)
firefox_options.set_preference("network.proxy.socks_remote_dns", True)  # 启用远程DNS解析
firefox_options.set_preference("network.http.use-cache", False)
firefox_options.set_preference("general.useragent.override", "Firefox")

# 初始化驱动
driver = webdriver.Firefox(options=firefox_options)

def interactWithSite(driver):
    driver.get("https://check.torproject.org/")

interactWithSite(driver)

第四步:检查Tor的监听配置

如果还是不行,打开Tor的配置文件(torrc),确认下面这行没有被注释掉:

SocksPort 127.0.0.1:9050

修改后记得重启Tor服务。

终极方案:直接用Tor Browser的预设配置

如果上面的方法都没效果,干脆直接加载Tor Browser的配置文件——毕竟Tor Browser已经预设了所有正确的Tor代理参数。找到Tor Browser的profile目录(比如Windows上的%APPDATA%\TorBrowser\Browser\TorBrowser\Profiles\*.default),然后在代码里指定:

firefox_options.profile = r"C:\你的TorBrowserProfile路径"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 10:47:47