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:
% ifconfig | grep -A2 ^vmnet
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01
inet 192.168.82.1 netmask 0xffffff00 broadcast 192.168.82.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08
inet 192.168.123.1 netmask 0xffffff00 broadcast 192.168.123.255
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:
% set i=2
% while ( $i < 255 )
while? ping -W 500 -c 1 192.168.82.$i && break
while? ping -W 500 -c 1 192.168.123.$i && break
while? @ i++
while? end
El pequeño script anterior se ejecutó durante algún tiempo enumerando todos los intentos fallidos de llegar a las direcciones inexistentes:
PING 192.168.82.2 (192.168.82.2): 56 data bytes
--- 192.168.82.2 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
PING 192.168.123.2 (192.168.123.2): 56 data bytes
...
Hasta que finalmente tuvo éxito y terminó:
64 bytes from 192.168.123.130: icmp_seq=0 ttl=64 time=0.307 ms
--- 192.168.123.130 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
Voilà, pude meterme en mi invitado:
% ssh 192.168.123.130
Password:
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).