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

Dostęp do wewnętrznego IP przy użyciu publicznego IP

Mam modem DSL z publicznym adresem IP (201.206.x.x), i mam serwer WWW w mojej sieci wewnętrznej (192.168.0.50).

Ustawiłem modem tak, aby przekazywał żądania na port 80 do mojego serwera WWW, więc jeśli wejdę na serwer 201.206.x.x spoza mojej sieci, wyświetli on moją stronę WWW, to samo dzieje się, jeśli wejdę na serwer 192.168.0.50 z komputera wewnątrz mojej sieci.

Teraz problem polega na tym, że gdy próbuję uzyskać dostęp do 201.206.x.x z mojej sieci wewnętrznej, przeglądarka próbuje połączyć się z konfiguracją modemu DSL, zamiast przekierować moje żądanie do mojego serwera WWW.

Jakie ustawienia muszę zmienić w modemie, aby skonfigurować to przekierowanie?

Odpowiedzi (8)

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

Problem polega na tym, że przepisywanie pakietów może odbywać się tylko podczas przechodzenia przez firewall. Ogólnie rzecz biorąc, routery nie mogą wykonać niezbędnego przepisywania, gdy żądanie przychodzi z tej samej sieci, do której ma być przepisane. Powszechnym rozwiązaniem tego problemu jest umieszczenie serwera proxy poza siecią, który zapętla żądanie z powrotem przez zaporę.

Podejrzewam, że twoim konkretnym problemem jest to, że chciałbyś uzyskać dostęp do strony internetowej poprzez jej nazwę hosta DNS. Możesz sobie z tym poradzić, używając “split-horizon” DNS, więc zwraca uwagę na to, skąd pochodzi żądanie i odpowiada odpowiednio: Jeśli żądanie pochodzi z wnętrza twojej sieci, podaje 192.168.0.50 dla żądań pochodzących z twojej sieci, a publiczny IP dla wszystkich innych.

Każda z tych sugestii może być zaimplementowana na dowolnym hoście poza twoją siecią, jak (darmowa) mikro instancja Amazon EC2.

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

Powiedziałbym, że @Insyte jest na tropie czegoś, kiedy mówi o problemie z rozdzielczością DNS … co oznacza, że problemem jest przepisywanie pakietów (przeczytaj post @Insyte ponownie, aby uzyskać to wyjaśnienie).

Zakładając, że masz następującą konfigurację:

  1. Publiczny IP: 201.206.x.y
  2. Prywatne IP: 192.168.0.50
  3. Przekierowanie portów dla wszystkich 80 (i 443, jeśli używasz SSL) na IP 201.206.x.y192.168.0.50

Następnie wpisz następujące dane w przeglądarce, będąc w swojej sieci wewnętrznej:

http://www.yourwebsite.com

i pojawia się błąd. A więc rozwiązanie: zhakuj swój plik hosts.

W Windows przejdź do C:\windows\system32\drivers\etc\hosts (zauważ, że ten plik nie ma rozszerzenia). W systemie Linux plik znajduje się w /etc/hosts.

Jeśli otworzysz ten plik w Notatniku, możesz zobaczyć wpisy, które są używane do zastępowania DNS. Jeśli chcesz zaktualizować ten plik, musisz otworzyć Notatnik (lub jakikolwiek program używany do edycji pliku) z prawami administratora - w przeciwnym razie nie będziesz mógł zapisać pliku.

Dodaj to do swojego pliku hosts:

192.168.0.50 www.yourwebsite.com

Następnie restartuj przeglądarkę, wpisz adres URL i violà! Działa. Więc to oznacza, że twoja przeglądarka nie polega na DNS, aby rozwiązać domenę do IP. Zamiast tego, jesteśmy nadrzędny to i mówi: Browser, po prostu przejdź do mojego wewnętrznego IP dla tej nazwy domeny, zamiast pytać DNS o adres IP.

Jeśli jesteś w biurze, możesz poprosić wszystkich ludzi, którzy potrzebują dostępu do tej wewnętrznej strony, aby zhakowali swój plik hosts, lub jeśli masz wewnętrzny DNS, możesz dodać wpis do niego.

Innym pomysłem jest posiadanie wewnętrznego serwera proxy (dla wszystkich surfujących po sieci, itp.), a następnie zhakowanie pliku hosts na serwerze proxy. Oznacza to, że twoja przeglądarka powie, Proxy, czy możesz mi podać zasób http://www.mywebsite.com, a serwer proxy powie Pewnie, a ponieważ powiedziano mi, aby zignorować DNS dla tej domeny, po prostu podam IP, które zostało twardo zakodowane w moim pliku hosts.

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

Jest to częsty problem związany ze sposobem, w jaki niektóre routery obsługują ruch przeznaczony dla ich adresu publicznego z adresu wewnętrznego - nie stosują one tych samych reguł przekierowania portów, co żądania spoza sieci. To, czego należy szukać w routerach to NAT reflection. Pozwoli to routerowi na obsługę wewnętrznych żądań dla publicznego IP, aby użyć tych samych reguł przekierowania portów, jak gdyby żądanie pochodziło z zewnątrz sieci.

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

Mógłbym ci lepiej pomóc, gdybyś podał mi markę i model swojego modemu…

Ale to co się tutaj dzieje to fakt, że normalnie strona konfiguracyjna routera lub modemu powinna się pojawić tylko podczas odwiedzania ich wewnętrznego IP (192.168.0.1)

Ale to co się tutaj dzieje to fakt, że identyfikuje przychodzące żądanie (201.206.x.x) jako pochodzące z wewnątrz, więc decyduje się dać Ci stronę konfiguracyjną zamiast normalnej trasy do Twojego serwera WWW…

Teraz, jeśli używasz modemu poziomu konsumenckiego, prawdopodobnie nie jesteś w stanie tego zmienić (przykro mi)

Ale może możesz: Spróbuj sprawdzić, czy na stronie konfiguracyjnej administratora są ustawienia ‘listen’

Tam możesz spróbować albo zmienić stronę administracyjną na inny port, albo ograniczyć adresy, na które nasłuchuje.

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

Być może problem polega na tym, że zdalna administracja jest dozwolona.

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

Możesz dodać trasę, aby uzyskać dostęp do publicznego IP serwera bezpośrednio przez jego lokalne IP. W systemie Windows komenda wygląda następująco

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

Aby dodać trwałą trasę, dodaj parametr -p do powyższej komendy.

Wtedy za każdym razem, gdy odwiedzisz publiczny IP, komputer będzie przechodził przez lokalny IP serwera jako bramę. Ponieważ serwer zna swój własny publiczny IP, będzie przetwarzał pakiet od siebie, zamiast przekazywać go do sieci lokalnej.

Musisz się upewnić, że lokalny IP serwera jest statyczny.

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

Mam ten sam problem. Byłem w stanie to naprawić, dodając nazwę hosta DNS do listy mapowania hosta DNS mojego routera. Znalazłem te ustawienia wymienione w liście zaawansowanych opcji mojego routera.

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

Na moim routerze musiałem wyłączyć “akcelerację NAT” (Cut Through Forwarding), ponieważ złamało to NAT loopback…