启用Hub机器防火墙时Selenium Hub与节点无法连接问题咨询
解决Selenium Hub启用Windows防火墙后无法接收节点请求的问题
我之前也碰到过一模一样的问题!Windows防火墙默认会阻止外部机器对Hub端口的访问,这就是节点连不上的核心原因。下面是几个亲测有效的解决办法,按优先级来:
1. 给Selenium Hub的端口添加入站规则
这是最关键的一步,防火墙默认会拦截外部对Hub端口的请求,必须手动放行:
- 打开Windows Defender防火墙,点击「高级设置」
- 选择左侧的「入站规则」,然后点击右侧的「新建规则」
- 规则类型选「端口」,点击「下一步」
- 选择「TCP」协议,在「特定本地端口」里输入Hub默认的
4444(如果你的Hub用了自定义端口,就填对应的数字),继续下一步 - 选择「允许连接」,点击「下一步」
- 根据你的网络环境勾选适用的网络类型(一般全选「域」「专用」「公网」就没问题),点击「下一步」
- 给规则起个清晰的名字,比如「Selenium Hub 4444端口允许外部访问」,最后点击「完成」
2. 确认Hub启动时绑定了正确的IP
很多人踩过这个坑:Hub默认绑定localhost或者127.0.0.1,这样只有Hub本机能访问,外部节点根本连不上。启动Hub时必须指定绑定到机器的局域网/公网IP,命令示例如下:
java -jar selenium-server-4.x.x.jar hub --host 192.168.1.100 --port 4444
把上面的192.168.1.100换成你Hub机器的实际IP就行。
3. 检查节点的连接命令是否正确
节点启动时必须指向Hub的实际IP,而不是localhost!正确的节点启动命令应该是这样的:
java -jar selenium-server-4.x.x.jar node --hub http://192.168.1.100:4444/grid/register
如果写成http://localhost:4444,节点只会尝试连接自己本机的Hub,自然连不上远程的Hub机器。
4. 临时验证:关闭防火墙排查问题
如果上面的步骤都试过还是不行,可以临时关闭Windows防火墙,再启动节点试试。如果这时候能成功连接,说明问题肯定出在防火墙规则上,回去检查入站规则的端口、协议、网络类型是否配置正确。
内容的提问来源于stack exchange,提问作者gowri meena
相关产品推荐
相关产品推荐

