Uzyskaj dostęp do wewnętrznego adresu IP za pomocą publicznego adresu IP

38

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

Skonfigurowałem modem, aby przekazywał żądania do portu 80 na mój serwer WWW, więc jeśli mam dostęp 201.206.x.xspoza mojej sieci, wyświetla moją stronę internetową, to samo dzieje się, jeśli mam dostęp 192.168.0.50z komputera w mojej sieci.

Problem polega na tym, że kiedy próbuję uzyskać dostęp 201.206.x.xz mojej sieci wewnętrznej, przeglądarka próbuje połączyć się z konfiguracją modemu DSL, zamiast przekierowywać moje żądanie na mój serwer WWW.

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

willvv
źródło
Odmiana problemu, mam wiele (2) serwerów hostingowych i skonfigurowałem DNS (BIND9) dla wewnętrznych żądań. Jak odwzorować (na inny serwer hostingowy) żądania zewnętrzne (na publiczny adres IP) na podstawie nazwy hosta?
Kunal B.

Odpowiedzi:

20

Problem polega na tym, że przepisywanie pakietów może zasadniczo mieć miejsce tylko podczas przechodzenia przez zaporę. Mówiąc ogólnie, routery nie mogą wykonać niezbędnego ponownego zapisu, gdy żądanie przychodzi z tej samej sieci, do której żądanie zostanie ponownie zapisane. Typowym 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 chcesz uzyskać dostęp do strony internetowej za pośrednictwem nazwy hosta DNS. Możesz sobie z tym poradzić, używając DNS „split-horizon”, więc zwraca uwagę na to, skąd pochodzi żądanie i odpowiednio odpowiada: Jeśli żądanie pochodzi z Twojej sieci, rozdaje 192.168.0.50 na żądania pochodzące od twojego sieć i publiczny adres IP dla wszystkich innych.

Każda z tych sugestii może zostać zaimplementowana na dowolnym hoście spoza sieci, na przykład (bezpłatna) instancja Amazon EC2.

Insyte
źródło
Dzięki, chociaż myślę, że pozostanę przy edycji pliku HOSTS, ponieważ jest to w zasadzie strona osobista, której używam do testowania witryn, nad którymi pracuję. Komputer nie działa nawet 24/7.
3
Rozwiązałem ten problem w mojej własnej sieci domowej, dodając rekord A o tej samej nazwie co nazwa mojej zewnętrznej dyndns na własnym serwerze DNS (również działającym w mojej sieci domowej). Rekord A wskazuje właściwą lokalizację w mojej sieci domowej, podobnie jak odwrotny rekord PTR. Ale oczywiście nie wszyscy prowadzą własne domowe DNS ...
LawrenceC
14

Powiedziałbym, że @Insyte jest na czymś, kiedy mówi o tym, że jest to problem z rozwiązywaniem DNS .. co oznacza, że ​​problemem jest przepisywanie pakietów (przeczytaj ponownie @Insyte post dla tego wyjaśnienia).

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

  1. Publiczny adres IP: 201.206.x.y
  2. Prywatne IP: 192.168.0.50
  3. Przekazywanie portów dla wszystkich 80 (i 443, jeśli korzystasz z SSL) na IP 201.206.x.y192.168.0.50

Następnie w przeglądarce internetowej wpisujesz następujące informacje:

http://www.yourwebsite.com

i pojawia się błąd. Rozwiązanie: zhakuj plik hosts.

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

Jeśli otworzysz ten plik w Notatniku, zobaczysz wszystkie wpisy używane do zastąpienia DNS. Jeśli chcesz zaktualizować ten plik, musisz otworzyć Notatnik (lub inny program, którego używasz do edycji pliku) z uprawnieniami administratora - w przeciwnym razie nie możesz zapisać pliku.

Dodaj to do pliku hosts:

192.168.0.50 www.yourwebsite.com

Następnie uruchom ponownie przeglądarkę , wprowadź adres URL i viola! To działa. Oznacza to, że twoja przeglądarka nie polega na twoim DNS, aby rozwiązać twoją domenę na adres IP. Zamiast tego zastępujemy to i mówimy: Przeglądarce, po prostu przejdź do mojego wewnętrznego adresu IP dla tej nazwy domeny, zamiast pytać DNS o adres IP .

Jeśli jesteś w biurze, możesz zdobyć wszystkie osoby, które potrzebują dostępu do tej wewnętrznej witryny, zhakować plik hostów lub jeśli masz wewnętrzny DNS, możesz dodać do niego wpis.

