¿Cómo ssh en un servidor que se ejecuta en una red doméstica, detrás de un enrutador?

22

Bien, entonces tengo una PC en mi red doméstica, ejecutando Ubuntu en una VM con el servidor openssh instalado.

  1. ¿Cómo puedo acceder de forma remota desde otra computadora fuera de la red doméstica, usando Internet?
  2. ¿Qué dirección IP utilizo para conectarme a ella?
  3. ¿Qué tipo de reenvío de puertos necesito hacer?
Hugo Lobo
fuente
¿Qué tipo de red utiliza la VM? Para el uso doméstico típico, se recomienda un puente, luego, para fines de red, la VM será equivalente a una máquina física, por lo que solo debe realizar el reenvío de puertos en su enrutador como de costumbre.
fkraiem
En Configuración de red en mi VM, dice que el adaptador de red está conectado a NAT. Aquí hay una captura de pantalla: enlace ¿Necesito cambiar esto?
Hugo Lobo
Ponerlo en puente facilitará las cosas, sí. (Básicamente, con NAT debe realizar el reenvío de puertos dos veces, en su enrutador y en VBox.)
fkraiem
de hecho, no necesita ningún reenvío de puertos cuando la máquina desde la que desea conectarse está visible para su servidor local, solo usemos el -Lindicador en el comando ssh, pero asegúrese de que la conexión se mantenga activa: ejecute htop o algo similar para mantener La transferencia de datos.
Amplio

Respuestas:

22

Hay varias cosas que debes hacer:

1) Al igual que fkraiem mencionado en su comentario, asegúrese de que su VM esté accesible en la red local. El uso de una conexión de red 'puente' en la configuración de VM debería lograrlo. Luego, utilizando una de sus otras computadoras (incluso su host), verifique si puede iniciar sesión en el servidor SSH. Si puede, felicidades, pasemos al siguiente paso.

2) A continuación, debe saber cómo reenviar puertos en su enrutador. Como no mencionó qué enrutador tiene, tendrá que descubrirlo usted mismo. El puerto 22 es el utilizado por SSH. Por supuesto, puede escuchar en un puerto más alto en el enrutador para evitar que sus registros se llenen con un montón de script kiddies que intentan piratear su servidor y luego reenviar el puerto a 22 en su servidor. Por ejemplo, imaginemos que su IP local para su servidor es 192.168.0.10. Su IP WAN (Internet) es 99.99.99.99.

99.99.99.99:60022 -> Enrutador -> 192.168.0.10:22

Lo que desea hacer es decirle a su enrutador que escuche en el puerto 60022 y lo reenvíe a IP 192.168.0.10 y al puerto 22.

Para averiguar cuál es su IP WAN, simplemente busque en Google 'cuál es mi dirección IP'. Hay otras formas, pero es la más fácil.

Ahora, después de configurar el enrutador, intente conectarse con una computadora externa a su IP WAN con el puerto más alto. Puede conectar su teléfono celular a una computadora portátil para lograrlo.

Si pudieras conectarte con eso, felicidades nuevamente.

3) Ahora debe asegurarse de que sus direcciones IP permanezcan estáticas en su red local, y necesitaría obtener una entrada DNS dinámica para su dirección IP WAN. De esta manera, usaría un nombre de dominio en lugar de su IP WAN. Google 'dns dinámico' para encontrar algún servicio gratuito.

Espero que haya ayudado.

G Trawo
fuente
¿Es este "99.99.99.99:60022 -> Enrutador -> 192.168.0.10:22" el comando real? ¿Qué significa "enrutador"? Quiero decir, ¿qué pasa aquí?
m4l490n
@ m4l490n No, eso no es un comando. Es simplemente una forma de mostrar el "flujo" de la conexión. 99.99.99.99 es solo una dirección IP que elegí. También podría haber mostrado XXX.XXX.XXX.XXX, pero encuentro que los números son más fáciles de entender. 60022 es el puerto "exterior" donde escucha el enrutador. Luego realiza el reenvío de puertos a la dirección interna de 192.168.0.10 y lo mueve al puerto 22. La razón por la que no entré más en detalle es porque OP no indicó qué enrutador (y firmware) estaba usando.
G Trawo
4

Mi configuración personal es la siguiente:

  1. En el puerto de reenvío del enrutador 22 desde la máquina remota a 2222 de la máquina local, digamos 192.168.0.33, por ejemplo. De esa manera, aún puede tener acceso ssh al sistema operativo principal en la máquina, mientras que 2222 es para el sistema operativo virtual.

    ingrese la descripción de la imagen aquí

    1. En el cuadro virtual, reenvíe el puerto 2222 del sistema operativo host 192.168.0.33 al puerto 22 del sistema operativo invitado. La IP del huésped se puede encontrar con el ifconfigcomando en el huésped mismo.

    ingrese la descripción de la imagen aquí

Ahora, si conoce la IP de su enrutador, puede enviar ssh a la IP de su enrutador, y se enviará automáticamente al puerto 2222 de su máquina física. La máquina física proporcionará esa conexión al puerto 22 de la máquina virtual (siempre que se esté ejecutando VM).

Si desea ssh desde la red local, use ssh -p 222 192.168.0.33

Sergiy Kolodyazhnyy
fuente