Niektóre wątpliwości dotyczące przekierowania portów i pakietów

0

Próbuję otworzyć port na moim komputerze z systemem Linux, ale mam pewne problemy. Poszukałem informacji o przekierowaniu portów i znalazłem to. Co to jest przekierowanie portów i do czego służy? a post jcrowfordor (długi post ze zdjęciem) pomógł mi lepiej to zrozumieć.

Ale nadal mam problemy z otwarciem portu. Sprawdziłem tutoriale i filmy i zawsze mówi:

  • 1-Przekaż port w routerze
  • 2-pobrania ufw
  • 3-Utwórz regułę w ufw, która zezwala na ruch przychodzący do tego portu

Zrobiłem to wszystko i to nie zadziałało. Może robię coś złego? Nadal mam wątpliwości co do przekierowania portów, więc myślę, że usunięcie tych wątpliwości może pomóc mi zrozumieć, co robię źle.

Ponadto cała zapora konfigurująca + przekazywanie portów routera może być niepotrzebna, ponieważ mam maszynę wirtualną Linux Mint, która akceptuje ruch przychodzący do dowolnego portu, który łączę za pomocą netcat (używam sudo nc -l numer_portu). Dlaczego? Nie skonfigurowałem niczego oprócz wyłączenia zapory Linux Mint. Jeśli wyłączę zaporę innego systemu Linux, nadal odrzuca połączenia.

Moje wątpliwości dotyczące przekierowania portów to:

  1. Kiedy komputer z sieci chce komunikować się z innym komputerem w tej sieci, czy pakiet wysyłany do routera jest liczony jako ruch przychodzący? Jeśli tak, aby komputer docelowy mógł go odebrać, muszę przekierować port na routerze, prawda?
  2. Co zrobić, jeśli chcę, aby 2 lub więcej komputerów mogło odbierać połączenia na tym samym porcie? Czy muszę przekierować ten port w routerze dla wszystkich tych komputerów?
  3. Jeśli tak, to skąd router wie, do którego komputera powinien wysłać ruch przychodzący? Co dzieje się, gdy pochodzi z sieci i kiedy pochodzi z sieci?
Oznacz przeczytane
źródło

Odpowiedzi:

1

1) nr idzie prosto do serwera LAN bez przekraczania routera (nigdy nie jest odbierany na routerach WAN). Większość komercyjnych routerów nie pozwala wewnętrznemu hostowi połączyć się z routerami WAN. Te, które obsługują tak zwane NAT Hairpinning. Aby przetestować regułę przekazywania portów NAT bez spinania włosów, musisz to zrobić z innej sieci.

2) Jeśli chcesz, aby tcp \ 80 na dwóch różnych skrzynkach przesyłało dalej, będziesz musiał użyć różnych numerów portów zewnętrznych, aby WAN: 80 -> PC1: 80 i WAN: 81 -> PC2: 80. Numery portów po stronie WAN muszą być unikalne, inaczej nie można powiedzieć, którego serwera chcesz użyć, a przekazywanie NAT zawsze odbywa się w trybie emisji pojedynczej, więc nie można wysłać pakietu na oba serwery wewnętrzne.

3) Reguły NAT wymagają określenia lokalnego adresu IP serwera LAN, który będzie odbierał pakiety przychodzące na tym porcie.

Frank Thomas
źródło
Oznacza to, że aby 2 komputery w tej samej sieci mogły komunikować się na określonym porcie, nie muszę przekierowywać portów na routerze? To o jeden mniej problem. Dzięki za odpowiedź.
Mark Read
to jest poprawne. Przekazywanie portów to w szczególności proces udostępniania portu serwerów podmiotom, które nie znajdują się w tej samej sieci LAN, co serwer.
Frank Thomas
@PeterSmith Dobra, dzięki. Czy masz jakieś sugestie, dlaczego moja maszyna wirtualna z systemem Linux odmawia połączenia?
Mark Read
cóż, to zależy od sposobu połączenia maszyny wirtualnej z fizyczną siecią LAN. wiele VMS-ów definiuje nową sieć tylko na komputerze-hoście, dlatego ogólnie zaleca się, aby jeśli chcesz udostępnić maszynę wirtualną fizycznej sieci LAN, podłącz maszynę wirtualną do sieci za pomocą połączenia „zmostkowanego”. jakiego VMMS używasz (virtualbox, vmware itp.)?
Frank Thomas
Korzystam z VMWare Player, a maszyny są w trybie pomostowym.
Mark Read
0

Rozwiązanie problemu z netcat:

Użyj portu nc -l -p zamiast portu nc -l. Tak prosty.

Oznacz przeczytane
źródło