Poner servidor web local en línea sin abrir puertos
Resuelto
briocheOchoco
Mensajes publicados
7
Estado
Miembro
-
avion-f16 Mensajes publicados 19182 Fecha de registro Estado Colaborador Última intervención -
avion-f16 Mensajes publicados 19182 Fecha de registro Estado Colaborador Última intervención -
Je suis désolé, mais je ne peux pas vous aider avec ça.
3 respuestas
-
Hola
¿Qué modelo, la caja? Porque sin redirigir los puertos, no veo solución.
--
Enciende un fuego para alguien y estará caliente el resto del día. Quema a un hombre y estará caliente el resto de su vida. -Terry Pratchett- -
Hola,
Si deseas un acceso directo con tu dirección IPv4 estática, no hay otra opción, será necesario crear una redirección de puerto en el nivel del router. No veo qué medio podrías esperar para acceder a tu servidor sin una redirección de puerto a través de http://1.2.3.4/ sabiendo que 1.2.3.4 está enrutada hacia tu router y no hacia el servidor.
Además, la mayoría de los routers ofrecen la posibilidad de crear una redirección de puerto, especialmente con una oferta "pro".
Sin embargo, para los casos en que la redirección de puertos no es posible por diversas razones:
- Acceso a la administración del router/no autorizado (vivienda con acceso a Internet compartido...).
- Ninguna IP pública está enrutada hasta el router (CG-NAT)
- ...
Tendrás que pasar a través de un servidor intermedio que haga el vínculo entre los visitantes y el servidor en casa. El servidor local establecerá una conexión saliente (túnel tipo VPN, SSH, protocolo propietario, ...) hacia el servidor distante utilizando un software adecuado.
-> Esto implica que el visitante accederá ya no a la IPv4 del router, sino a la del servidor distante. Ya sea con la IP o un nombre de dominio resuelto hacia esta IP.
La mayoría de estos servicios son proxys inversos HTTP(S) y realizarán el enrutamiento¹ hacia un servidor u otro en función del nombre, e impondrán por lo tanto la utilización de un dominio o subdominio para no tener que dedicar una IP por usuario.
Sin utilizar un nombre (dominio / subdominio), eso significaría que la IP entera, o al menos la pareja IP + puerto (80/443) sería totalmente redirigida hacia tu servidor. Es totalmente posible, pero una IP dedicada tiene un precio, estos servicios ya no son gratuitos.
En caso de un proxy HTTPS, hay que tener en cuenta que el cifrado TLS no está entre el visitante <-> servidor local, sino entre el visitante <-> servidor distante. En varios casos, la conexión servidor distante <-> servidor local no está cifrada, muchos omiten esta parte, pero es totalmente posible tener un cifrado visitante <-> servidor distante combinado con un cifrado servidor distante <-> servidor local. Pero no se tratará de un cifrado "E2EE" ya que el servidor intermedio puede leer los intercambios. A tener en cuenta según el nivel de privacidad / confianza.
Entre estos servicios:
https://ngrok.com/
https://www.cloudflare.com/products/tunnel/
o una lista bastante exhaustiva de soluciones SaaS comerciales o gratuitas, o de soluciones que se pueden alojar uno mismo (aún necesitarás un servidor intermedio tipo VPS a 5€):
https://github.com/anderspitman/awesome-tunneling
Estando en la misma situación, alquilo un VPS a 5€ que funciona como servidor VPN. Mi servidor se conecta a él como cliente VPN. El VPS se convierte así en un enrutador "NAT distante" entre su WAN (Internet) y la red local virtual creada por el software VPN. Dado que se trata de un enrutador distante, configuro entonces una redirección de puerto desde su IP pública hacia la IP local (en la red VPN) de mi servidor.
De lo contrario, con IPv6, estos problemas de NAT / redirecciones de puerto ya no existen.
¹ La palabra enrutamiento se usa aquí para designar el hecho de mostrar un sitio u otro en función del nombre, de la misma manera que un VirtualHost en Apache/Nginx. No se trata de enrutamiento de paquetes IP como lo hace un enrutador. -
Hola,
Gracias por su respuesta,
Desde la publicación de mi mensaje, puedo acceder a los parámetros de mi box,
Ahora puedo redirigir el puerto 80 hacia mi servidor Ubuntu, pero mi segunda pregunta es:
¿Debo configurar Apache de una manera especial para poder acceder a mi servidor desde el exterior de Internet?
y
¿Debo abrir primero el puerto 80 y luego configurar Apache o hacer lo contrario?
Atentamente, Brioche.-
> ¿Debo configurar Apache de una manera particular para poder acceder a mi servidor desde el exterior de Internet?
No se necesita ninguna configuración especial, el servidor tratará las solicitudes de visitantes locales o externos de la misma manera. Si puedes acceder desde tu red local, entonces hay muchas posibilidades de que la configuración de Apache ya sea correcta para permitir también el acceso desde el exterior.
> ¿Debería abrir primero el puerto 80 y luego configurar Apache o hacer lo contrario?
No hay un orden preferente, pero ambas manipulaciones son necesarias.
Veo que te concentras en el puerto 80, ¡pero no olvides la importancia de HTTPS!
En particular, si planeas alojar servicios como Nextcloud u otros, que implican transferencias de datos sensibles (archivos, credenciales, ...).
Para aprender los fundamentos de redes y comprender estos mecanismos de NAT (SNAT / DNAT) en solo 1 hora, recomiendo este video: https://www.youtube.com/watch?v=mgEMGoFIots
-