Acceda a IP interna mediante IP pública

38

Tengo un módem DSL con una dirección IP pública ( 201.206.x.x) y tengo un servidor web en mi red interna ( 192.168.0.50).

Configuré el módem para reenviar solicitudes al puerto 80 a mi servidor web, por lo que, si accedo 201.206.x.xdesde fuera de mi red, muestra mi página web, lo mismo ocurre si accedo 192.168.0.50desde una computadora dentro de mi red.

Ahora, el problema es cuando intento acceder 201.206.x.xdesde mi red interna, el navegador intenta conectarse a la configuración del módem DSL, en lugar de redirigir mi solicitud a mi servidor web.

¿Qué configuraciones debo cambiar en el módem para configurar esta redirección?

willvv
fuente
Una variación del problema, tengo múltiples (2) servidores de alojamiento y he configurado un DNS (BIND9) para las solicitudes internas. ¿Cómo asigno (a diferentes servidores de alojamiento) solicitudes externas (a IP pública) en función del nombre de host?
Kunal B.

Respuestas:

20

El problema es que la reescritura de paquetes generalmente solo puede tener lugar al atravesar el firewall. En general, los enrutadores no pueden realizar la reescritura necesaria cuando la solicitud llega desde la misma red en la que se volvería a escribir la solicitud. La solución común a este problema es colocar un proxy web fuera de la red que regrese la solicitud a través de su firewall.

Sospecho que su problema específico es que desea acceder al sitio web a través de su nombre de host DNS. Puede manejar eso utilizando DNS de "horizonte dividido", por lo que presta atención al origen de la solicitud y responde de manera adecuada: si la solicitud proviene de su red, distribuye el 192.168.0.50 a las solicitudes que provienen de su red y la IP pública a todos los demás.

Cualquiera de estas sugerencias podría implementarse en cualquier host fuera de su red, como una microinstancia Amazon EC2 (gratuita).

Insyte
fuente
Gracias, aunque creo que me quedaré con la edición de archivos HOSTS ya que es básicamente un sitio personal que uso para las pruebas de los sitios en los que estoy trabajando. La PC ni siquiera está activa las 24 horas, todos los días.
3
Resolví este problema en mi propia red doméstica agregando un registro A con el mismo nombre que mi nombre externo de Dyndns en mi propio servidor DNS (que también se ejecuta en mi red doméstica). El registro A apunta a la ubicación adecuada en mi red doméstica, al igual que el registro PTR inverso. Pero, por supuesto, no todos están ejecutando su propio DNS en casa ...
LawrenceC
14

Diría que @Insyte está en algo cuando habla de que el problema es un problema de resolución de DNS ... lo que significa que el problema es la reescritura de paquetes (lea la publicación de @Insyte nuevamente para obtener esa explicación).

Suponiendo que tiene la siguiente configuración:

  1. IP pública: 201.206.x.y
  2. IP privada: 192.168.0.50
  3. Reenvío de puertos para todos los 80 (y 443 si está haciendo SSL) en IP 201.206.x.y192.168.0.50

Luego escribe lo siguiente en su navegador, mientras está en su red interna:

http://www.yourwebsite.com

y se produce el error Entonces, solución: hackear su archivo de hosts.

En Windows, vaya a C:\windows\system32\drivers\etc\hosts (aviso, no hay extensión en ese archivo). En Linux, el archivo se encuentra en /etc/hosts.

Si abre ese archivo en el Bloc de notas, puede ver las entradas que se utilizan para anular DNS. Si desea actualizar ese archivo, deberá abrir el Bloc de notas (o cualquier programa que esté utilizando para editar el archivo) con derechos de administrador; de lo contrario, no podrá guardar el archivo.

Agregue esto a su archivo de hosts:

192.168.0.50 www.yourwebsite.com

Luego reinicie su navegador , ingrese la URL y violà! Esta funcionando. Esto significa que su navegador no depende de su DNS para resolver su dominio a la IP. En cambio, estamos anulando esto y diciendo: Navegador, solo vaya a mi IP interna para ese nombre de dominio, en lugar de pedirle a DNS la dirección IP .

Si está en una oficina, puede obtener todas las personas que necesitan acceder a este sitio web interno, para hackear su archivo de hosts, o si tiene un DNS interno, entonces puede agregar una entrada a eso.

