¿Cómo se configura un invitado de Ubuntu para que use una IP estática que sea visible para un host de OS X y se asegure de que la IP estática sea independiente de la configuración de red del host? Anteriormente utilicé redes en puente para mi invitado, pero muevo constantemente mi host entre redes, por lo que la IP del invitado siempre es diferente.
Primero, intenté establecer la configuración de la red de invitados en NAT y reenviar el puerto del host 1022 al puerto de invitados 22, para poder al menos enviar ssh a una dirección fija (localhost:1022):
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/Protocol" "TCP"
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/GuestPort" 22
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/HostPort" 1022
Entonces,
$ ssh localhost -p 1022
ssh: connect to host localhost port 1022: Connection refused
Pero esto no funcionó (el invitado no tiene acceso a la red con NAT y OS X rechazó la conexión, como puede ver).
Me encantaría una solución general que me permitiera comunicarme con mi invitado a través de una IP fija.
Respuesta1
Para empezar, localhost apunta a 127.0.0.1. Es posible que esa máquina virtual se esté ejecutando en su máquina, pero se aborda por separado.
Cuando activa un puente NAT en VirtualBox, crea una interfaz virtual separada que actúa como "enrutador" para los clientes NAT que coloca detrás de él. No puede conectarse a localhost para acceder a la VM porque localhost es su Mac, NO la VM.
Configure el invitado como NAT, luego verifique la dirección de la VM desde su interior. use esa dirección (lo más probable es que sea una dirección privada, 192.168.algo) e intente conectarse desde su host.
Respuesta2
DeManual de redes VirtualBox. Lo uso para un invitado de Windows en NAT a escritorio remoto y funciona muy bien, pero no lo he probado desde el host.
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
Con el ejemplo anterior, todo el tráfico TCP que llegue al puerto 2222 en cualquier interfaz de host se reenviará al puerto 22 del invitado. El nombre del protocolo tcp es un atributo obligatorio que define qué protocolo debe usarse para el reenvío (también se podría usar udp). El nombre guestsh es puramente descriptivo y se generará automáticamente si se omite. El número después de --natpf indica la tarjeta de red, como en otras partes de VBoxManage.
Oh, me acabo de dar cuenta de la antigüedad de la pregunta, bueno, espero que ayude a otros.