Przekierowanie portów w Windows

Tym razem krótki post z przydatną ciekawostką. Windows umożliwia wewnątrzsystemowe przekierowanie portów. Nie wiedziałem tego do dzisiaj, kiedy naszła nagła potrzeba uruchomienia serwera, który nasłuchuje na portach 8080 i 8443, ale powinien również komunikować się na 80 i 43 jednocześnie. Linuksiarz powie: „Ha! Ja mam iptables!” – to prawda, w tym przypadku byłoby to nieocenione narzędzie, ale Windows mnie zaskoczył (co mu się rzadko zdarza) i udostępnia bardzo podobną funkcjonalność przy pomocy narzędzia netsh.

netsh jest wbudowanym w Windowsa (chyba już od XP) narzędziem do zarządzania interfejsami sieciowymi. Wiele nim można uczynić dobrego, ale jeszcze więcej złego, jak się nie wie co się robi. Ale my wiemy :).

Polecenia do netsh możemy wydawać na 2 sposoby:

  • jako ciągła instrukcja,
  • interaktywnie.

Pierwszy sposób jest przydatny, jeżeli mamy gotowe polecenie i chcemy je po prostu uruchomić. W takim przypadku wystarczy wpisać je do terminala albo do okienka Uruchom. Terminal jest o tyle lepszy, że będziemy mogli zobaczyć ewentualny błąd, a okienko uruchamiania nam po prostu zniknie.

Drugi sposób, to wywołanie w terminalu netsh i przechodzenie do kolejnych podfunkcji o których dowiadujemy się po wpisaniu: ?.

Jeżeli zechcemy wrócić do poprzedniego menu, należy wpisać dwie kropki: ..

Przekierowujemy

Posłużę się moim przykładem, czyli przekierowanie lokalnie portu 8080 na 80, oraz 8443 na 43. W terminalu (który musimy uruchomić z prawami administratora) należy wpisać co poniżej:

Składnia polecenia tłumaczy sama siebie, więc nie będę tego opisywał. Zwrócę tylko uwagę na część v4tov4. Mówi ona o tym, że robimy przekierowanie z IPv4 na IPv4. Dostępne są jeszcze: v6tov6, v4tov6, v6tov4.

Wywołanie tych poleceń nie powinno zwrócić żadnych wyników. Jeżeli chcemy sprawdzić status przekierowań, należy wpisać:

Na końcu powinniśmy mieć coś takiego:

No i porty są przekierowane.

Usuwamy

Kiedy już przekierowanie nie będzie nam potrzebne, wypadałoby je usunąć. Tę operację również wykonujemy prostymi poleceniami:

Po tych komendach, również nie powinniśmy otrzymać żadnej odpowiedzi.

[guest@itachi.pl:~]$