我在使用 Azure 虚拟机时遇到了问题。
我有一台虚拟机,正在运行:
我知道允许所有端口到外部是不好的,但这只是为了开发。
现在,当我尝试使用 SSH 连接到端口 22 中的静态 IP 地址时,它会抛出一条错误消息。就好像这个地址根本不存在一样。
为什么会发生这种情况?
几个月前我能够使用当前设置进行连接,但现在 Azure 中发生了一些变化。
我还检查了资源健康状况,它向我显示了以下内容:
我也打开了启动诊断,但有很多信息。
答案1
在 Azure 中,我们无法使用 ping 来测试 Azure VM 状态,默认情况下,Azure 将阻止公共 ICMP 流量为了测试它,我们可以使用telnet来测试它,像这样:
C:\Users>telnet xxx.xx.xx.xx 22
顺便说一句,如果我们通过 VM 命令关闭 Azure VM,Azure 门户仍会显示 VM 正在运行,只有通过 Azure 门户关闭 Azure VM,门户才会将 Azure VM 状态更改为已停止。所以我们应该使用 telnet 来测试它。
如果我们不能远程登录这个虚拟机,也许我们可以重新开始此 VM 通过 Azure 门户进行测试。(重新部署通过 Azure 门户部署此 VM 是一个好主意,Azure 将使用您的旧配置来部署新 VM,与原始 VM 相同,并且新 VM 将部署到另一台主机)
有关重新部署 Azure VM 的更多信息,请参阅此关联。
如果您在 Azure 中对 Linux 虚拟机 (VM) 的 SSH 或应用程序访问进行故障排除时遇到困难,重新部署 VM 可能会有所帮助。重新部署 VM 时,它会将 VM 移动到 Azure 基础结构中的新节点,然后重新打开它。您的所有配置选项和相关资源都会保留。本文介绍如何使用 Azure CLI 或 Azure 门户重新部署 VM。
如果重新启动或重新部署此 VM 仍然无法 telnet 此 VM,也许我们应该在同一个 VNet 中部署另一个 VM,然后我们可以 ping 内部 IP 地址来测试它是否正在运行。
如果我们可以 ping 该虚拟机内部 IP 地址,那么我们应该重置虚拟机的 SSH 配置通过 Azure 门户。有关重置 SSh 配置的更多信息,请参阅此文章。
简而言之,我们可以重新启动(或重新部署)此虚拟机并对其进行测试。如果它不起作用,我们可以重置虚拟机 ssh 配置。之后,如果虚拟机仍然无法 ssh 到它,请在此处发布您的启动诊断。