acceder a un servidor desde su LAN y desde el exterior con el mismo dominio

acceder a un servidor desde su LAN y desde el exterior con el mismo dominio

Situación

Tengo un servidor en mi LAN que ejecuta un servidor LAMP, lo uso para TeamSpeak, nextcloud, alojamiento web personal, etc.

Soy propietario de un dominio "a través" de Cloudflare, que redirige a mi dirección IP pública.

Accedo al servidor desde la LAN y el exterior.

mi problema / lo que quiero cambiar

Debido a que mi servidor está en mi LAN, tiene la misma dirección IP pública que mi cliente (obviamente, solo cuando estoy en casa). Por lo tanto, no puedo acceder a mi servidor porque hacer ping a mi propia IP pública no funciona (comportamiento normal, supongo).

Entonces, para superar este problema, uso mi archivo de hosts para redirigir mi dominio a la dirección IP local de mi servidor. Pero cada vez que cambio de posición (casi todos los días) tengo que editar este archivo.

Y esto también funciona sólo en los pocos dispositivos en los que puedo editar este archivo. Entonces, en mi teléfono (Android), por ejemplo, no puedo acceder a mis sitios web ni a nada específico del dominio.

¿Hay alguna manera de superar este problema?

De hecho tengo algunas ideas

  • encontrar alguna manera de que mi dirección IP pública sea "pingable" desde mi LAN
  • configurar un servidor DNS local
  • diferentes archivos de zona DNS según la dirección IP solicitante, si eso es posible (tal vez Cloudflare ofrezca esta función). (si la dirección IP solicitante es la misma a la que redirige el dominio, responde con mi IP local para el servidor)

editar (17.03.17)

Olvidé mencionar que también quiero usar este servidor para correo en el futuro. Entonces tiene que estar preparado para eso.

Ahora instalé un servidor DNS que resuelve mi dominio en la dirección IP local del servidor (usando bind9; también para revertir). Esto funciona perfectamente bien, pero para eso tuve que configurar manualmente mis servidores DNS (los que solicita mi computadora), lo que resultó en tiempos de carga más lentos (de otros sitios web). Pero esta tampoco es la solución perfecta, porque entonces alguien como mis amigos no puede acceder al servidor porque no tiene mi propio servidor DNS en su lista. ¿Cambiar los servidores DNS predeterminados de mi enrutador resolvería este problema?

Desafortunadamente tengo una dirección IP pública dinámica, cambia aproximadamente cada tres semanas. Hasta ahora he cambiado mi entrada DNS manualmente, pero eso tiene que cambiar (por eso cambié a Cloudflare, ofrecen una API para eso).

Para acceder a mi servidor desde el exterior, tuve que redirigir/reenviarle algunos puertos. Aquí hay una captura de pantalla de ellos:

ingrese la descripción de la imagen aquí

Respuesta1

La respuesta depende de su utilidad. Si solo usa http para comunicarse con el servidor en su LAN interna (por nombre público), puede cambiar el comportamiento según el puerto. También puede emitir una redirección desde su lámpara local según la dirección IP de origen, por ejemplo. (por ejemplo, si tiene la dirección de origen como puerta de enlace externa, entonces podría redirigir la solicitud a la dirección IP interna). Sin embargo, eso no te daría el mapeo de nombres.

Aun así, parece que hay una mala configuración en el reenvío de puertos del enrutador. No hablo de horquillado, que mis enrutadores tampoco admiten, pero uso el reenvío de puertos y puedo conectarme a servidores internos desde dentro o fuera de nuestra LAN enrutando a través del dominio/interfaz externo. Por ejemplo, tengo una entrada DNS home.domain.com que apunta a la interfaz wan del enrutador. Ya sea que esté dentro o fuera, las solicitudes a home.domain.com van a la interfaz wan y luego se reenvían al servidor de destino correcto. Esto sigue siendo indirecto en algunos aspectos, pero funciona, por lo que debería funcionar para usted también.

También es una cuestión de cuántos otros servidores proporcionan el puerto/servicio dentro de su LAN. ¿Es sólo uno?

Finalmente, también considero este problema de vez en cuando, ya que quiero una política de nombre de host que también dependa de la red a la que estoy conectado. Tal vez una opción fácil sea { (a) escribir un script de programación (si está en Windows) o (b) agregar un script a ifup/ifcfg } que haga ping al host Linux específico u otros activos conocidos dentro de la LAN y luego configure el valor de los hosts en función de él. No es tan elegante como ejecutar su propio servidor DNS con sus propias reglas internas (que, por cierto, pueden ser igual de fáciles de manejar, ya que el dhcp puede proporcionar el servidor DNS de la LAN interna).

¿Quizás no le funcione porque está utilizando la redirección de IP para su nombre de dominio, en lugar de DNS dinámico? Por ejemplo, nuestra IP pública es dinámica, por lo que hago que mis servidores internos actualicen periódicamente mi subdominio/dnsmadeeasy con la dirección IP pública/externa. Luego, la búsqueda del nombre de host va directamente a la dirección IP correcta, no se redirige allí.

Respuesta2

Lamento que me haya tomado tanto tiempo para finalmente escribir esta respuesta final.

(ya mencionado en la edición de la pregunta)
La manera perfecta sería tener un enrutador que admita horquilla/NAT. Pero el mío no. Por eso he decidido utilizar un servidor DNS. Solo tuve que cambiar los servidores DNS predeterminados en mis computadoras y teléfono, etc. (lo cual, por cierto, es posible en todos los sistemas operativos comunes). Esto resultó en tiempos de carga poco pero notables (al menos eso creo) más lentos. Pero no es gran problema.

Pero el siguiente (otras personas no pudieron acceder al servidor cuando estaban en mi LAN debido a que no tenían mi servidor DNS en su lista) fue un problema mayor y, por lo tanto, decidí dejarlo allí. La única forma que supongo que existe es cambiando los servidores DNS predeterminados en mi enrutador. Pero para hacer eso tendría que modificar toda la configuración, pero existen formas conocidas de hacerlo.

Sobre el problema con mi cambio de dirección IP:
Escribí un pequeño script que busca cada cinco segundos si tengo una nueva dirección IP y, si ese es el caso, la cambia automáticamente a través de la API de Cloudflare mencionada anteriormente. Si alguien lo necesita y le da pereza escribirlo él mismo, puedo publicarlo.

Gracias @Beracah por tu respuesta :)

información relacionada