Accedi all'IP interno usando l'IP pubblico


38

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 sul mio server Web, quindi, se accedo 201.206.x.xdall'esterno della mia rete, mostra la mia pagina Web, lo stesso accade se accedo 192.168.0.50da un computer all'interno della mia rete.

Ora, il problema è quando provo ad accedere 201.206.x.xdalla mia rete interna, il browser tenta di connettersi alla configurazione del modem DSL, invece di reindirizzare la mia richiesta al mio server Web.

Quali impostazioni devo modificare nel modem per configurare questo reindirizzamento?


Una variante al problema, ho più (2) server di hosting e ho configurato un DNS (BIND9) per le richieste interne. Come posso mappare (a diversi server di hosting) richieste esterne (a IP pubblico) in base al nome host?
Kunal B.

Risposte:


20

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 su cui verrebbe riscritta. La soluzione comune a questo problema è posizionare un proxy Web all'esterno della rete che riavvia la richiesta attraverso il firewall.

Sospetto che il tuo problema specifico sia che desideri accedere al sito Web tramite il nome host DNS. Puoi gestirlo utilizzando il DNS "split-horizon", quindi presta attenzione a dove proviene la richiesta e risponde in modo appropriato: se la richiesta proviene dall'interno della tua rete, distribuisce 192.168.0.50 alle richieste provenienti dalla tua rete e IP pubblico a tutti gli altri.

Entrambi questi suggerimenti potrebbero essere implementati su qualsiasi host esterno alla rete, come una microistanza (gratuita) di Amazon EC2.


Grazie, anche se penso che rimarrò fedele all'editing dei file HOSTS poiché è fondamentalmente un sito personale che utilizzo per test di siti su cui sto lavorando. Il PC non è nemmeno attivo 24/7.

3
Ho risolto questo problema sulla mia rete domestica aggiungendo un record A con lo stesso nome del mio nome dyndns esterno sul mio server DNS (anche in esecuzione sulla mia rete domestica). Il record A indica la posizione corretta nella mia rete domestica, così come il record PTR inverso. Ma ovviamente non tutti eseguono il proprio DNS di casa ...
LawrenceC

14

Direi che @Insyte è su qualcosa quando parla del problema che è un problema di risoluzione DNS .. il che significa che il problema è la riscrittura dei pacchetti (leggi di nuovo @Insyte post per quella 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) su IP 201.206.x.y192.168.0.50

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

http://www.yourwebsite.com

e si verifica l'errore. Quindi, soluzione: hackerare il 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 apri quel file nel Blocco note, puoi vedere tutte le voci utilizzate per sovrascrivere DNS. Se desideri aggiornare quel file, dovrai aprire Blocco note (o qualunque programma tu stia usando per modificare il file) con i diritti di amministratore, altrimenti non potrai salvare il file.

Aggiungi questo al tuo file hosts:

192.168.0.50 www.yourwebsite.com

Quindi riavvia il browser , inserisci l'URL e il violà! Sta funzionando. Ciò significa che il tuo browser non si affida al tuo DNS per risolvere il tuo dominio sull'IP. Invece, stiamo ignorando questo e dicendo: Browser, vai al mio IP interno per quel nome di dominio, invece di chiedere a DNS l'indirizzo IP .

Se sei in un ufficio, puoi ottenere tutte le persone che hanno bisogno di accedere a questo sito Web interno, hackerare il loro file host o se hai un DNS interno, quindi puoi aggiungere una voce a quello.

Un'altra idea è quella di avere un server proxy interno (per tutta la navigazione web, ecc.) E quindi hackerare il file hosts sul server proxy. Questo significa che il tuo browser dirà, Proxy, per favore puoi procurarmi la risorsahttp://www.mywebsite.com e il proxy dice Certo, e poiché mi è stato detto di ignorare il DNS per quel dominio, darò solo l'IP che è stato codificato il mio file hosts .


Sì, in realtà l'ho avuto prima di pubblicare, volevo solo essere in grado di accedervi attraverso l'IP reale, ma penso di poterlo convivere poiché il mio modem non ha la riflessione NAT (come suggerito da @MaQleod).

3
Che dire di un laptop o smartphone che accede spesso allo stesso sito tramite rete interna o esterna?
ALBERO

@TREE puoi per favore elabourate. Non ho capito bene la tua domanda.
Pure.Krome,

Ho una configurazione molto simile, tranne per il fatto che sto usando nomi di dominio. Quindi dall'esterno della rete il mio dominio si risolve nel mio IP esterno e dall'interno si risolve nell'IP interno. Ho laptop e smartphone che accedono frequentemente dall'interno e dall'esterno, quindi l'hacking del file hosts non funzionerebbe. Quello che ho fatto è fondamentalmente ciò che suggerisce la tua (Pure.Krome) altra risposta, solo invece di usare un server esterno sto solo dicendo al server DHCP sul router di anteporre un server DNS interno. Funziona principalmente, ma ci sono fastidiosi ritardi quando si cambia rete prima che le cose inizino a risolversi.
ALBERO

9

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 inoltro della porta delle richieste dall'esterno della rete. Ciò che è necessario cercare nei router è la riflessione NAT . Ciò consentirà al router di gestire le richieste interne affinché l'IP pubblico utilizzi le stesse regole di port forwarding come se la richiesta provenisse dall'esterno della rete.


1
Riflessione NAT. Penso che sia quello che stavo cercando. Sfortunatamente il mio modem non lo possiede. Grazie!

cosa fare quando il modem non supporta il loopback NAT ??
PrimitiveNom

2

Potrei aiutarti meglio se tu potessi darmi la tua marca e modello di modem ...

Ma ciò che accade qui è che normalmente una pagina di configurazione del router o del modem dovrebbe apparire solo quando si visita il loro IP interno (192.168.0.1)

Ma quello che sembra accadere qui è che identifica la richiesta in arrivo (201.206.xx) Come proveniente dall'interno, quindi 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 cambiarlo (scusa)

Ma forse puoi: Prova a vedere se ci sono impostazioni di "ascolto" nella tua pagina di configurazione dell'amministratore

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


2

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


2

È possibile aggiungere una route per accedere direttamente all'IP pubblico del server tramite il suo IP locale. Su Windows, il comando è simile

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

Per aggiungere un percorso persistente, aggiungere -p parametro al comando sopra.

Quindi ogni volta che visiti 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, anziché inoltrarlo alla rete locale.

Devi assicurarti che l'IP locale del server sia statico.


Perché il server conosce il proprio indirizzo IP pubblico?
G-Man dice "Ripristina Monica" il

I server conoscono sicuramente i loro IP. IP statici o dinamici. Non sono sicuro di come funzioni esattamente il routing. Suppongo che ogni macchina abbia una mappa del percorso. Quando ha ricevuto i pacchetti, decide se deve elaborare il pacchetto.
Qevan,

0

Avere questo stesso problema. Sono stato in grado di risolvere questo problema aggiungendo il nome host DNS all'elenco Mapping host DNS del mio router. Ho trovato queste impostazioni elencate nell'elenco delle opzioni avanzate del mio router.


0

Sul mio router, ho dovuto disattivare "Accelerazione NAT" (Cut Through Forwarding) poiché questo ha interrotto il loopback NAT ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.