Port FTP 21 czy 20? Tryb pasywny, firewall i SFTP

Olgierd Stępień

Olgierd Stępień

|

30 sierpnia 2026

Klocki z ikonami symbolizującymi transfer danych i serwery, z napisem FTP.

Gdy klient FTP łączy się z serwerem, ale nie pokazuje katalogów albo zatrzymuje transfer, problem często nie leży w haśle, tylko w źle ustawionych portach. Wyjaśniam, który port obsługuje FTP, czym różnią się tryb aktywny i pasywny, jak skonfigurować zaporę oraz kiedy lepiej wybrać FTPS lub SFTP.

Najważniejsze ustawienia portów FTP w jednym miejscu

  • TCP 21 obsługuje kanał sterujący, czyli logowanie i komendy.
  • TCP 20 służy do danych głównie w klasycznym trybie aktywnym.
  • Tryb pasywny wymaga otwarcia ustalonego zakresu portów na serwerze.
  • Do zwykłego połączenia z Internetu najczęściej wybieram tryb pasywny.
  • Czysty FTP przesyła dane bez szyfrowania, dlatego bezpieczniejszym wyborem jest SFTP albo FTPS.

Porównanie SFTP i FTPS: SFTP używa jednego portu (domyślnie 22), co ułatwia konfigurację zapory sieciowej.

Który port wykorzystuje FTP i za co odpowiada

Standardowy port FTP to TCP 21. To kanał sterujący, przez który klient wysyła polecenia, serwer potwierdza logowanie i przekazuje informacje o operacjach na plikach. Sam transfer pliku odbywa się jednak osobnym połączeniem, dlatego otwarcie wyłącznie portu 21 nie zawsze wystarcza.

Port lub zakres Rola Kiedy jest używany
21/TCP Kanał sterujący Zawsze przy klasycznym FTP i jawnym FTPS
20/TCP Kanał danych Typowo w trybie aktywnym
Zakres portów TCP Kanał danych Najczęściej w trybie pasywnym
990/TCP Kanał sterujący implicit FTPS W starszym lub konkretnie skonfigurowanym wariancie szyfrowanego FTP

Największe nieporozumienie polega na tym, że port 20 nie jest uniwersalnym „portem do przesyłania plików”. W trybie pasywnym serwer wybiera port z ustalonej puli, na przykład 50000-50100, i właśnie ten zakres musi być dostępny w zaporze.

Tryb aktywny i pasywny zmieniają reguły zapory

Tryb aktywny

Klient najpierw łączy się z serwerem na port 21, a później przekazuje mu adres i port, pod którym oczekuje połączenia danych. Serwer inicjuje drugie połączenie do klienta, zwykle wykorzystując port 20 po swojej stronie.

Na papierze wygląda to prosto, ale w praktyce tryb aktywny często przegrywa z routerami, NAT-em i zaporami na komputerach użytkowników. Serwer próbuje połączyć się „z powrotem” do urządzenia znajdującego się za prywatnym adresem IP, więc transfer lub lista katalogów może się nie uruchomić.

Przeczytaj również: SNMP w praktyce - Jak wdrożyć skuteczny monitoring sieci?

Tryb pasywny

W trybie pasywnym oba połączenia inicjuje klient. Serwer odpowiada na porcie 21, a następnie informuje klienta, z którym portem danych powinien się połączyć. To rozwiązanie lepiej pasuje do współczesnych sieci i dlatego właśnie je zwykle ustawiam.

Trzeba jednak pamiętać o dodatkowej konfiguracji. Oprócz TCP 21 należy dopuścić wybrany zakres portów pasywnych, a serwer musi przekazywać klientowi prawidłowy publiczny adres IP. Zły adres w odpowiedzi PASV daje typowy efekt: logowanie działa, lecz pobieranie katalogu kończy się błędem.

Jak otworzyć porty FTP na serwerze i routerze

