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

Selenium Hub无法注册远程Docker节点,如何让其识别真实IP?

Selenium Hub无法识别节点真实IP的解决方法

问题场景

我在两台不同的Linux EC2实例上分别部署了Selenium Hub和节点:

  • 部署Hub的命令:
    $ docker run -d -p 4444:4444 --name selenium-hub selenium/hub:3.141.0
    
  • 部署节点并连接Hub的命令:
    $ docker run -d -p 5555:5555 -e REMOTE_HOST="http://<Node-IP>:5555" -e HUB_PORT_4444_TCP_ADDR="<Hub-IP>" -e HUB_PORT_4444_TCP_PORT="4444" --name chrome-node selenium/node-chrome:3.141.0
    

节点日志显示已成功连接Hub,但Hub日志却输出:

04:06:01.912 INFO [DefaultGridRegistry.add] - Registered a node http://172.17.0.6:5555
04:06:18.054 INFO [DefaultRemoteProxy.onEvent] - Marking the node http://172.17.0.6:5555 as down: cannot reach the node for 2 tries
04:06:38.502 INFO [DefaultRemoteProxy.onEvent] - Unregistering the node http://172.17.0.6:5555 because it's been down for 64512 milliseconds

日志里的节点IP是Docker容器内部的私网IP(172.17.0.6),并非我指定的EC2实例真实IP,导致Hub无法正常访问节点,最终将节点标记为下线。

问题原因

Selenium 3.141.0版本的节点镜像存在参数优先级问题:即使设置了REMOTE_HOST,节点仍会默认将自身的Docker内部IP上报给Hub。而Hub所在的EC2实例无法跨实例访问节点容器的内部IP,因此出现连接失败,进而标记节点为不可用。

解决方法

方法1:通过SE_OPTS强制指定节点注册IP

启动节点容器时,添加SE_OPTS参数,强制节点使用EC2实例的真实IP和端口注册到Hub,命令如下:

$ docker run -d -p 5555:5555 \
  -e REMOTE_HOST="http://<Node-EC2-IP>:5555" \
  -e HUB_PORT_4444_TCP_ADDR="<Hub-EC2-IP>" \
  -e HUB_PORT_4444_TCP_PORT="4444" \
  -e SE_OPTS="-host <Node-EC2-IP> -port 5555" \
  --name chrome-node selenium/node-chrome:3.141.0

替换<Node-EC2-IP>为节点所在EC2实例的内网/公网IP(确保Hub能访问该IP),<Hub-EC2-IP>替换为Hub所在EC2实例的IP。

方法2:使用Docker Host网络模式

让节点容器直接使用宿主机的网络栈,这样节点会以EC2实例的IP注册到Hub,避免内部IP的问题:

$ docker run -d --network host \
  -e REMOTE_HOST="http://<Node-EC2-IP>:5555" \
  -e HUB_PORT_4444_TCP_ADDR="<Hub-EC2-IP>" \
  -e HUB_PORT_4444_TCP_PORT="4444" \
  --name chrome-node selenium/node-chrome:3.141.0

注意:使用--network host时,不需要再指定-p 5555:5555端口映射,容器直接复用宿主机的5555端口。

验证方式

启动节点后,访问Hub的管理控制台(http://<Hub-EC2-IP>:4444/grid/console),确认节点注册的IP为EC2实例的真实IP,同时观察Hub日志,确认不再出现节点下线的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:09:25