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

如何配置Azure托管代理运行Selenium Java脚本访问内部开发URL?

解决Azure托管代理运行Selenium脚本时无法解析企业内部URL的问题

1. 先定位问题根源

  • 在Azure代理的作业中添加诊断步骤:
    • 执行nslookup <你的内部开发域名>,确认是否真的是DNS解析失败
    • 执行ping <内部资源IP>或telnet <内部IP> <端口>,测试直接用IP能否连通——如果IP能通,问题集中在DNS配置;如果IP也不通,就是网络路由或防火墙拦截

2. 配置代理使用企业内部DNS

Azure托管代理默认用Azure公共DNS,无法解析内部域名:

  • 进入Azure DevOps组织设置 → 代理池 → 目标托管代理所在的池 → 代理配置面板
  • 在网络设置中添加企业IT部门提供的内部DNS服务器IP
  • 保存配置后重启代理,再用nslookup验证解析结果

3. 通过VNet集成打通内部网络

如果企业内部资源已通过VPN/ExpressRoute连接到Azure VNet:

  • 在代理池设置中启用VNet集成,选择关联企业内部网络的VNet和子网
  • 确保VNet的NSG规则允许代理子网向内部资源发起出站流量
  • 确认VNet的DNS服务器已配置为企业内部DNS,让代理通过VNet直接解析内部域名

4. 在作业中自动建立VPN连接

如果必须通过VPN访问内部资源:

  • 将企业VPN的配置文件上传到Azure DevOps的安全文件库,确保权限安全
  • 在Selenium脚本执行前,添加命令行步骤调用VPN客户端命令行(比如OpenVPN:openvpn --config ./vpn-config.ovpn)
  • 连接成功后再执行Selenium脚本,避免因VPN未就绪导致的访问失败

5. 配置Selenium使用企业代理

如果企业要求通过内部代理访问资源,在Java脚本中添加代理配置:

// 设置HTTP/HTTPS代理
System.setProperty("http.proxyHost", "企业代理服务器IP");
System.setProperty("http.proxyPort", "代理端口号");
System.setProperty("https.proxyHost", "企业代理服务器IP");
System.setProperty("https.proxyPort", "代理端口号");

// 初始化WebDriver
WebDriver driver = new ChromeDriver();

6. 协同IT部门排查防火墙规则

  • 提供Azure托管代理的公网IP给IT,确认是否被加入企业防火墙的出站白名单
  • 检查企业防火墙是否拦截了代理到内部资源的端口(比如HTTP/HTTPS的80/443)
  • 确认VPN连接所需的端口(如OpenVPN的1194 UDP)未被代理操作系统或企业防火墙拦截

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:32:10