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

私有网络环境下Self-Hosted Agent与Azure DevOps的连接问题求助

Azure DevOps自托管代理容器连接失败排查方案

场景回顾

vnet-a内的容器实例作为Azure DevOps自托管代理,所有出站流量经vnet-b的防火墙路由。启动后日志显示[1;36m1. Determining matching Azure Pipelines agent...[0m,代理无法连接DevOps服务器。已完成配置:

  • 容器开放出站TCP 443、80端口
  • 防火墙添加出站规则,允许容器IP向Azure DevOps官方指定的4个IP段发起443端口流量

排查步骤

1. 补全Azure DevOps IP范围规则

Azure DevOps的IP范围随区域动态更新,并非仅固定4个地址。需确认防火墙规则覆盖了代理所在区域的全部DevOps IP段,可通过官方发布的实时IP列表文件获取完整范围,避免遗漏。

2. 验证DNS解析能力

在容器内执行以下命令,确认能正确解析DevOps服务域名:

nslookup dev.azure.com
# 或
dig dev.azure.com

若解析失败,需检查vnet的DNS配置是否正确,同时确保防火墙允许DNS出站流量(UDP/TCP 53端口)。

3. 测试端口连通性

在容器内测试与DevOps IP的443端口连通性:

telnet <DevOps_IP> 443
# 或
nc -zv <DevOps_IP> 443

若连接超时,需排查:

  • 防火墙规则的源IP是否为容器的私网IP(而非公网IP)
  • 防火墙路由表是否正确将vnet-a流量导向互联网
  • 容器所属的网络安全组(NSG)是否限制了出站流量

4. 核对代理启动参数

确认容器启动时传入的参数正确,包括DevOps组织URL、PAT令牌等。错误参数会导致代理无法发起有效连接,可重新启动容器并明确指定参数:

docker run -e AZP_URL=https://dev.azure.com/你的组织名 -e AZP_TOKEN=你的PAT令牌 -e AZP_AGENT_NAME=代理名称 microsoft/azure-pipelines-agent:latest

5. 抓包分析网络流量

若以上步骤无效,在容器内抓包分析443端口流量:

tcpdump -i any port 443 -w devops-traffic.pcap

通过分析抓包文件,可直观查看连接请求的状态(如SYN包是否收到ACK响应),定位流量是否被拦截。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:25:16