Serwer FTP z aktywnym trybem transferu (vsftpd) – konfiguracja i wyzwania
vsftpd (Very Secure FTP Daemon) to jeden z najpopularniejszych serwerów FTP używanych w systemach Linux. Obsługuje zarówno tryb pasywny, jak i aktywny, przy czym ten drugi może powodować problemy z firewallami i NAT-em.
W tym artykule dowiesz się:
✅ Czym jest aktywny tryb FTP i jak działa?
✅ Jak skonfigurować vsftpd w trybie aktywnym?
✅ Jakie są potencjalne problemy i jak im zapobiec?
1. Aktywny tryb FTP – jak działa?
Serwery FTP mogą działać w dwóch trybach transferu danych:
- Tryb aktywny (Active Mode)
- Tryb pasywny (Passive Mode)
W trybie aktywnym połączenie inicjowane jest w następujący sposób:
- Klient FTP łączy się z serwerem na porcie 21 (port sterujący).
- Serwer FTP otwiera połączenie zwrotne na losowy port >1023 na komputerze klienta.
- Klient akceptuje połączenie i rozpoczyna transfer danych.
➡ Problem: Wymaga to otwartych portów na komputerze klienta, co często jest blokowane przez zapory ogniowe lub routery NAT.
➡ Rozwiązanie: Dostosowanie konfiguracji firewalla lub przejście na tryb pasywny, który działa lepiej w sieciach chronionych.

2. Instalacja vsftpd na Ubuntu/Debian
Jeśli serwer vsftpd nie jest jeszcze zainstalowany, wykonaj:
sudo apt update
sudo apt install vsftpd -y
Po instalacji sprawdź status usługi:
sudo systemctl status vsftpd
Uruchom serwer, jeśli nie działa:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
3. Konfiguracja aktywnego trybu FTP w vsftpd
Otwórz plik konfiguracyjny vsftpd.conf
:
sudo nano /etc/vsftpd.conf
a) Wyłączenie trybu pasywnego
Aby wymusić aktywny tryb FTP, należy wyłączyć tryb pasywny:
pasv_enable=NO
b) Włączenie trybu aktywnego
Upewnij się, że port_enable=YES
jest aktywne:
port_enable=YES
c) Określenie zakresu portów dla aktywnego FTP
Domyślnie vsftpd losowo wybiera porty dla połączeń aktywnych, co może powodować problemy. Możemy określić zakres:
connect_from_port_20=YES
ftp_data_port=20
Port 20 to standardowy port dla transferu danych w trybie aktywnym.
Zapisz zmiany (Ctrl + X
, Y
, Enter
) i zrestartuj serwer FTP:
sudo systemctl restart vsftpd
4. Dostosowanie ustawień firewalla
Tryb aktywny FTP wymaga, aby klient miał otwarte porty powyżej 1023, co może być problematyczne.
Jeśli używasz ufw
, otwórz porty 21 i 20:
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
Dla iptables
:
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
Jeśli serwer znajduje się za NAT, konieczne może być przekierowanie portów 21 i 20 na routerze.
5. Testowanie połączenia w trybie aktywnym
Aby sprawdzić, czy FTP działa poprawnie w trybie aktywnym, możesz użyć polecenia:
ftp adres_IP_serwera
Po zalogowaniu się wpisz:
ls
Jeśli widzisz listę plików, oznacza to, że konfiguracja działa poprawnie.
6. Problemy z trybem aktywnym FTP i ich rozwiązania
Problem | Rozwiązanie |
---|---|
Firewall blokuje połączenia zwrotne | Otwórz porty 20 i 21, dodaj wyjątki dla FTP |
Router NAT blokuje połączenia | Ustaw przekierowanie portów na routerze |
Połączenie FTP zwraca błąd | Sprawdź logi: cat /var/log/vsftpd.log |
Klient FTP nie może odbierać danych | Sprawdź ftp_data_port=20 w vsftpd.conf |
7. Dlaczego lepiej używać trybu pasywnego?
🔴 Tryb aktywny FTP często napotyka problemy, zwłaszcza z firewallami i NAT.
✅ Tryb pasywny FTP działa lepiej w nowoczesnych sieciach, ponieważ klient inicjuje połączenie.
Jeśli nie masz wymogu stosowania aktywnego trybu FTP, zalecamy konfigurację trybu pasywnego:
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
Dzięki temu połączenia FTP będą stabilniejsze i mniej podatne na blokady firewalla.
Podsumowanie
✅ Aktywny tryb FTP wymaga otwartych portów po stronie klienta, co często powoduje problemy z firewallami.
✅ Konfiguracja vsftpd w trybie aktywnym wymaga dostosowania portów i zapory ogniowej.
❌ Tryb aktywny jest mniej zalecany – zamiast niego warto korzystać z trybu pasywnego.
Jeśli musisz używać aktywnego FTP, upewnij się, że zarówno serwer, jak i klient mają odpowiednie reguły firewalla oraz przekierowane porty.