Tengo una VM de Ubuntu ejecutándose en mi máquina con Windows 7. ¿Cómo lo configuro para poder acceder al servidor web externamente a través de SSH?
Encontré pasos ( Configurar el acceso SSH entre VirtualBox Host y Guest VM ) para poder enviar ssh a mi invitado desde mi host, pero eso todavía me deja con el problema de acceder a través de mi enrutador.
Supongo que podría instalar un servidor SSH en mi máquina Windows y luego hacer un túnel varias veces (aunque no estoy 100% seguro de qué usar en términos de locales, dinámicos, etc. o cómo configurar múltiples túneles), pero, ¿hay alguna manera de hacer que la máquina virtual sea accesible directamente a mi enrutador para que yo pueda transferirla directamente?
ssh
virtualbox
Jordán
fuente
fuente
Respuestas:
La mejor manera de iniciar sesión en un VM LinuxBox virtual invitado es el reenvío de puertos . De manera predeterminada, ya debería tener una interfaz que utilice NAT . Luego vaya a la configuración de Red y haga clic en el botón Reenvío de puertos . Agregar una nueva regla . Como nombre de la regla, inserte "ssh". Como "Puerto de host", inserte 3022. Como "Puerto de invitado", inserte 22. Todo lo demás de la regla se puede dejar en blanco.
o desde la línea de comando
donde 'myserver' es el nombre de la VM creada. Verifique las reglas agregadas:
¡Eso es todo! Asegúrese de no olvidar instalar un servidor SSH en la VM:
Para SSH en la máquina virtual invitada, escriba:
¿Dónde
user
está su nombre de usuario dentro de la VM?fuente
ssh -p 3022 [email protected]
Ese fue el único paso que me faltaba y fui a buscar en otro sitio.Host mybox HostName 127.0.0.1 User myuser Port 3022
a ese archivo (agregue la sangría usted mismo), luego solo necesitassh mybox
cada vez :)Cambie el tipo de adaptador en VirtualBox a puente y configure el invitado para usar DHCP o establezca una dirección IP estática fuera de los límites de DHCP. Esto hará que la máquina virtual actúe como un invitado normal en su red doméstica. Luego puede portar hacia adelante.
fuente
Mantener el adaptador NAT y agregar un segundo adaptador solo de host funciona de manera sorprendente y es crucial para las computadoras portátiles (donde la red externa siempre cambia).
http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/
Recuerde crear una red solo de host en virtualbox (GUI -> configuración -> red), de lo contrario no podrá crear la interfaz de solo host en el invitado.
fuente
/etc/network/interfaces
, ¡Gracias!ssh
,sftp
, etc.), ya que tendría que ir a través de un puerto no estándar.También puede usar una red en puente (o "adaptador de puente", en versiones más recientes) en la configuración de red . Esto colocará su VM en una VLAN con su máquina. Entonces puede simplemente ingresar a la máquina virtual de esta manera.
fuente
Cómo hacer una red solo de host ( mejor que puenteada) para Solaris 10 y Ubuntu 16.04
Agregar interfaz solo de host
Inicie cmd.exe y ejecútelo
ipconfig /all
. Deberías ver líneas:El segundo adaptador en invitado también debe estar en 192.168.59. *.
Inicie VM.
Solaris 10
ifconfig -a
. Debería ver e1000g0 y e1000g1. Estamos interesados en e1000g1.ifconfig e1000g down
ifconfig e1000g 192.168.56.10 netmask 255.255.255.0 up
ping 192.168.56.10
Conservar esa configuración al reiniciar
Configure el servicio ssh ( administración ) para iniciar sesión como root (no recomendado)
Compruebe si ssh está habilitado
Modifique / etc / ssh / sshd_config para que haya
Reiniciar el servicio ssh
Desde el host, compruébalo
Ubuntu 16.04
Lista de interfaces:
Debería ver tres interfaces como lo, enp0s3, enp0s8. Usaremos el tercero.
Editar / etc / network / interfaces
Entonces
sudo ifup enp0s8
. Compruebe si enp0s8 tiene la dirección correcta. Deberías ver tu ip:Si no, puedes correr
sudo ifdown enp0s8 && sudo ifup enp0s8
/superuser/424083/virtualbox-host-ssh-to-guest/424115#424115
fuente
192.168.59.1
y usted especifica192.168.56.10
la IP estática del invitado. La dirección de subred completa de la clase C debe coincidir exactamente, por lo que deberá usar algo como192.168.59.10
dentro del invitado.Para ssh a una máquina virtual Ubuntu que se ejecuta en VirtualBox desde su máquina host, debe configurar dos adaptadores de red para la máquina virtual.
En primer lugar, detenga la VM si aún no.
Luego seleccione la VM y haga clic en el menú Configuración en la barra de herramientas de VirtualBox:
Configurar adaptador 1
Configurar adaptador 2
(Nota: no necesita configurar ningún reenvío de puertos).
Eso es. Una vez configurado, puede iniciar su VM. En su VM, la configuración de red se verá a continuación y también tendrá acceso a Internet:
También en su máquina host, puede enviar ssh a su VM:
Asegúrese de que el servidor SSH se haya instalado y se esté ejecutando en la VM.
Si no, instálelo:
También para su información:
fuente
File > Host Network Manager > Create
Las respuestas proporcionadas por otros usuarios aquí:
How to SSH to a VirtualBox guest externally through a host?
... me ayudó a cumplir la tarea de conectarme desde fuera de Internet a la máquina invitada de la computadora de mi casa. Debería poder conectarse usando computadoras, tabletas y teléfonos inteligentes (Android, iPhone, etc.). Agrego algunos pasos más en caso de que pueda ser útil para otra persona:
Aquí hay un diagrama rápido de mi configuración:
Remote device ---> INTERNET --> MODEM --> ROUTER --> HOST MACHINE --> GUEST VM
Remote device (ssh client) ---> PASS THRU DEVICES ---> GUEST VM (ssh server)
Remote device (leave ssh port 3022) ---> INTERNET --> MODEM --> ROUTER (FWD frm:p3022 to:p3022)--> HOST MACHINE (FWD frm:p3022 to:p22) --> GUEST VM (arrive ssh port 22)
La clave para mí fue darme cuenta de que TODAS las conexiones eran
PASSING-THROUGH
dispositivos intermedios para llegar desde mi PC remota a mi máquina virtual invitada en casa: ¡por lo tanto, reenvío de puertos!Notas: * Necesita un cliente ssh para solicitar una conexión segura y un servidor ssh en ejecución para procesar la conexión segura.
Reenviaré el puerto 3022 como se usa en la respuesta elegida desde arriba.
Ingrese sus IP cuando sea necesario (módem / enrutador doméstico, IP de host, IP de invitado, etc.), los nombres elegidos son solo ejemplos de uso o cambio.
1.Cree el túnel ssh al puerto 3022 en la dirección IP externa de su módem / enrutador.
ssh client/device possible commands: ssh -p 3022 user-name@home_external_IP
2.Port forward = estamos pasando a través de la conexión del enrutador a la máquina host
También asegúrese de que las reglas de firewall / IPtable en el enrutador permitan que los puertos se reenvíen (se abren si es necesario)
Entradas requeridas de la Pfwd SCREEN del enrutador: AppName: SSH_Fwd, Port_from: 3022, Protocol: both (UDP / TCP), IP_address: hostIP_address, Port_to: 3022, todo lo demás puede estar en blanco
Recursos / información del software del enrutador DD-WRT:
DD-WRT Port_Forwarding
DD-WRT Static_DHCP
3. Firewall de la máquina host: abra el puerto 3022 # para que el puerto reenviado pueda pasar a través de la máquina invitada
Máquina host: instale VirtualBox, adiciones de invitados y máquina invitada si aún no lo ha hecho
Configure la máquina invitada y luego siga la sección Red a continuación
Utilicé VirtualBox GUI para configurar la red del invitado, más fácil que la CLI
Si desea utilizar otros métodos, consulte:
VirtualBox/manual/ch06.html#natforward
4.Algunos sugieren usar el adaptador de puente de red para invitado = acceso a LAN y otras máquinas en su LAN. Esto también plantea un mayor riesgo de seguridad, porque ahora su máquina invitada ahora está expuesta a máquinas LAN y posiblemente a los piratas informáticos de INTERNET si el firewall no está configurado correctamente. Así que seleccioné el adaptador de red conectado a NAT para una menor exposición a los riesgos de seguridad puenteados.
En la máquina invitada, haga lo siguiente:
También hay diferentes servidores y clientes ssh dependiendo de la plataforma que use.
wikipedia/Secure_Shell
wikipedia/Comparison_of_SSH_servers
wikipedia/Comparison_of_SSH_clients
Para usuarios de Ubuntu:
ubuntu community: SSHOpenSSH/Configuring
ubuntu/community: OpenSSH/Keys
Eso debería ser. Si cometí un error o deseo agregar algo, siéntase libre de hacerlo, sigo siendo un novato.
Espero que esto ayude a alguien. ¡Buena suerte!
fuente
Para el host de Windows, puede:
fuente
También puede iniciar un puerto hacia su HOST, O CUALQUIER OTRO SERVIDOR, desde su Invitado. Esto es especialmente útil si su Invitado está 'bloqueado' o no puede completar la opción ModifyVM (por ejemplo, sin permiso para VBoxManage).
Tres requisitos menores son: 1) puede / puede iniciar sesión en VirtualBox Guest (a través de la 'consola' GUI, otro Guest, etc.), 2) tiene una cuenta en VirtualBox HOST (u otro servidor), y 3) SSH y TCP el reenvío no está bloqueado.
Suponiendo que puede cumplir los 3 requisitos, estos son los pasos:
netstat -rn
y busque la dirección de Gateway al destino de ruta predeterminado 0.0.0.0. Digamos que es "10.0.2.2". Esta dirección de 'Puerta de enlace' es (una de) las IP virtuales de VirtualBox Host.ssh -R 2222:localhost:22 10.0.2.2
donde "10.0.2.2" es la dirección IP del servidor VirtualBox -O- cualquier otra IP del servidor al que desee reenviar el puerto.ssh 10.0.2.2 -p2222
donde 10.0.2.2 es la puerta de enlace predeterminada / VBHost IP virtual que se encuentra en el paso 1. Si NO es el host VirtualBox al que reenvía el puerto, entonces el comando esssh localhost -p2222
fuente
Siga los pasos a continuación para iniciar sesión en su máquina virtual ubuntu que se ejecuta en una caja virtual desde la máquina host utilizando masilla (sin reenvío de puertos):
En el administrador de Virtualbox, seleccione el vm, haga clic en el icono de configuración. Luego, vaya a Redes y habilite dos adaptadores como se muestra a continuación:
Inicie el ubuntu vm.
Edite el archivo '/ etc / network / interfaces' como se muestra a continuación y guárdelo:
Reinicie la VM.
Inicie sesión en la VM y ejecute el siguiente comando para verificar la IP asignada a eth1:
Use esta IP para abrir sesión de masilla para la VM.
fuente
Una buena explicación sobre cómo configurar el reenvío de puertos con NAT se encuentra en los documentos de VirtualBox: http://www.virtualbox.org/manual/ch06.html#natforward
fuente
Ubuntu 18.04 LTS
Configuración con puente para ver la ip del servidor y conectarse sin "reenvío de puerto"
VirtualBox> haga clic con el botón derecho en servidor> configuración> Red> habilitar adaptador 2> seleccione "puenteado>> Modo promiscuo: permitir todo> Verificar el cable conectado> iniciar servidor
En el servidor ubuntu, edite el
sudo nano /etc/netplan/*init.yaml
archivo,Mi archivo de muestra:
Comandos que te ayudarán
Configure las direcciones IP estáticas en el servidor Ubuntu 18.04 LTS - con NetPlan
fuente
Simplemente configurar la configuración de red en puente hizo el truco para mí.
Su IP cambiará cuando haga esto. Sin embargo, en mi caso no cambió de inmediato.
ifconfig
devolvió la misma ip. Reinicié el vm y el boom, la ip se configuró en un inicio con 192. * e inmediatamente se me permitió el acceso ssh.fuente
En redes seguras, configurar su red para puentear podría no funcionar. Los administradores solo pueden permitir una dirección MAC por puerto o, lo que es peor, bloquear el puerto si los conmutadores detectan múltiples Mac en un puerto.
La mejor solución en mi opinión es configurar interfaces de red adicionales para manejar servicios adicionales que le gustaría ejecutar en sus máquinas. Por lo tanto, tengo una interfaz de puente para permitir el puente cuando llevo mi computadora portátil a casa y puedo conectarla a SSH desde otros dispositivos en mi red, así como también un adaptador de host cuando me gustaría conectar SSH a mi VM desde mi computadora portátil cuando estoy conectado a la red wifi eduroam en el campus.
fuente
Use el adaptador de red NAT y agregue el puerto hacia adelante. Mencione el host actual ip. No use 127.0.0.1 o localhost.
fuente