Najbezpieczniejsza konfiguracja nie polega na odblokowaniu całego zakresu portów od 1024 do 65535. Ustalam małą, kontrolowaną pulę, na przykład 50000-50100. Sto portów zwykle wystarcza dla niewielkiego serwera, choć przy dużej liczbie równoczesnych transferów zakres trzeba dobrać do obciążenia.

  1. W ustawieniach serwera włącz tryb pasywny.
  2. Ustaw konkretny zakres, na przykład 50000-50100/TCP.
  3. Jeśli serwer stoi za NAT-em, wpisz jego publiczny adres IP albo skonfiguruj poprawne wykrywanie adresu.
  4. W zaporze serwera zezwól na TCP 21 oraz wybrany zakres portów pasywnych.
  5. Na routerze przekieruj te same porty do prywatnego adresu serwera.
  6. W kliencie FTP wybierz tryb pasywny i sprawdź połączenie z zewnętrznej sieci.

Przykładowe reguły dla zapory UFW mogą wyglądać tak:

sudo ufw allow 21/tcp
sudo ufw allow 50000:50100/tcp

To tylko przykład składni, a nie gotowa recepta dla każdego systemu. W panelu serwera FTP zakres musi być identyczny z zakresem otwartym na firewallu i routerze. Jeśli choć jeden z tych elementów wskazuje inną pulę, połączenie będzie losowo przerywane albo całkowicie zablokowane.

FTP, FTPS i SFTP korzystają z innych portów

Podobne nazwy często prowadzą do błędnej konfiguracji. FTP i FTPS są oparte na tym samym mechanizmie kanału sterującego i danych, natomiast SFTP działa jako usługa SSH, więc nie korzysta z klasycznych portów FTP.

Protokół Domyślny port Szyfrowanie Najważniejsza uwaga
FTP 21/TCP, a w aktywnym trybie także 20/TCP Nie Hasła i pliki mogą być przechwycone
FTPS explicit 21/TCP Tak, po negocjacji TLS Wymaga poprawnej obsługi certyfikatu i zakresu portów danych
FTPS implicit 990/TCP Tak od początku połączenia Nie każdy klient i serwer używa tego wariantu
SFTP 22/TCP Tak, przez SSH Transfer odbywa się jednym kanałem

Jeśli mam wpływ na nowe wdrożenie, wybieram SFTP na porcie 22, bo upraszcza reguły sieciowe i od razu szyfruje połączenie. FTPS ma sens wtedy, gdy firma musi zachować kompatybilność z istniejącą infrastrukturą FTP albo konkretnym systemem wymiany plików.

Co sprawdzić, gdy logowanie działa, ale transfer nie

Objaw błędu często podpowiada, którego elementu brakuje. Sama informacja „FTP nie działa” jest zbyt ogólna, dlatego zaczynam od logów klienta i rozdzielam kanał sterujący od kanału danych.

Objaw Najbardziej prawdopodobna przyczyna Co sprawdzić
Brak połączenia z serwerem Zamknięty port 21, niedziałająca usługa lub zły adres Firewall, NAT, nasłuchiwanie na TCP 21
Logowanie działa, ale nie ma listy katalogów Nie działa tryb pasywny albo zakres danych jest zablokowany Porty pasywne, publiczny adres IP, reguły routera
Błąd 425 lub timeout przy pobieraniu Klient nie może utworzyć połączenia danych Zakres portów i zgodność ustawień klienta z serwerem
Połączenie szyfrowane nie startuje Niezgodny tryb FTPS lub problem z certyfikatem Explicit versus implicit, port 21 versus 990
Transfer urywa się po kilku sekundach Filtrowanie ruchu, limit czasu lub niestabilny NAT Logi zapory, timeouty i reguły inspekcji FTP

Do szybkiego testu portu 21 można użyć w systemie Windows polecenia Test-NetConnection adres-serwera -Port 21, a w Linuksie lub macOS narzędzia nc -vz adres-serwera 21. Taki test potwierdza tylko dostęp do kanału sterującego, więc nie zastępuje próby listowania katalogu w trybie pasywnym.

Nie otwieram portu 20 „na wszelki wypadek”, gdy korzystam z pasywnego FTP. W takim układzie ważniejsza jest konkretna pula portów danych ustawiona w konfiguracji serwera.

Jak ograniczyć ryzyko związane z FTP

