通过Azure Databricks工作流触发Azure VM脚本遇SSH超时问题排查
方案可行性与问题排查
方案是否可行?
完全可行。同一虚拟网络(VNet)下的Azure Databricks工作流可以通过SSH连接Azure虚拟机(AVM),触发内部脚本并实现输入变量传递、输出接收,是内网资源协同的常规场景。
可能的操作错误及排查方向
1. 错误使用公网域名连接
你当前使用的myvirtualmachine.westeurope.cloudapp.azure.com是AVM的公网FQDN,同一VNet内的资源应优先使用内网IP或内网FQDN(格式通常为myvirtualmachine.<vnet-name>.internal.cloudapp.net)进行连接。公网域名会走公网链路,大概率被VNet的网络安全规则拦截,导致连接超时。
2. 网络安全组(NSG)规则配置不当
- AVM的NSG入站规则:需明确允许Databricks集群所在子网的CIDR段访问22端口,而不是仅允许公网IP(0.0.0.0/0)。如果之前的规则是开放所有公网IP,VNet内的子网流量可能未被纳入允许范围。
- Databricks集群子网的NSG出站规则:确认允许该子网向AVM所在子网发起22端口的出站请求。
3. Databricks集群网络配置问题
- 确认集群部署在VNet注入工作区的专用子网内,而非默认公共子网。公共子网的集群可能无法直接访问VNet内的私有资源。
- 如果集群启用了无公网IP模式,必须使用AVM的内网地址连接,同时确保NSG规则覆盖子网间的流量。
4. 连通性测试建议
先在Databricks笔记本中执行以下命令验证网络连通性,排除网络问题后再处理SSH认证:
# 测试内网IP连通性 ping <AVM内网IP> # 测试22端口是否可达 telnet <AVM内网IP> 22
5. DNS配置验证(若使用内网FQDN)
如果使用内网FQDN连接,确认VNet的DNS服务器(默认Azure DNS或自定义DNS)能正确解析AVM的内网域名,避免因解析失败导致连接超时。
内容的提问来源于stack exchange,提问作者alop31
相关产品推荐
相关产品推荐

