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

如何修改Selenium WebDriver的DNS为自定义DNS以解决访问异常

解决Selenium Chrome驱动DNS_PROBE_FINISHED_NXDOMAIN错误的方案

方法1:正确配置DNS over HTTPS(DoH)

你之前的DoH模板配置有误,Chrome要求templates字段是完整的DoH查询URL,而非单纯的IP地址。CloudFlare的DoH模板地址是https://cloudflare-dns.com/dns-query,修正后的代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

chrome_options = Options()
local_state = {
    "dns_over_https.mode": "secure",  # 强制启用DoH,避免自动 fallback 到系统DNS
    "dns_over_https.templates": "https://cloudflare-dns.com/dns-query"
}
chrome_options.add_experimental_option('localState', local_state)

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

方法2:直接通过启动参数指定DNS服务器

如果DoH配置不生效,可以直接给Chrome传递DNS服务器参数,绕过系统默认DNS:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service

chrome_options = Options()
# 指定CloudFlare的主、备DNS服务器,多个用逗号分隔
chrome_options.add_argument('--dns-servers=1.1.1.1,1.0.0.1')

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

验证DNS配置生效

可以访问chrome://settings/security查看DoH状态,或者访问https://1.1.1.1/help确认当前使用的DNS服务器是否为CloudFlare。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:50:20