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

Docker部署Selenium Grid容器公网访问极慢网页加载失败如何解决?

常见遗漏网络配置

  • DNS配置异常:Docker默认使用8.8.8.8、8.8.4.4作为DNS服务器,如果你所在网络无法正常访问谷歌公共DNS,就会出现解析超时、仅缓存站点可访问的情况。你提到的S3演示页可能因为本地存在DNS缓存,才能被勉强加载,其他站点解析直接失败。
  • MTU值不匹配:如果你的主机使用PPPoE拨号、VPN、云服务器网络,网卡MTU通常会低于默认的1500,而Docker网桥默认MTU为1500,会导致TCP大包丢包、重传,表现为小体积页面可加载,大页面、多请求站点完全无法访问。
  • 出站流量规则限制:主机侧的iptables规则、防火墙、全局代理配置未覆盖Docker容器网段,会导致容器出站流量被拦截、仅部分白名单域名可访问。
  • IPv6配置冲突:主机开启IPv6但Docker未配置IPv6网络支持时,容器会优先尝试IPv6建立连接,等待超时后才回退到IPv4,会出现加载极慢、甚至连接失败的问题。

公网网络调试方法

直接进入Selenium节点容器执行命令排查即可,步骤如下:

  1. 先获取运行中的chrome/firefox容器ID:docker ps
  2. 进入容器交互终端:docker exec -it <容器ID> bash
  3. 测试三层连通性:执行ping 1.1.1.1 -c 10,如果延迟高于100ms、丢包率超过10%,说明主机到公网的基础链路有问题
  4. 测试DNS解析:执行time nslookup google.com,如果解析耗时超过1s、返回错误,可确定是DNS问题
  5. 测试公网下载速度:执行curl -o /dev/null -w "下载速度:%{speed_download} byte/s\n" https://www.baidu.com,可直观看到容器到公网的实际带宽

快速修复方案

  • 针对DNS问题:在docker-compose.yml中为节点服务添加DNS配置即可,示例如下:
chrome: 
    image: selenium/node-chrome-debug:latest
    shm_size: 4gb
    depends_on:
      - hub
    environment:
      - HUB_HOST=hub
    ports:
      - '7777:5900'
    dns:
      - 223.5.5.5 # 可替换为你本地运营商的DNS,或公共可用DNS
      - 114.114.114.114
  • 针对MTU不匹配:在docker-compose.yml中自定义网络并指定MTU为和主机一致的值,示例如下:
networks:
  default:
    driver: bridge
    options:
      com.docker.network.driver.mtu: 1450 # 替换为你主机网卡的实际MTU值
  • 针对代理/防火墙问题:检查主机iptables规则是否允许Docker网段172.17.0.0/16的出站流量,若使用全局代理,将Docker网段加入代理白名单即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:51:00