Tengo un servidor Linux y quiero ponerlo en una red doméstica detrás de un enrutador. Necesito enviar ssh a este servidor en algún momento desde el exterior, pero no quiero configurar el reenvío de puertos porque no tengo acceso al enrutador y tampoco conozco la ip del enrutador.
Lo que puedo hacer es poner algún programa en el servidor Linux, de modo que cuando esté conectado a Internet, envíe constantemente datos a mi otro servidor en línea para que sepa la dirección IP del mismo. Pero, ¿hay alguna forma de enviar ssh al servidor detrás del enrutador desde afuera? algo como NAT o socket que mantiene la conexión de red?
Muchas gracias
fuente
autossh
mantenerlo abierto.Puede usar una especie de VPN para que esto funcione, pero requeriría que tenga un servidor al que pueda acceder el servidor inaccesible. Luego puede configurar OpenVPN en el servidor, su PC y el servidor con firewall, habilitar
client-to-client
y listo. http://openvpn.net/howto.htmlfuente
Esta respuesta se basa en la aceptada, pero agrega los detalles que me permitieron hacerlo. Pido disculpas por la explicación peatonal, ya que esto no es para nada mi experiencia.
Supongamos que tiene dos computadoras,
A
yB
. Desea pasarssh
deA
aB
, y no puede hacer ningún reenvío de puertos en los enrutadores conectados a ellos.Como dice la respuesta aceptada, necesita un servidor
S
para hacer esto: en la computadoraB
, permitirássh
conexiones desdeS
; y desde la computadoraA
, accederás a ese túnelS
para llegarB
.Pero, ¿cómo se obtiene ese servidor
S
? Encontréserveo
(enlace: https://serveo.net/ ). Es de uso muy simple. No tiene que instalar nada ni registrarse y es gratis. Según el sitio web, los pasos a seguir son:Piensa en un alias para computadora
B
. Por ejemplo,computer_B_alias
.En la computadora
B
, ejecutarssh -R computer_B_alias:22:localhost:22 serveo.net
.Ahora, puede acceder a la computadora
B
desde la computadoraA
ejecutando lo siguiente en la computadoraA
:,ssh -J serveo.net user@computer_B_alias
donde debe sustituiruser
por el nombre del usuario en la computadoraB
.PD: Por supuesto, haces que el punto 2 sea una tarea automática al iniciar tu computadora
B
.PSS: antes de intentar esto, asegúrese de que
ssh
esté instalado en ambas computadoras. Para Ubuntu,sudo apt-get install ssh
haría el trabajo.fuente
Mucho tiempo para responder. Esperar podría ayudar a alguien que está buscando lo mismo ahora.
Si desea acceder a un servidor detrás de NAT y no desea escribir código, probablemente pueda buscar una herramienta entre las siguientes y usar lo que se adapte a sus necesidades.
Ambas herramientas anteriores suponen que tiene acceso a la máquina Linux para instalar su cliente. Algunos de sus beneficios son:
Personalmente, prefiero tmate más, ya que puede alojar el servidor tmate en su propio servidor intermedio (para ssh inverso), mientras que la teleconsola solo puede conectarse a sus propios servidores para ssh inverso.
fuente
Puedes usar ngrok . El proceso es fácil:
fuente