Pregunta

Tengo un sitio web ASP.NET alojado en casa en IIS. Fuera de mi red doméstica puedo ver el sitio web, pero dentro de la red me da un error 404. Puedo navegar por el sitio como localhost. Parece un problema de DNS, pero no estoy seguro de cómo solucionarlo.

¿Fue útil?

Solución

Eso es casi ciertamente un problema de NAT. Supongo que su servidor web se encuentra detrás de un enrutador NAT y ha reenviado algún puerto (probablemente 80) desde la interfaz externa del enrutador al puerto 80 en su máquina servidor. También asumo que está intentando acceder a su sitio web usando un nombre que se resuelve en su IP externa (probablemente un nombre de DNS dinámico) o que está tratando de acceder directamente usando esa IP externa. Probablemente esto no saldrá de la caja ya que la mayoría de los enrutadores NAT solo harán que la asignación de puertos esté disponible para los paquetes que ingresan en la interfaz externa del enrutador.

Si lo anterior es cierto, hay cuatro soluciones posibles:

  1. Observe la configuración de su enrutador e intente encontrar algo similar a " NAT loopback " ;, " Ext-int loopback " o similar. Eso le indicará al enrutador que maneje los paquetes provenientes de la interfaz interna y destinados a la IP externa, tal como lo haría con los paquetes provenientes de la interfaz externa, que efectivamente retornan el tráfico de manera correcta. Eso activará el reenvío de puertos y su sitio funcionará. No todos los enrutadores tienen esta opción, pero si el tuyo es la solución más robusta. Si el tuyo no lo hace, también puedes intentar cambiar su firmware a uno de los gratuitos que son compatibles con tu enrutador (Tomate, OpenWRT, DD-WRT, etc.). He usado Tomato exitosamente para tales escenarios.

  2. Use la IP interna cuando esté detrás del enrutador y la externa cuando esté afuera.

  3. Agregue el nombre DNS que está usando a su propio archivo de hosts para que corresponda a la IP interna. Esto logrará (3) automáticamente al acceder al nombre desde su propio host. Tendrá que repetir esto para cada host único detrás de su enrutador.

  4. Ejecute su propio servidor DNS detrás del enrutador, haga que adquiera autoridad sobre su registro DNS y resuélvalo a la IP interna, mientras reenvía las demás consultas de DNS a su servidor de nombres real.

Otros consejos

La dirección IP visible externamente a la que presumiblemente has apuntado tu dominio es realmente la dirección IP de tu enrutador o cable módem. Las conexiones externas se enrutarán a la máquina con IIS activado, pero cuando se conecte desde dentro de la red, obtendrá el servidor web del enrutador con su interfaz de administración. Es poco probable que tenga una página que coincida con la URL que solicitó, por lo que obtendrá un 404.

Debería poder solucionarlo agregando una entrada a los archivos hosts de las máquinas de su hogar para asignar su dominio a la IP interna de la máquina con IIS activado, anulando la IP externa en la entrada del DNS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top