启用从 Hyper-V 客户机到 Windows Server 2022 主机的连接

启用从 Hyper-V 客户机到 Windows Server 2022 主机的连接

我有一台 Windows Server 2022,其中有一个在 Hyper-V 上运行的 VM。该 VM 是一台 Ubuntu Linux 机器。我可以 ping 本地网络上的所有计算机。以及访问互联网。但我似乎无法使用 ping 或 http 访问主机。我确信这不是防火墙问题,因为即使完全关闭防火墙后它仍然不起作用。尝试了我在网上看到的所有方法,但似乎无法解决这个问题。

另外补充一下。我已经可以从主机和网络上的其他机器访问虚拟机了。Ping 或 HTTP 都一样

答案1

设置虚拟交换机时,您是否选择了“私人的“选项?这可能解释了为什么您无法从主机与虚拟机通信。

如果是这种情况,您需要选择“内部的“ 选项。

如果需要,您可以在这里找到更多信息。

https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/plan/plan-hyper-v-networking-in-windows-server#hyper-v-networking-basics

如果不是这个问题,我会确认“集成服务”已启用,然后再检查您的 NAT 配置等。

https://learn.microsoft.com/en-us/answers/questions/470494/hyper-v-server-is-not-pinging

答案2

在这种情况下,我会检查防火墙,以确保两端都允许 ICMP。

通过 Ubuntu 防火墙(UFW)允许 ICMP/PING: https://www.kelvinism.com/2010/09/enable-icmp-through-ufw_461.html?m=1

通过 Windows 防火墙允许 ICMP/PING: https://www.wintips.org/how-to-allow-ping-in-windows-firewall/

答案3

当然,您能够从在 Windows Server 2022 Hyper-V 主机上运行的 Ubuntu Linux VM ping 并访问本地网络和互联网上的资源,这种情况令人鼓舞。但是,在尝试使用 ping 和 HTTP 访问主机时遇到问题需要进行一些调查。有几个因素可能导致这种情况,这里有一个代码片段可以帮助您排除故障并查明问题:

import subprocess

def ping_host(host):
  """Pings the host and returns True if the host is reachable, False otherwise."""

  ping_command = ["ping", "-c", "1", host]
  ping_process = subprocess.Popen(ping_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  ping_output, ping_error = ping_process.communicate()
  ping_process wait()

  if ping_process.returncode == 0:
    return True
  else:
    return False

if __name__ == "__main__":
  host = "192.168.1.100"  # Replace this with the IP address of your host

  if ping_host(host):
    print("The host is reachable.")
  else:
    print("The host is not reachable.")

此 Python 脚本允许您通过 ping 主机的 IP 地址来检查主机的可达性。通过将此脚本保存为“ping_host.py”,并使用命令 python ping_host.py 在 Ubuntu Linux VM 上执行它,您可以确定主机是否可达。如果成功,它将显示消息“主机可访问”。如果不成功,它将显示“主机不可访问”。

虽然代码有助于评估主机的可访问性,但有几个潜在原因可能可以解释这个问题。这些包括网络适配器配置错误、IP 设置不正确、防火墙规则甚至 Hyper-V 网络异常。要解决这些问题,请确保虚拟机的网络适配器设置允许与管理操作系统共享。验证虚拟机的 IP 配置是否与主机的子网匹配。检查主机的防火墙规则,确保它允许来自虚拟机的 ICMP(ping)和 HTTP 流量。

如果您已涵盖了所有这些方面但问题仍然存在,请考虑重新启动 Hyper-V 服务和 VM。此外,建议在 VM 上保持 Hyper-V 集成服务更新,并禁用 IPv6 作为额外措施。

相关内容