Domanda

Ho un sito Web ASP.NET ospitato a casa su IIS. Al di fuori della mia rete domestica posso vedere il sito Web, ma all'interno della rete mi dà un errore 404. Posso navigare nel sito come localhost. Sembra un problema DNS, ma non so come risolverlo.

È stato utile?

Soluzione

Questo è quasi certamente un problema NAT. Suppongo che il tuo server Web si trovi dietro un router NAT e tu abbia inoltrato una porta (probabilmente 80) dall'interfaccia esterna del router alla porta 80 sul tuo server. Suppongo anche che tu stia tentando di accedere al tuo sito Web utilizzando un nome che si risolve nel tuo IP esterno (probabilmente un nome DNS dinamico) o stai tentando di accedervi direttamente utilizzando tale IP esterno. Questo probabilmente non funzionerà immediatamente poiché la maggior parte dei router NAT renderà disponibile la mappatura delle porte solo per i pacchetti che arrivano sull'interfaccia esterna del router.

Se quanto sopra vale, ci sono quattro possibili soluzioni:

  1. Guarda la configurazione del tuo router e prova a trovare qualcosa di simile a "loopback NAT", "loopback Ext-int" o simili. Ciò istruirà il router a gestire i pacchetti in arrivo dall'interfaccia interna e destinati all'IP esterno così come gestirà i pacchetti in arrivo dall'interfaccia esterna, eseguendo correttamente il loop back del traffico. Ciò attiverà il port forwarding e il tuo sito funzionerà. Non tutti i router hanno questa opzione, ma se la tua lo farebbe sarebbe la soluzione più affidabile. In caso contrario, potresti anche provare a cambiare il suo firmware con uno di quelli gratuiti che supportano il tuo router (Tomato, OpenWRT, DD-WRT, ecc.) Che ho usato Pomodoro con successo per tali scenari.

  2. Usa l'IP interno quando sei dietro il router e quello esterno quando sei all'esterno.

  3. Aggiungi il nome DNS che stai usando al tuo file host facendolo corrispondere all'IP interno. Ciò raggiungerà (3) automaticamente quando si accede al nome dal proprio host. Dovrai ripetere questo per ogni singolo host dietro il tuo router.

  4. Esegui il tuo server DNS dietro il router, falli rivendicare l'autorità sul tuo record DNS e risolvilo sull'IP interno, mentre inoltra le altre query DNS al tuo vero server dei nomi.

Altri suggerimenti

L'indirizzo IP visibile esternamente che hai presumibilmente indirizzato al tuo dominio è in realtà l'indirizzo IP del tuo router o modem via cavo. Le connessioni esterne verranno instradate alla macchina con IIS attivo, ma quando ti connetti dall'interno della rete otterrai il server web del router con la sua interfaccia di amministrazione. È improbabile che abbia una pagina corrispondente all'URL richiesto, quindi otterrai un 404.

Dovresti essere in grado di risolverlo aggiungendo una voce ai file hosts dei tuoi computer di casa per mappare il tuo dominio sull'IP interno della macchina con IIS attivo, sovrascrivendo l'IP esterno nella voce DNS.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top