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

无法将Azure DevOps连接至Azure VM上的SonarQube

解决Azure NSG服务标签(AzureDevOps/AzureCloud)无法访问SonarQube的问题

排查与修复步骤

  • 确认服务标签覆盖范围
    AzureDevOps服务标签仅包含微软托管Azure DevOps服务的官方出站IP段。如果你的流水线用的是自托管代理,代理的公网IP不在该标签范围内,必然会连接失败。

    • 托管代理场景:务必指定对应区域的服务标签(比如AzureDevOps.EastUS),全局AzureDevOps标签虽包含所有区域,但部分场景下区域级标签匹配更精准。
    • 自托管代理场景:直接将代理的公网IP加入NSG入站规则即可,因为自托管代理IP不在Azure官方服务标签覆盖范围内。
  • 检查NSG规则优先级
    NSG规则按数字越小优先级越高执行,确保你配置的「允许AzureDevOps访问9000」规则优先级(比如设为100)高于默认的「拒绝所有入站」规则(默认优先级65500),避免规则被覆盖。

  • 验证网卡与NSG的关联关系
    确认SonarQube所在VM的网卡,确实绑定了配置了服务标签规则的NSG,避免出现网卡关联其他未配置规则NSG的情况。

  • 核对服务标签的实际IP段
    用Azure CLI命令查看目标服务标签对应的IP范围,再对比流水线请求的实际来源IP(可从流水线日志或第三方工具获取),确认来源IP在标签覆盖范围内:

    az network list-service-tags --location <你的VM所属区域> --query "values[?name=='AzureDevOps'].properties.addressPrefixes"
    
  • 排查上层网络限制
    如果VM所在虚拟网络关联了Azure防火墙,需在防火墙上同步配置对应允许规则,仅NSG放行无法绕过防火墙限制。

快速验证方法

临时添加一条NSG入站规则,将来源设为流水线执行的实际公网IP(可从超时日志的address字段或请求追踪工具获取),如果能正常连接,说明服务标签未覆盖该IP,此时需将规则调整为指定IP/IP段。

错误日志分析:ETIMEDOUT表明请求未抵达SonarQube所在VM,核心原因是来源IP不在NSG允许范围内,或规则未生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:23:19