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

如何在Selenium 4+Python+Firefox中配置带认证的Socks5代理

Selenium 4 + Firefox 配置带用户名密码认证的Socks5代理(无头模式)

以下是无需额外扩展、无需UI操作的解决方案,适配Ubuntu 22.04服务器无头运行场景:

from selenium import webdriver

options = webdriver.FirefoxOptions()
# 代理信息配置
PROXY_ADDR = 'XXX.XXX.XXX.XXX:YYYY'
PROXY_USER = '你的代理用户名'
PROXY_PASS = '你的代理密码'

PROXY_IP, PROXY_PORT = PROXY_ADDR.split(':')

# 基础代理参数设置
options.set_preference('network.proxy.type', 1)  # 手动指定代理模式
options.set_preference('network.proxy.socks', PROXY_IP)
options.set_preference('network.proxy.socks_port', int(PROXY_PORT))
options.set_preference('network.proxy.socks_version', 5)  # 明确指定Socks5协议

# 代理认证参数
options.set_preference('network.proxy.socks_username', PROXY_USER)
options.set_preference('network.proxy.socks_password', PROXY_PASS)

# 无头模式及服务器环境适配参数
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

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

# 测试示例:访问验证代理IP
driver.get('https://httpbin.org/ip')
print(driver.page_source)

driver.quit()

关键参数说明

  • network.proxy.type=1:强制使用手动配置的代理,而非系统自动检测或无代理模式
  • network.proxy.socks_version=5:明确指定Socks5协议,避免默认值可能引发的兼容性问题
  • network.proxy.socks_username/network.proxy.socks_password:直接传入认证凭证,Firefox会自动完成代理认证,无需任何UI交互

注意事项

  1. 确认Dante代理服务器已正确配置用户名密码认证(检查/etc/danted.conf中的client pass规则,需包含method username password配置)
  2. 适配版本:该方案适用于Firefox 90+ 配合 Selenium 4.x,低版本可能存在参数兼容问题
  3. 生产环境建议:不要硬编码用户名密码,可从环境变量或加密配置文件中读取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:40:30