Jak skonfigurować serwer FTP z ograniczeniem prędkości transferu (vsftpd lub ProFTPD)
Ograniczenie prędkości transferu na serwerze FTP to kluczowa funkcjonalność dla administratorów systemów, którzy chcą kontrolować wykorzystanie pasma. Dzięki niej można zapobiec nadmiernemu obciążeniu łącza przez jednego użytkownika i zapewnić równomierny dostęp do zasobów wszystkim klientom FTP.
W tym artykule omówimy:
✔ Ograniczanie prędkości transferu w vsftpd
✔ Konfigurację limitów transferu w ProFTPD
✔ Monitorowanie prędkości transferu i optymalizację wydajności
1. Dlaczego warto ograniczać prędkość transferu na serwerze FTP?
🔹 Ochrona łącza internetowego – FTP może obciążać łącze, spowalniając inne usługi.
🔹 Zapewnienie równego dostępu – ograniczenie transferu dla użytkowników zapobiega monopolizowaniu pasma.
🔹 Lepsza kontrola nad ruchem sieciowym – szczególnie przy wielu użytkownikach korzystających z serwera FTP.

2. Ograniczenie prędkości transferu w vsftpd
Serwer vsftpd umożliwia ograniczenie prędkości wysyłania i pobierania plików przez użytkowników.
Instalacja vsftpd
Jeśli nie masz jeszcze zainstalowanego serwera vsftpd, wykonaj:
sudo apt update
sudo apt install vsftpd -y
Po instalacji sprawdź status serwera:
sudo systemctl status vsftpd
Jeśli nie jest uruchomiony, włącz go:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Konfiguracja ograniczenia prędkości transferu w vsftpd
Edytuj plik konfiguracyjny:
sudo nano /etc/vsftpd.conf
🔹 Ograniczenie prędkości pobierania (download)
Dodaj lub zmodyfikuj linię:
local_max_rate=50000
Liczba 50000 oznacza 50 KB/s (wartość podawana jest w bajtach na sekundę). Możesz dostosować ten limit według potrzeb.
🔹 Ograniczenie prędkości wysyłania (upload)
Nie ma bezpośredniej opcji dla prędkości wysyłania, ale można zastosować reguły firewalla tc
lub iptables
(opisane w sekcji 5).
🔹 Restart serwera vsftpd
Po wprowadzeniu zmian zapisz plik (Ctrl + X
, Y
, Enter
) i zrestartuj vsftpd:
sudo systemctl restart vsftpd
3. Ograniczenie prędkości transferu w ProFTPD
Serwer ProFTPD oferuje większe możliwości konfiguracji limitów transferu dla użytkowników, grup i całego serwera.
Instalacja ProFTPD
Jeśli nie masz jeszcze zainstalowanego ProFTPD, wykonaj:
sudo apt update
sudo apt install proftpd -y
Po instalacji sprawdź status usługi:
sudo systemctl status proftpd
Konfiguracja ograniczenia prędkości transferu w ProFTPD
Edytuj plik konfiguracyjny ProFTPD:
sudo nano /etc/proftpd/proftpd.conf
🔹 Ograniczenie prędkości pobierania i wysyłania dla całego serwera
Dodaj poniższą konfigurację:
<IfModule mod_rate.c>
RateReadBPS 50000
RateWriteBPS 30000
</IfModule>
📌 RateReadBPS
– ogranicza prędkość pobierania (50 KB/s)
📌 RateWriteBPS
– ogranicza prędkość wysyłania (30 KB/s)
🔹 Ograniczenie prędkości dla konkretnego użytkownika
Jeśli chcesz zastosować limity tylko dla wybranego użytkownika FTP (np. ftpuser
):
<Limit LOGIN>
User ftpuser
RateReadBPS 20000
RateWriteBPS 10000
</Limit>
🔹 Ograniczenie prędkości dla konkretnej grupy użytkowników
<Limit LOGIN>
Group ftpgroup
RateReadBPS 40000
RateWriteBPS 20000
</Limit>
🔹 Restart serwera ProFTPD
Po zapisaniu pliku konfiguracyjnego zrestartuj ProFTPD:
sudo systemctl restart proftpd
4. Monitorowanie prędkości transferu
Aby sprawdzić aktualne transfery na serwerze FTP, użyj narzędzia iftop:
sudo apt install iftop -y
sudo iftop -i eth0
Jeśli chcesz monitorować tylko ruch FTP:
sudo iftop -i eth0 -f 'port 21'
Możesz również użyć vnstat
:
sudo apt install vnstat -y
vnstat -l -i eth0
5. Alternatywne sposoby ograniczenia prędkości (iptables/tc)
Jeśli serwer FTP nie oferuje wbudowanego limitowania pasma, można użyć narzędzia tc
(Traffic Control).
🔹 Ograniczenie prędkości na porcie FTP (21)
sudo tc qdisc add dev eth0 root tbf rate 100kbit burst 32kbit latency 400ms
📌 rate 100kbit
– maksymalna prędkość transferu (100 kbps)
📌 burst 32kbit
– rozmiar bufora danych
🔹 Ograniczenie prędkości dla konkretnego użytkownika
Aby ograniczyć prędkość dla określonego IP:
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.1.100 police rate 50kbit burst 10kbit drop
📌 Zmień 192.168.1.100
na adres IP użytkownika FTP.
Aby usunąć limit, użyj:
sudo tc qdisc del dev eth0 root
6. Podsumowanie
✅ vsftpd pozwala na podstawowe ograniczenie prędkości pobierania, ale nie posiada natywnej opcji dla uploadu.
✅ ProFTPD oferuje bardziej zaawansowaną kontrolę prędkości dla użytkowników, grup i całego serwera.
✅ Możesz użyć iptables lub tc, aby kontrolować ruch FTP na poziomie systemu.
✅ Monitorowanie transferu pomoże wykryć ewentualne problemy z obciążeniem pasma.
Jeśli szukasz prostego i lekkiego rozwiązania – wybierz vsftpd.
Jeśli potrzebujesz większej kontroli i elastyczności – ProFTPD będzie lepszym wyborem.