Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文有助于管理员诊断和解决影响 Azure 虚拟机 (VM) 的连接问题。
- 通过资源管理器部署的 Azure VM 不能连接到同一虚拟网络中的另一个 Azure VM。
- Azure VM 不能连接到同一虚拟网络中 Azure VM 的第二个网络适配器。
- Azure VM 无法连接到 Internet。
若要解决这些问题,请按以下部分的步骤操作。
Nota
可以使用:
-
netstat -an
,可列出 VM 正在侦听的端口 - PowerShell 中的 Test-NetConnection 模块,可显示连接的诊断信息,例如 ping 测试和 tcp 测试
- 确保使用 tcping 或其他基于 TCP 的测试工具,因为许多网络设备降低了 ICMP 流量的优先级。 使用 TCP 测试可提供更一致且更可靠的结果,尤其是在 Azure 环境中。
将 TCping 下载到源 VM。
打开“命令提示”窗口。
导航到 TCping 所下载到的文件夹。
使用以下命令从源 VM ping 目标:
tcping64.exe -t <destination VM address> 3389
Sugerencia
如果 ping 测试成功,请转到步骤 3。 否则,请转到下一步。
对于每个 VM,请检查 “允许 VNet 入站 ”和 “允许负载均衡器入站”的默认入站端口规则。 确保还检查在优先级较低的规则下没有列出匹配的阻止规则。
Nota
首先匹配包含的数字较小的规则。 例如,如果你有优先级为 1000 和 6500 的规则,则首先匹配优先级为 1000 的规则。
然后,尝试再次从源 VM ping 目标:
tcping64.exe -t <destination VM address> 3389
若要通过远程桌面进行连接,请执行以下步骤。
Windows:
- 登录到 Azure 门户。
- 在左侧菜单中,选择“虚拟机” 。
- 在列表中选择虚拟机。
- 在虚拟机的页面上,选择“连接” 。
有关详细信息,请参阅如何连接并登录到运行 Windows 的 Azure 虚拟机。
Linux :
有关详细信息,请参阅连接到 Azure 中的 Linux VM。
如果远程桌面或 SSH 连接成功,请转到下一步。
在源 VM 上运行连接性检查,检查响应。
Windows:使用 PowerShell 通过 Azure 网络观察程序检查连接性
Linux :使用 Azure CLI 2.0 通过 Azure 网络观察程序检查连接性
以下是示例响应:
ConnectionStatus : Unreachable
AvgLatencyInMs :
MinLatencyInMs :
MaxLatencyInMs :
ProbesSent : 100
ProbesFailed : 100
Hops : [
{
"Type": "Source",
"Id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurat
ions/ipconfig1",
"NextHopIds": [
"bbbbbbbb-1111-2222-3333-cccccccccccc"
],
"Issues": []
},
{
"Type": "VirtualAppliance",
"Id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
"Address": "10.1.2.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/fwNic/ipConfiguratio
ns/ipconfig1",
"NextHopIds": [
"cccccccc-2222-3333-4444-dddddddddddd"
],
"Issues": []
},
在收到的连接性检查响应的“跃点”部分,检查列出的问题。
在下表中找到相应的解决方法,按指示的步骤解决问题。
问题类型 价值 解决操作 网络安全规则 阻止 NSG 的名称 可以删除 NSG 规则,也可以按此处的说明修改该规则。 用户自定义路由 阻止 UDR 的名称 如果不需要此路由,请删除 UDR。 如果不能删除此路由,请使用相应的地址前缀和下一跃点更新此路由。 也可调整“网络虚拟设备”,以适当方式转发流量。 有关详细信息,请参阅:虚拟网络流量路由和使用 PowerShell 通过路由表路由网络流量。 中央处理器 使用情况 按运行 Linux 或 Windows 的 Azure 虚拟机常规性能故障排除中介绍的这些建议操作。 内存 使用情况 按运行 Linux 或 Windows 的 Azure 虚拟机常规性能故障排除中介绍的建议操作。 来宾防火墙 防火墙阻止的名称 按照以下步骤作: 打开或关闭 Windows 防火墙。 DNS 解析 DNS 的名称 执行以下步骤:Azure DNS 故障排除指南和 Azure 虚拟网络中资源的名称解析。 套接字错误 不适用 指定的端口已由另一应用程序使用。 请尝试使用另一端口。 再次运行连接性检查,确定问题是否已解决。
默认情况下,辅助网络适配器(也称为网络接口卡或网络适配器)未配置为具有默认网关。 因此,辅助适配器上的通信流会限制在同一子网内。
如果用户要启用辅助网络适配器,以在自己的子网外部通信,则必须在路由表中添加一个条目来配置网关。 为此,请执行以下步骤:
在配置了第二个网络适配器的 VM 上,以管理员身份打开一个命令提示符窗口。
运行以下命令,在路由表中添加此条目:
Route add 0.0.0.0 mask 0.0.0.0 -p <Gateway IP>
例如,如果第二个 IP 地址为 192.168.0.4,则网关 IP 应该为 192.168.0.1。 必须运行以下命令:
Route add 0.0.0.0 mask 0.0.0.0 -p 192.168.0.1
运行 route print。 如果成功添加条目,你将看到如下所示的条目:
现在,尝试连接到辅助网络适配器。 如果连接仍未成功,请转到下一步。
对于主网络适配器和辅助网络适配器,请检查两个网络适配器上的默认“入站端口规则”(“允许 VNet 入站”、“允许负载均衡器入站”)。 还应确保优先级较低的规则下没有匹配的阻止规则。
- 运行针对辅助网络适配器的连接性检查。
- 对整个环境运行连接性检查,确保进程能够端到端运行。
若要详细了解如何运行连接性检查,请参阅以下文章:
Windows:使用 PowerShell 通过 Azure 网络观察程序检查连接性
Linux :使用 Azure CLI 2.0 通过 Azure 网络观察程序检查连接性。
以下是示例响应:
ConnectionStatus : Unreachable
AvgLatencyInMs :
MinLatencyInMs :
MaxLatencyInMs :
ProbesSent : 100
ProbesFailed : 100
Hops : [
{
"Type": "Source",
"Id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"Address": "10.1.1.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/appNic0/ipConfigurat
ions/ipconfig1",
"NextHopIds": [
"bbbbbbbb-1111-2222-3333-cccccccccccc"
],
"Issues": []
},
{
"Type": "VirtualAppliance",
"Id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
"Address": "10.1.2.4",
"ResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGrou
ps/ContosoRG/providers/Microsoft.Network/networkInterfaces/fwNic/ipConfiguratio
ns/ipconfig1",
"NextHopIds": [
"cccccccc-2222-3333-4444-dddddddddddd"
],
"Issues": []
},