Otra idea es tener un servidor proxy interno (para toda la navegación web, etc.) y luego hackear el archivo hosts en el servidor proxy. Esto significa que su navegador dirá, Proxy, ¿puede obtenerme el recursohttp://www.mywebsite.com y el proxy dice Seguro, y debido a que me han dicho que ignore el DNS para ese dominio, simplemente le daré la IP que ha sido codificada mi archivo de hosts .

Pure.Krome
fuente
Sí, en realidad tenía esto antes de publicar, solo quería poder acceder a él a través de la IP real, pero creo que puedo vivir con eso ya que mi módem no tiene reflexión NAT (como lo sugiere @MaQleod).
3
¿Qué pasa con una computadora portátil o teléfono inteligente que con frecuencia accede al mismo sitio a través de una red interna o externa?
ÁRBOL
@TREE puedes por favor elabore. No entendí bien tu pregunta.
Pure.Krome
Tengo una configuración muy similar, excepto que estoy usando nombres de dominio. Entonces, desde fuera de la red, mi dominio se resuelve en mi IP externa, y desde adentro, se resuelve en la IP interna. Tengo computadoras portátiles y teléfonos inteligentes que frecuentemente acceden desde adentro y desde afuera, por lo que piratear el archivo de hosts no funcionaría. Lo que he hecho es básicamente lo que sugiere su otra respuesta (Pure.Krome), solo que en lugar de usar un servidor externo, solo le estoy diciendo al servidor DHCP en el enrutador que anteponga un servidor DNS interno. Funciona principalmente, pero hay retrasos molestos al cambiar de red antes de que las cosas comiencen a resolverse.
ÁRBOL
9

Este es un problema común con la forma en que algunos enrutadores manejan el tráfico destinado a su dirección pública desde una dirección interna: no siguen las mismas reglas de reenvío de puertos que las solicitudes desde fuera de la red. Lo que debe buscar en sus enrutadores es la reflexión NAT . Esto permitirá que el enrutador maneje las solicitudes internas de la IP pública para usar las mismas reglas de reenvío de puertos que si la solicitud provenga de fuera de la red.

MaQleod
fuente
1
Reflexión NAT. Creo que eso es lo que estaba buscando. Lamentablemente mi módem no tiene eso. ¡Gracias!
¿Qué hacer cuando su módem no admite NAT loopback?
PrimitiveNom
2

Podría ayudarlo mejor si pudiera darme su marca y modelo de módem ...

Pero lo que sucede aquí es que normalmente una página de configuración de enrutador o módem solo debería aparecer al visitar su IP interna (192.168.0.1)

Pero lo que parece estar sucediendo aquí es que identifica la solicitud entrante (201.206.xx) Como viene desde adentro, decide darle la página de configuración en lugar de la ruta normal a su servidor web ...

Ahora, si está utilizando un módem de nivel de consumidor, probablemente no pueda cambiar esto (lo siento)

Pero tal vez pueda: Pruebe y vea si hay configuraciones de 'escuchar' en su página de configuración de administrador

Allí puede intentar cambiar su página de administración a otro puerto o limitar las direcciones que está escuchando

HTDutchy
fuente
2

Quizás el problema es que se permite la administración remota.

Plamen
fuente
2

Puede agregar una ruta para acceder a la IP pública del servidor directamente a través de su IP local. En Windows, el comando es como

route add [public IP] mask 255.255.255.255 [the server's local IP]

Para agregar una ruta persistente, agregue el -pparámetro al comando anterior.

Luego, cada vez que visite la IP pública, la computadora pasará por la IP local del servidor como puerta de enlace. Debido a que el servidor conoce su propia IP pública, procesará el paquete de sí mismo, en lugar de reenviarlo a la red local.

Debe asegurarse de que la IP local del servidor esté estática.

qevan
fuente
¿Por qué el servidor conoce su propia dirección IP pública?
G-Man dice 'reinstalar a Monica' el
Los servidores ciertamente conocen sus IP. IP estáticas o dinámicas. No estoy seguro de cómo funciona exactamente el enrutamiento. Supongo que cada máquina tiene un mapa de ruta. Cuando recibe paquetes, decide si debe procesar el paquete.
qevan
0

Tener este mismo problema. Pude solucionar esto agregando el nombre de host DNS a la lista de asignación de host DNS de mi enrutador. Encontré estas configuraciones en la lista de opciones avanzadas de mi enrutador.

Gibado
fuente
0

En mi enrutador, tuve que desactivar la "aceleración NAT" (corte a través del reenvío) ya que esto rompió el loopback NAT ...

Gaymon Howard Wright III
fuente