获取 Hyper-V Linux 计算机的 IP 地址

获取 Hyper-V Linux 计算机的 IP 地址

我在 Windows Server 2012 上安装了 Hyper-V,在 Hyper-v 中安装了 CentOS 6/7 vm。我执行以下命令:

Get-vm -name "x" | select -ExpandProperty NetworkAdapters

输出:

Name            IsManagementOs VMName SwitchName     MacAddress Status                         IPAddresses

----            -------------- ------ ----------     ---------- ------                         -----------

Network Adapter False          "x"    InternalSwitch Mac        {Degraded, protocolversion} {}

为什么是IPAddresses空的?

我尝试过(command).ipaddresses并得到了相同的结果。

答案1

我必须将 Linux 集成服务安装到虚拟机中(Linux 集成服务 4.1):

  1. 从以下位置下载软件包适用于 Hyper-V 的 Linux 集成服务版本 4.1到客户服务器 (Linux) 并解压。如果您无法将软件包传输到客户主机,也可以使用 Hyper-V 管理器安装 ISO 映像。
  2. 在解压后的目录下找到您的发行版(例如CentOS72)。
  3. 以 root 身份运行install.sh
  4. 重新启动客户操作系统。

对于 CentOS 7,还需要禁用 NetworkManager。这一点(以及其他提示)在Hyper-V 上支持的 CentOS 和 Red Hat Enterprise Linux 虚拟机(NetworkManager 注释 2)

运行:systemctl disable NetworkManager并重新启动

现在 Hyper-V 管理器应该会显示虚拟机的 IP 地址和Get-VM也应该可以工作。

答案2

你并不孤单,我也遇到了这个问题。确保你以管理员身份运行 PowerShell,否则您将无法获得任何 IP 地址。即使以管理员身份运行,我仍然只能为主机上 30 个虚拟机中的一个获取 IP 地址。

答案3

我无法使用 PowerShell 工具解决此问题,但有一个解决方法:

您可以使用 获取虚拟机的 MAC 地址Get-VMNetworkAdapter。从 Hyper-V 主机,ping 您知道虚拟机可以获得的 IP 地址范围(我想是从 DHCP 获取),然后测试 ARP 表中的 MAC 地址。

相关内容