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

Azure DevOps Ubuntu自托管代理容器实例的最小网络规则配置咨询

Azure DevOps自托管代理容器(ACI环境)网络规则及故障排查

一、最小入站/出站网络规则

入站规则

  • Azure DevOps自托管代理不需要开放任何入站端口。代理是主动向Azure DevOps服务发起连接并维持会话的,不存在外部主动向内发起的请求需求,所以入站规则可以设置为拒绝所有流量。

出站规则

代理正常运行仅需确保TCP 443端口的出站访问,覆盖以下核心域名:

  • Azure DevOps组织端点:dev.azure.com 或你的自定义域名(如xxx.visualstudio.com)
  • 微软身份验证服务:login.microsoftonline.com(用于代理身份验证)
  • Azure存储服务:*.blob.core.windows.net、*.azureedge.net(用于下载流水线任务、工具依赖)

如果你的流水线需要访问外部包源(如NuGet、npm)或其他Azure服务,再额外添加对应域名的443端口出站规则即可。

二、"Determining matching Azure Pipelines agent..." 报错排查

你遇到的这个错误,本质是代理容器无法连接到Azure DevOps服务并获取代理池信息,常见解决方向:

  1. 补全出站域名访问权限
    只开放80/443端口不够,必须确保容器能访问前面提到的3类核心域名,尤其是login.microsoftonline.com——很多人会漏掉这个身份验证域名,导致代理无法完成注册。
  2. 核对启动参数正确性
    检查启动容器时传入的环境变量:
    • AZP_URL:必须是你的Azure DevOps组织完整URL(比如https://dev.azure.com/your-org-name)
    • AZP_TOKEN:个人访问令牌(PAT)必须拥有**Agent Pools (Read & manage)和Project Collection (Read)**权限
    • AZP_POOL:代理池名称必须和Azure DevOps里创建的完全一致(大小写敏感)
      示例正确启动命令片段:
    docker run -e AZP_URL=https://dev.azure.com/your-org -e AZP_TOKEN=your-valid-pat -e AZP_POOL=your-pool-name mcr.microsoft.com/azure-pipelines-agent:ubuntu-latest
    
  3. 排查ACI网络配置
    • 如果ACI部署在虚拟网络中,检查子网关联的NSG是否阻止了443端口的出站流量到上述域名
    • 在容器内执行nslookup dev.azure.com和nslookup login.microsoftonline.com,验证DNS解析是否正常
  4. 确认令牌有效性
    检查你的PAT是否过期,或者权限是否被修改——如果令牌权限不足,代理会无法读取代理池信息,导致卡在这个步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:01:37