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

VPN环境下注册Selenium Grid节点遇Permission denied错误求助

解决VPN环境下Selenium Node注册Hub时的“Permission denied: connect”错误

你已经在VPN环境中尝试搭建Selenium Grid,执行的Hub启动命令如下:

java -jar selenium-server-standalone-2.53.0.jar -role hub

Node启动命令为:

java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://ip:5555/grid/register -Dwebdriver.ie.driver="C:\new folder\IEDriverServer.exe" -Dwebdriver.chrome.driver="C:\New folder\chromedriver.exe" -browser "browserName=internet explorer,version=11,maxInstances=5,seleniumProtocol=WebDriver" -browser "browserName=chrome,version=latest,maxInstances=5,seleniumProtocol=WebDriver" -browser "browserName=firefox,version=25,maxInstances=5,seleniumProtocol=WebDriver"

但遇到了如下错误:

I/O exception (java.net.SocketException) caught when processing request to {}->http://10.97.101.216:5555: Permission denied: connect

结合VPN环境的特性,我整理了以下排查和解决步骤:

可能的原因及修复方案

1. 确认Hub的监听地址和端口

首先要确保Selenium Hub是监听在VPN可访问的IP上,而不是仅绑定localhost(127.0.0.1)。启动Hub时,查看控制台输出,应该能看到类似这样的内容:

Selenium Grid hub is up and running
Nodes should register to http://<你的VPN IP>:5555/grid/register/

如果Hub只绑定了localhost,那么即使在VPN环境下,其他机器的Node也无法连接它。你可以通过-host参数强制Hub监听你的VPN IP:

java -jar selenium-server-standalone-2.53.0.jar -role hub -host 10.97.101.216

2. 检查防火墙限制(Hub和Node机器都要查)

“Permission denied: connect”错误通常是防火墙规则阻止了5555端口的流量:

  • 在Hub机器上:确保允许VPN连接设备访问5555端口的入站流量。你可能需要给java.exe进程添加防火墙例外,或者直接开放5555端口。
  • 在Node机器上:检查是否阻止了前往Hub IP和5555端口的出站流量。有些VPN环境会限制特定端口的出站连接。

3. 验证VPN网络连通性

即使你已经连接VPN,也要确认Node机器能正常访问Hub的IP:

  • 在Node机器的命令提示符中执行:
    ping 10.97.101.216
    
    如果ping不通,说明存在VPN路由问题——联系网络管理员确认两台机器是否在同一个VPN子网内。
  • 也可以用telnet测试端口是否可达:
    telnet 10.97.101.216 5555
    
    如果这个命令失败,说明端口肯定被某个环节拦截了。

4. 检查代理干扰

有些VPN环境会强制流量通过代理服务器。如果是这种情况,你需要在Node的Java命令中添加代理参数:

java -Dhttp.proxyHost=<代理IP> -Dhttp.proxyPort=<代理端口> -Dhttps.proxyHost=<代理IP> -Dhttps.proxyPort=<代理端口> -jar selenium-server-standalone-2.53.0.jar -role node -hub http://10.97.101.216:5555/grid/register ...

注意:如果代理需要认证,还要加上-Dhttp.proxyUser=<用户名> -Dhttp.proxyPassword=<密码>参数。

5. 确保Selenium版本兼容性

虽然可能性较低,但Hub和Node的Selenium版本不匹配也可能导致连接问题。你现在用的是同一个selenium-server-standalone-2.53.0.jar,这很好,但还是要确认没有不小心用错版本。

最后建议

如果以上方法都没解决问题,尝试开启Hub和Node的 verbose 日志模式来获取更详细的错误信息:

  • Hub日志启动命令:
    java -jar selenium-server-standalone-2.53.0.jar -role hub -log hub.log -debug
    
  • Node日志启动命令:
    java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://10.97.101.216:5555/grid/register -log node.log -debug ...
    

查看生成的日志文件,里面的详细错误信息能帮你定位根本原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:38:48