2011-03-19 22:41:21 +0000 2011-03-19 22:41:21 +0000
38
38

Accesso all'IP interno usando l'IP pubblico

Ho un modem DSL con un indirizzo IP pubblico (201.206.x.x), e ho un server web nella mia rete interna (192.168.0.50).

Ho impostato il modem per inoltrare le richieste alla porta 80 al mio server web, così, se accedo a 201.206.x.x dall'esterno della mia rete, mostra la mia pagina web, lo stesso accade se accedo a 192.168.0.50 da un computer all'interno della mia rete.

Ora, il problema è che quando provo ad accedere a 201.206.x.x dalla mia rete interna, il browser cerca di connettersi alla configurazione del modem DSL, invece di reindirizzare la mia richiesta al mio server web.

Quali impostazioni devo cambiare nel modem per impostare questo reindirizzamento?

Risposte (8)

20
20
20
2011-03-19 23:02:55 +0000

Il problema è che la riscrittura dei pacchetti può generalmente avvenire solo quando si attraversa il firewall. In generale i router non possono eseguire la riscrittura necessaria quando la richiesta arriva dalla stessa rete in cui la richiesta verrebbe riscritta. La soluzione comune a questo problema è mettere un proxy web fuori dalla rete che fa passare la richiesta attraverso il firewall.

Sospetto che il tuo problema specifico sia che vorresti accedere al sito web attraverso il suo nome host DNS. Potete gestirlo usando il DNS “split-horizon”, in modo che presti attenzione alla provenienza della richiesta e risponda in modo appropriato: Se la richiesta proviene dall'interno della vostra rete, distribuisce il 192.168.0.50 alle richieste provenienti dalla vostra rete e l'IP pubblico a tutti gli altri.

Entrambi questi suggerimenti potrebbero essere implementati su qualsiasi host al di fuori della vostra rete, come una micro istanza (gratuita) di Amazon EC2.

14
14
14
2011-03-20 00:32:24 +0000

Direi che @Insyte ha ragione quando parla di un problema di risoluzione DNS… il che significa che il problema è la riscrittura dei pacchetti (rileggete il post di @Insyte per questa spiegazione).

Supponendo che tu abbia la seguente configurazione:

  1. IP pubblico: 201.206.x.y
  2. IP privato: 192.168.0.50
  3. Port forwarding per tutti gli 80 (e 443 se stai facendo SSL) sull'IP 201.206.x.y192.168.0.50

Scrivi quanto segue nel tuo browser, mentre sei nella tua rete interna:

http://www.yourwebsite.com

e si verifica l'errore. Quindi, soluzione: hackera il tuo file hosts.

Su Windows, vai a C:\windows\system32\drivers\etc\hosts (nota, non c'è estensione su quel file). Su Linux, il file si trova in /etc/hosts.

Se aprite quel file in Notepad, potete vedere tutte le voci che sono usate per sovrascrivere il DNS. Se vuoi aggiornare quel file, dovrai aprire Notepad (o qualsiasi programma tu stia usando per modificare il file) con diritti di amministratore - altrimenti non potrai salvare il file.

Aggiungi questo al tuo file hosts:

192.168.0.50 www.yourwebsite.com

Poi riavvia il tuo browser, inserisci l'URL e violà! Funziona. Quindi questo significa che il vostro browser non si affida al vostro DNS per risolvere il vostro dominio all'IP. Invece, stiamo sovrascrivendo questo e dicendo: Browser, vai al mio IP interno per quel nome di dominio, invece di chiedere al DNS l'indirizzo IP.

Se siete in un ufficio, allora potete chiedere a tutte le persone che hanno bisogno di accedere a questo sito web interno, di violare il loro file hosts, o se avete un DNS interno, allora potete aggiungere una voce in quello.

Un'altra idea è quella di avere un server proxy interno (per tutta la navigazione web, ecc) e poi violare il file hosts sul server proxy. Questo significa che il vostro browser dirà, Proxy, puoi farmi avere la risorsa http://www.mywebsite.com e il proxy dirà Sicuro, e poiché mi è stato detto di ignorare il DNS per quel dominio, darò solo l'IP che è stato hard-coded nel mio file hosts.

9
9
9
2011-03-20 01:27:58 +0000

Questo è un problema comune con il modo in cui alcuni router gestiscono il traffico destinato al loro indirizzo pubblico da un indirizzo interno - non seguono le stesse regole di port forwarding delle richieste dall'esterno della rete. Quello che dovete cercare nei vostri router è NAT reflection. Questo permetterà al router di gestire le richieste interne per l'IP pubblico per utilizzare le stesse regole di port forwarding come se la richiesta provenisse dall'esterno della rete.

2
2
2
2011-03-19 23:00:42 +0000

Potrei aiutarti meglio se potessi darmi la marca e il modello del tuo modem…

Ma quello che succede qui è che normalmente la pagina di configurazione di un router o di un modem dovrebbe apparire solo quando si visita il loro IP interno (192.168.0.1)

Ma quello che sembra succedere qui è che identifica la richiesta in entrata (201.206.x.x) come proveniente dall'interno e decide di darti la pagina di configurazione invece del normale percorso verso il tuo server web…

Ora se stai usando un modem di livello Consumer, probabilmente non sei in grado di cambiare questo (mi dispiace)

Ma forse puoi: Prova a vedere se c'è un'impostazione di ‘ascolto’ nella tua pagina di configurazione dell'amministrazione

Lì puoi provare a cambiare la tua pagina di amministrazione su un'altra porta o limitare gli indirizzi in ascolto

2
2
2
2011-03-19 23:08:12 +0000

Forse il problema è che l'amministrazione remota è permessa.

2
2
2
2015-03-12 03:14:55 +0000

Potete aggiungere una rotta per accedere all'IP pubblico del server direttamente attraverso il suo IP locale. Su Windows, il comando è come

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

Per aggiungere una rotta persistente, aggiungete il parametro -p al comando precedente.

Poi ogni volta che si visita l'IP pubblico, il computer passerà attraverso l'IP locale del server come gateway. Poiché il server conosce il proprio IP pubblico, elaborerà il pacchetto da se stesso, invece di inoltrarlo alla rete locale.

Dovete assicurarvi che l'IP locale del server sia statico.

0
0
0
2015-12-05 05:31:19 +0000

Avere questo stesso problema. Sono riuscito a risolvere il problema aggiungendo il nome dell'host DNS all'elenco DNS Host Mapping del mio router. Ho trovato queste impostazioni elencate nell'elenco delle opzioni avanzate del mio router.

0
0
0
2016-04-09 16:37:43 +0000

Sul mio router, ho dovuto disattivare “l'accelerazione NAT” (Cut Through Forwarding) perché questo rompeva il loopback NAT…