Klasyczny FTP nie szyfruje loginu, hasła ani przesyłanych plików. Port 21 może być poprawnie otwarty, a mimo to cała komunikacja pozostaje podatna na podsłuch w niezaufanej sieci. Do publicznie dostępnego serwera nie traktuję więc zwykłego FTP jako rozsądnego wyboru.

  • Wyłącz logowanie anonimowe, jeśli nie jest absolutnie potrzebne.
  • Ogranicz dostęp do konkretnych katalogów i adresów IP.
  • Stosuj osobne konta, silne hasła oraz uprawnienia tylko do odczytu tam, gdzie to możliwe.
  • Włącz FTPS lub przejdź na SFTP.
  • Monitoruj logowania i blokuj powtarzające się próby zgadywania haseł.
  • Regularnie aktualizuj serwer FTP, system i komponenty odpowiedzialne za TLS.

Najczęściej większą różnicę niż zmiana numeru portu robi szyfrowanie, ograniczenie dostępu i aktualne oprogramowanie. Przeniesienie usługi z portu 21 na inny numer może ograniczyć część automatycznych skanów, ale nie zastępuje zabezpieczeń.

Prosty zestaw ustawień dla typowego serwera

Dla większości małych wdrożeń przyjąłbym następujący wariant: SFTP na TCP 22, jeśli aplikacje na to pozwalają. Gdy wymagany jest klasyczny FTP, ustawiłbym tryb pasywny, TCP 21 oraz ograniczony zakres, na przykład 50000-50100, a potem sprawdził transfer spoza lokalnej sieci.

Najważniejsza zasada jest prosta: port 21 otwiera rozmowę z serwerem, ale o powodzeniu przesyłania plików decyduje także kanał danych. Jeśli logowanie działa, a katalogi się nie wyświetlają, w pierwszej kolejności sprawdź tryb pasywny, zakres portów i adres przekazywany przez serwer.

FAQ - Najczęstsze pytania

Najczęściej problem dotyczy kanału danych, a nie portu sterującego 21. W trybie pasywnym sprawdź ustalony zakres portów, na przykład 50000-50100/TCP, publiczny adres IP serwera oraz reguły zapory i routera.

Oprócz TCP 21 należy otworzyć w zaporze i przekierować na routerze wybrany zakres portów pasywnych, na przykład TCP 50000-50100. Ten sam zakres musi być ustawiony w konfiguracji serwera FTP, a serwer powinien przekazywać klientowi prawidłowy publiczny adres IP.

TCP 21 służy do kanału sterującego, czyli logowania i przesyłania komend. TCP 20 jest typowo używany jako kanał danych w trybie aktywnym, natomiast w trybie pasywnym dane przechodzą przez port wybrany z ustalonej puli.

SFTP działa przez SSH na porcie 22 i szyfruje połączenie jednym kanałem, dlatego upraszcza reguły sieciowe. FTPS korzysta z mechanizmu FTP i wymaga konfiguracji kanału danych oraz certyfikatu; wariant explicit używa portu 21, a implicit zwykle 990.
Oceń artykuł

Średnia: 0.0 / 5 · 0 ocen

Tagi

ftp sftp ftps nat zapory sieciowe

Udostępnij artykuł

Autor Olgierd Stępień
Olgierd Stępień
Nazywam się Olgierd Stępień i od 6 lat zgłębiam świat technologii. Moje zainteresowanie tym obszarem zaczęło się w młodości, kiedy to zafascynowały mnie nowinki techniczne oraz ich wpływ na nasze życie. Piszę o różnych aspektach technologii, od nowoczesnych gadżetów po oprogramowanie, starając się przybliżyć czytelnikom zawiłe zagadnienia w przystępny sposób. Zawsze dbam o to, aby moje artykuły były oparte na rzetelnych źródłach i aktualnych informacjach. Lubię porównywać różne rozwiązania, analizować trendy oraz organizować wiedzę w sposób, który ułatwia jej przyswajanie. Moim celem jest dostarczenie użytecznych i zrozumiałych treści, które pomogą czytelnikom lepiej orientować się w szybko zmieniającym się świecie technologii.
Komentarze (0)
Dodaj komentarz