Adr*_*ron 21 virtualization vmware-fusion ip virtual-machine
是否可以在不实际进入虚拟机上运行的操作系统的情况下使用 VMware Fusion 确定虚拟机的 IP?我正在寻找菜单选项、命令行或其他方式,我可以使用 VMware Fusion 软件本身针对虚拟映像发布这些选项。
谢谢 - 阿德龙
小智 56
毫不奇怪,VMWare 为此提供了一个内置工具,vmrun
. /Applications/VMware Fusion.app/Contents/Library/vmrun
尽管它在其他 Fusion 版本中有所移动,但它仍在下层。
vmrun list
Total running VMs: 1
.docker/machine/machines/myvm.vmx
vmrun getGuestIPAddress ~/.docker/machine/machines/myvm.vmx
172.16.213.128
Run Code Online (Sandbox Code Playgroud)
小智 11
这是一个提示,以防它可以帮助任何人。安装avahi-daemon
在虚拟机上。这允许您通过 hostname 进行连接vmname.local
,其中vmname
是您的虚拟机的名称。就我而言,VM 的名称是baremetal
并且我可以在主机上运行:
ssh baremetal.local
Run Code Online (Sandbox Code Playgroud)
无需知道 VM 的 IP。:)
正如 Mikhail T. 所说,“因为 VMWare 正在提供 NAT-ing,它应该能够告诉我们,它当前正在为哪些地址进行 NAT-ing。” 确实如此:
在我的 VMware Fusion 6 安装中,vmnet-dhcpd
守护进程将其租约写入文件/var/db/vmware/vmnet-dhcpd-vmnetX.leases
,其中“X”是 1 和 8。根据经验:-) 我确定我应该寻找 vmnet8。以下是租赁文件的摘录/var/db/vmware/vmnet-dhcpd-vmnet8.leases
:
lease 192.168.177.129 {
starts 1 2014/02/17 09:34:19;
ends 1 2014/02/17 09:36:56;
hardware ethernet 00:0c:29:2b:2b:10;
client-hostname "ubuntu";
}
Run Code Online (Sandbox Code Playgroud)
该client-hostname
是虚拟机的名称,字后的数字lease
是它的IP。您可以解析这些条目,或者只是查看最新的条目。确保您正在查看的租约仍然有效。
IP 地址纯粹是操作系统的责任。因此,容纳操作系统的虚拟框架并不了解其中的 TCP/IP 堆栈,除非该框架有共生添加,例如 Hyper-V 和 VMware 的附加来宾工具(感谢下面评论中的 todda.speot.is) 。这与想要在不先启动虚拟机的情况下浏览虚拟机上的文件没有太大区别。
从技术上讲,如果虚拟机依赖于 DHCP,您可以在 DHCP 服务器(可能是 LAN 的路由器)中搜索分配给虚拟 NIC 的 MAC 地址的最后一个租约,以便很好地了解 IP 可能是什么下次启动时。假设在您查看租约历史记录和虚拟机启动之间,相同的 IP 没有分发给另一个设备。
归档时间: |
|
查看次数: |
61137 次 |
最近记录: |