¿Puedo determinar la IP de una máquina virtual usando VMware Fusion sin ingresar realmente al sistema operativo que se ejecuta en la máquina virtual? Estoy buscando una opción de menú, línea de comando o de otra manera que pueda emitir contra la imagen virtual con el software VMware Fusion.
Gracias Adron
Respuestas:
Respuesta corta: no
Respuesta larga: no, pero tal vez
Una dirección IP es puramente responsabilidad de un sistema operativo. Por lo tanto, el marco virtual que contiene el sistema operativo no tiene idea de la pila TCP / IP, a menos que haya adiciones simbióticas al marco, como Hyper-V y las herramientas adicionales de VMware (gracias a todda.speot.is en los comentarios a continuación) . No es muy diferente a querer explorar los archivos en una máquina virtual sin iniciarlo primero.
Técnicamente, si la máquina virtual se basa en DHCP, se podría buscar el servidor DHCP (probablemente el router de tu LAN) para el último contrato de arrendamiento que fue entregado a la dirección MAC de la tarjeta de red virtual para obtener una buena idea de lo que el IP sería probablemente ser el la próxima vez que se lance. Eso supone que la misma IP no se entregó a otro dispositivo en el medio cuando miró el historial de arrendamiento y cuando se inició la VM.
fuente
VMWare proporciona, como es lógico, una herramienta integrada para esto
vmrun
,. Está bajo,/Applications/VMware Fusion.app/Contents/Library/vmrun
aunque se ha movido un poco en otras versiones de Fusion.fuente
vmrun
está en la RUTA de mi Mac por defecto, así quevmrun getGuestIPAddress "$(vmrun list | grep vmx)"
, ¡incluye las comillas!Aquí hay un consejo en caso de que ayude a alguien. Instalar
avahi-daemon
en la VM. Esto le permite conectarse a través del nombre de hostvmname.local
, dondevmname
está el nombre de su máquina virtual. En mi caso, el nombre de la VM esbaremetal
y en el host puedo ejecutar:No es necesario conocer la IP de la VM. :)
fuente
avahi-daemon
no está disponible? Windows, por ejemplo, viene a la mente ... :-)Es posible, al menos, en el caso común, donde la red de estilo NAT está configurada para el invitado. Debido a que VMWare está proporcionando NAT-ing, debería poder decirnos para qué direcciones está actualmente NAT-ing. Algo así
vmrun list
debería estar generando esta información. Que no es un defecto ...Pero, en cualquier caso, así es como se puede descubrir de todos modos. Primero, ejecute
ifconfig
en su Mac (tal vez,ipconfig
haría lo mismo en Windows, pero no lo he probado). Esto enumerará todas las interfaces de red en la máquina, tanto físicas como virtuales. Busque los vmnet-ones. En mi Mac esto produce:Entonces, la IP de mi invitado está en cualquiera de estas dos redes privadas de VM: 192.168.82.0/24 o 192.168.123.0/24. En su host puede haber solo uno, afortunado, o más de dos; necesitamos verificarlos a todos. Aquí hay un script tcsh muy simple, ingresado directamente en la línea de comandos, que lo hizo por mí. Intenta hacer ping a cada dirección en todas las redes privadas de clase C administradas por vmnet y finaliza, cuando un ping tiene éxito. La
-W 500
opción le dice a ping que espere solo medio segundo para una respuesta (podría, probablemente, usar aún menos), y-c 1
le dice que envíe exactamente un paquete:El pequeño script anterior se ejecutó durante algún tiempo enumerando todos los intentos fallidos de llegar a las direcciones inexistentes:
Hasta que finalmente tuvo éxito y terminó:
Voilà, pude meterme en mi invitado:
Ahora, solo tenía un único invitado en ejecución, por lo que la primera dirección IP que respondió a un ping fue la correcta. Si ejecuta varios invitados a la vez, es posible que necesite usar el mismo comando ping o similar para crear una lista de todas esas direcciones IP privadas válidas y luego probarlas todas hasta llegar al invitado correcto ...
(Y, tal vez, .130 es una buena suposición para las direcciones basadas en NAT de todos modos. Pero no puedo decir con certeza).
fuente
nmap -sP 192.168.123.*
Como dijo Mikhail T., "Debido a que VMWare está proporcionando el NAT, debería poder decirnos, para qué direcciones está actualmente NAT". De hecho lo hace:
En mi instalación de VMware Fusion 6, el
vmnet-dhcpd
daemon escribe sus contratos de arrendamiento en los archivos/var/db/vmware/vmnet-dhcpd-vmnetX.leases
, donde "X" es 1 y 8. Empíricamente :-) Establecí que es vmnet8 lo que debería buscar. Aquí hay un extracto del archivo de arrendamiento/var/db/vmware/vmnet-dhcpd-vmnet8.leases
:El
client-hostname
es el nombre de la VM y el número después de la palabralease
es su IP. Puede analizar estas entradas o simplemente mirar las más recientes. Asegúrese de que el contrato de arrendamiento que está viendo todavía sea válido.fuente
Mi solución a esto fue:
Una vez que tenga instaladas las herramientas de VMware, configure el uso compartido, para que pueda acceder a una carpeta (cualquier carpeta) desde CentOS. Luego, modifique / etc / sysconfig / network-scripts / ifup-post para agregar su fecha actual y dirección IP a un archivo en esta carpeta compartida.
Como hacer esto:
Modificar: / etc / sysconfig / network-scripts / ifup-post
agregue esto antes de la última línea de ifup-post ("salida 0"):
Esto agregará su guest_ip.log con la fecha y el valor de retorno de ifconfig cada vez que aparezca la red.
En mi caso, decidí buscar un prefijo 192 en mi dirección IP, ya que sé que entre mi casa y mi trabajo siempre es 192. Esto se puede hacer ajustando lo anterior de la siguiente manera:
fuente
Ejecutar en la consola VM
ipconfig
(si VM es Windows) oifconfig
(si VM es Linux).IP de
eth0
es la dirección IP que está buscando.fuente
Tuve el mismo problema al ejecutar VMPlayer en Ubuntu 15.04. Mi máquina virtual estaba configurada en NAT, y aunque podía determinar su dirección IP al iniciar sesión en la interfaz gráfica de usuario y ejecutar ifconfig en la VM, no podía hacer ping o ssh en ella.
Resulta que cuando se instaló VMPlayer, no habilitó dhcp en el adaptador vmnet1 y vmnet8. La solución fue usar la interfaz gráfica de usuario de ubuntu para editar las conexiones de red con "Editar conexiones". Busque vmnet1 en ethernet y presione el botón editar. En la configuración de IPv4, habilite DHCP, guarde y reinicie.
Ahora, si ejecuta ifconfig en la línea de comando, notará que vmnet1 tiene una dirección IP. SSHing en la VM nat-ed desde el host ahora también funciona.
fuente
Desde las páginas de manual de vmrun (versión 1.14.4 build-3204469):
Sin embargo, tenga en cuenta que para que esto funcione, la suite VMware Tools debe instalarse en el sistema operativo invitado y este paso no puede realizarse sin iniciar sesión en el sistema operativo invitado. Puede instalar las herramientas en una "imagen base" y crear nuevas imágenes a partir de ella mediante la clonación. Luego puede usar el comando anterior para obtener la dirección IP de las máquinas virtuales recién creadas.
fuente
fuente