Innym pomysłem jest posiadanie wewnętrznego serwera proxy (do surfowania po Internecie itp.), A następnie zhakowanie pliku hosts na serwerze proxy. Oznacza to, że Twoja przeglądarka powie: Proxy, czy możesz poprosić mnie o zasób,http://www.mywebsite.com a proxy mówi Jasne, a ponieważ kazano mi zignorować DNS dla tej domeny, podam tylko adres IP, który został na stałe zakodowany plik moich hostów .

Pure.Krome
źródło
Tak, faktycznie miałem to przed opublikowaniem, chciałem po prostu uzyskać dostęp do niego przez rzeczywiste IP, ale myślę, że mogę z tym żyć, ponieważ mój modem nie ma odbicia NAT (jak sugeruje @MaQleod).
3
Co z laptopem lub smartfonem, który często uzyskuje dostęp do tej samej witryny za pośrednictwem sieci wewnętrznej lub zewnętrznej?
DRZEWO
@ DRZEWO możesz opracować. Nie do końca zrozumiałem twoje pytanie.
Pure.Krome
Mam bardzo podobną konfigurację, tyle że używam nazw domen. Tak więc spoza sieci moja domena przekształca się w mój zewnętrzny adres IP, a od wewnątrz - w wewnętrzny adres IP. Mam laptopy i smartfony, które często uzyskują dostęp od wewnątrz i na zewnątrz, więc włamanie się do pliku hosts nie zadziała. To, co zrobiłem, jest zasadniczo tym, co sugeruje inna odpowiedź (Pure.Krome), tylko zamiast korzystania z zewnętrznego serwera, po prostu mówię serwerowi DHCP na routerze, aby przygotował wewnętrzny serwer DNS. W większości działa, ale denerwujące opóźnienia występują przy przełączaniu sieci, zanim sprawy zaczną się rozwiązywać.
DRZEWO
9

Jest to powszechny problem związany ze sposobem, w jaki niektóre routery obsługują ruch przeznaczony dla ich adresu publicznego z adresu wewnętrznego - nie przestrzegają tych samych reguł przekierowania portów, jak żądania spoza sieci. To, czego potrzebujesz w routerach, to odbicie NAT . Umożliwi to routerowi obsługę wewnętrznych żądań publicznego adresu IP w celu użycia tych samych reguł przekierowania portów, jak gdyby żądanie pochodziło spoza sieci.

MaQleod
źródło
1
Odbicie NAT. Myślę, że tego właśnie szukałem. Niestety mój modem tego nie ma. Dzięki!
co zrobić, gdy modem nie obsługuje pętli NAT?
PrimitiveNom
2

Mogę ci pomóc lepiej, jeśli możesz dać mi markę i model modemu ...

Ale tutaj dzieje się tak, że zwykle strona konfiguracji routera lub modemu powinna pojawiać się tylko podczas odwiedzania ich wewnętrznego adresu IP (192.168.0.1)

Ale wydaje się, że dzieje się tutaj to, że identyfikuje ono przychodzące żądanie (201.206.xx) Ponieważ przychodzi z wewnątrz, więc postanawia podać stronę konfiguracji zamiast normalnej trasy do serwera ...

Teraz, jeśli używasz modemu na poziomie konsumenta, prawdopodobnie nie możesz tego zmienić (przepraszam)

Ale może możesz: Spróbuj sprawdzić, czy na stronie konfiguracji administratora znajdują się ustawienia „nasłuchuj”

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

HTDutchy
źródło
2

Być może problemem jest to, że zdalna administracja jest dozwolona.

Plamen
źródło
2

Możesz dodać trasę dostępu do publicznego adresu IP serwera bezpośrednio przez jego lokalny adres IP. W systemie Windows polecenie jest podobne

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

Aby dodać trwałą trasę, dodaj -pparametr do powyższego polecenia.

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

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

qevan
źródło
Dlaczego serwer zna swój własny publiczny adres IP?
G-Man mówi „Przywróć Monikę”
Serwery z pewnością znają ich adresy IP. Statyczne lub dynamiczne adresy IP. Nie jestem pewien, jak dokładnie działa routing. Domyślam się, że każda maszyna ma mapę trasy. Po otrzymaniu pakietów decyduje, czy powinien przetworzyć pakiet.
qevan
0

Mając ten sam problem. Udało mi się to naprawić, dodając nazwę hosta DNS do listy mapowania hosta DNS mojego routera. Znalazłem te ustawienia na liście zaawansowanych opcji mojego routera.

Gibado
źródło
0

Na routerze musiałem wyłączyć „przyspieszenie NAT” (Cut Through Forwarding), ponieważ to zepsuło sprzężenie zwrotne NAT ...

Gaymon Howard Wright III
źródło