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

Azure中run-command执行ping无响应问题排查求助

问题排查与解决方案

核心问题分析

你遇到的Run Command超时问题,大概率是网络协议限制导致的:ping命令依赖ICMP协议,但你仅配置了TCP 443的出站规则,ICMP包无法正常发送/接收,导致ping脚本一直处于等待状态,最终触发Run Command的超时机制。

具体排查步骤

  • 检查NSG出站规则
    确认网络安全组(NSG)是否允许ICMP协议出站:

    • 如果你删除了默认的AllowAllOutbound规则,仅保留了TCP 443的允许规则,ICMP会被默认拒绝。需要添加一条出站规则:协议选ICMP,动作允许,优先级设为高于拒绝类规则。
    • 如果保留了默认规则,排查VM内部防火墙(如iptables、ufw)是否阻止了ICMP出站/入站。
  • 验证Run Command基础功能
    先执行无网络依赖的脚本,确认Run Command本身正常工作:

    az vm run-command invoke -g MYRG -n VMname --command-id RunShellScript --scripts "echo 'test success'"
    

    如果该命令能正常返回结果,说明Run Command的认证、代理通信都没问题,问题集中在ping的网络环节。

  • 检查Azure来宾代理状态
    Run Command依赖Azure Guest Agent在VM内部执行脚本,确认代理运行正常:

    az vm get-instance-view -g MYRG -n VMname --query "instanceView.extensions[?name=='Microsoft.Azure.GuestAgent'].statuses[0].displayStatus"
    

    返回结果应为Provisioning succeeded,否则需要重新安装来宾代理。

  • 查看脚本执行日志
    登录VM查看Run Command的执行日志,定位具体卡壳原因:

    • 日志路径:/var/log/azure/Microsoft.Azure.Extensions.CustomScript/(不同Linux发行版可能略有差异)
    • 检查日志中是否有ICMP相关的错误提示,或脚本未退出的记录。

解决方案

  1. 添加ICMP出站规则:在NSG中新增允许ICMP协议的出站规则,确保ping能发送数据包并接收响应。
  2. 调整脚本避免无限等待:如果暂时无法修改NSG,可以修改ping脚本,添加超时参数强制退出,比如:
    ping -c 5 -W 2 8.8.8.8
    
    -W 2表示每个包等待2秒超时,即使无响应,脚本也会在10秒内结束,避免Run Command超时。
  3. 修复来宾代理:如果代理状态异常,重新安装对应Linux发行版的Azure来宾代理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:22:39