Mam dziwny problem z przekierowaniem portów. Próbowałem otworzyć mój port 22 na zewnętrzną sieć. Byłem w stanie uzyskać do niego dostęp, dopóki nie jestem w sieci LAN. Mogę na przykład uzyskać dostęp z mojego biura. Ale z sieci LAN mogę uzyskać dostęp do portu za pomocą lokalnego adresu IP, ale nie mogę uzyskać dostępu do portu za pomocą zewnętrznego adresu IP. To tak, jakby router blokował sprzężenie zwrotne. Sprawdziłem wszystkie ustawienia routera, wyłączyłem wszystko związane z zaporą ogniową / filtrowaniem. Jakieś pomysły?
Istnieje naprawdę prosta odpowiedź na to pytanie. NAT przeszkadza.
Próbujesz porozmawiać z publicznym adresem IP, ale odpowiedzi pochodzą z wewnętrznego adresu IP. Twój komputer nie może połączyć tych dwóch elementów. Rozwiązaniem jest korzystanie z wewnętrznego adresu IP za każdym razem, gdy jesteś za routerem. Rozwiązuję ten problem na moich laptopach, używając różnych ciągów połączeń ssh w zależności od tego, gdzie jestem.
źródło
Z tego, co rozumiem po uruchomieniu routera OpenBSD z NAT, Spiff ma poprawną odpowiedź: napotkany problem jest spowodowany przez bramę NAT, która nie obsługuje tego, co próbujesz zrobić.
Stacja robocza wysyła pakiety ze źródłowym adresem IP adresu wewnętrznego (powiedzmy 10.0.0.2), ale adresem docelowym jest Twój zewnętrzny adres IP. Kiedy pakiety docierają do twojego serwera (SSH?) Na porcie 22, serwer odpowiada bezpośrednio na twoją stację roboczą i nie dzieje się żadne NAT; teraz, gdy twoja stacja robocza otrzyma odpowiedź z 10.0.0.3, kiedy oczekiwała odpowiedzi z twojego adresu zewnętrznego, odrzuca pakiety.
Wydaje się, że jest to trywialny problem, ale można go rozwiązać, aktualizując plik HOSTS stacji roboczej, dodając wewnętrzny serwer DNS (lub edytując wpisy serwera DNS) lub tworząc regułę NAT do obsługi wewnętrznych-> zewnętrznych-> wewnętrznych ruch drogowy.
źródło