FTP (File Transfer Protocol) to protokół do przesyłania plików między komputerem a serwerem – służy do wgrywania stron internetowych, pobierania backupów, zarządzania plikami na hostingu. Gdy wgrywasz pliki WordPressa na hosting lub pobierasz bazę danych z serwera – robisz to przez FTP (lub jego szyfrowaną wersję SFTP/FTPS). Najpopularniejszy klient FTP to FileZilla. Serwer FTP to oprogramowanie na serwerze (vsftpd, ProFTPD), które nasłuchuje na porcie 21 i obsługuje transfer plików.
Spis treści
ToggleJak działa FTP
FTP używa modelu klient-serwer. Klient FTP (FileZilla, WinSCP, Cyberduck lub terminal) łączy się z serwerem FTP (oprogramowanie na hostingu/VPS). Klient wysyła komendę (np. „pobierz plik index.php”) → serwer odsyła plik. Transfer odbywa się przez dwa kanały: kanał kontrolny (port 21) – komendy i odpowiedzi (logowanie, listowanie katalogów, nawigacja). Kanał danych (port 20 lub losowy) – właściwy transfer plików.
FTP ma dwa tryby transferu danych: Active mode – serwer łączy się z klientem na porcie podanym przez klienta (problematyczne za NAT/firewall). Passive mode – klient łączy się z serwerem na porcie podanym przez serwer (działa za NAT – używaj passive).
FTP vs SFTP vs FTPS
| Protokół | Szyfrowanie | Port | Rekomendacja |
|---|---|---|---|
| FTP | Brak (plaintext!) | 21 | Nie używaj – hasła widoczne w sieci |
| FTPS | SSL/TLS | 990 (implicit) lub 21 (explicit) | OK – jeśli hosting wymaga |
| SFTP | SSH | 22 | Najlepszy wybór – szyfrowany, nie wymaga osobnego serwera FTP |
SFTP (SSH File Transfer Protocol) to nie „FTP przez SSH” – to osobny protokół oparty na SSH. Zalety: szyfruje dane i komendy, działa przez port 22 (ten sam co SSH – nie trzeba otwierać dodatkowych portów w firewallu), nie wymaga osobnego serwera FTP (jeśli masz SSH, masz SFTP). W 2026: zawsze używaj SFTP zamiast czystego FTP.
Jak połączyć się z serwerem FTP/SFTP
FileZilla (graficzny klient): Otwórz FileZilla → Menedżer Witryn → Nowa Witryna. Protokół: SFTP – SSH File Transfer Protocol. Host: IP serwera lub domena. Port: 22 (SFTP) lub 21 (FTP/FTPS). Typ logowania: Normalne → wpisz login i hasło (lub klucz SSH). Połącz → po lewej: Twoje pliki lokalne. Po prawej: pliki na serwerze. Przeciągaj pliki między panelami.
Terminal (linia poleceń):
# SFTP
sftp user@IP_SERWERA
sftp> put plik.zip # wgraj plik na serwer
sftp> get backup.sql # pobierz plik z serwera
sftp> ls # listuj pliki
sftp> cd /var/www # zmień katalog
# SCP (jednorazowe kopiowanie)
scp plik.zip user@IP:/var/www/ # wgraj
scp user@IP:/var/www/backup.sql ./ # pobierz
Konfiguracja serwera FTP na VPS
Na VPS z Ubuntu: jeśli masz SSH – masz już SFTP (nie musisz instalować nic dodatkowego). Ale jeśli potrzebujesz klasycznego serwera FTP (np. dla hostingu z wieloma użytkownikami):
# Instalacja vsftpd
sudo apt install vsftpd -y
# Konfiguracja
sudo nano /etc/vsftpd.conf
Kluczowe ustawienia w vsftpd.conf: anonymous_enable=NO (wyłącz anonimowy dostęp), local_enable=YES (logowanie użytkowników systemowych), write_enable=YES (pozwól na upload), chroot_local_user=YES (zamknij użytkownika w jego katalogu – bezpieczeństwo), ssl_enable=YES (włącz FTPS – szyfrowanie).
# Restart po zmianach
sudo systemctl restart vsftpd
# Firewall – otwórz porty
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp # porty passive mode
FTP na hostingu współdzielonym
Na hostingu współdzielonym serwer FTP jest już skonfigurowany – dostajesz dane dostępowe: host (np. ftp.twojadomena.pl), login (nazwa użytkownika FTP), hasło (osobne od hasła do panelu), port (21 dla FTP/FTPS, 22 dla SFTP jeśli hosting obsługuje). Dane: znajdziesz w panelu hostingu (cPanel → Konta FTP, DirectAdmin → FTP Management).
Ważne: na shared hostingu połącz się przez SFTP (port 22) jeśli hosting to obsługuje – jest szyfrowany. Jeśli nie: FTPS (explicit TLS na porcie 21). Czysty FTP (bez szyfrowania): nigdy – hasło leci przez internet jawnym tekstem.
FTP a alternatywy w 2026
SFTP (przez SSH) – standard do zarządzania plikami na serwerze. Bezpieczny, wygodny, nie wymaga dodatkowej konfiguracji.
Git + CI/CD. Profesjonalni developerzy nie wgrywają plików przez FTP – trzymają kod w GitHub/GitLab → push na main → GitHub Actions automatycznie deploy’uje na serwer. Zero ręcznego FTP, pełna historia zmian, automatyczne testy.
rsync – narzędzie do synchronizacji plików przez SSH. Szybsze niż SFTP dla dużych transferów (przesyła tylko zmienione pliki/fragmenty). Komenda: rsync -avz ./pliki/ user@IP:/var/www/.
Panel hostingu (File Manager). cPanel, DirectAdmin, Plesk – mają wbudowany menedżer plików w przeglądarce. Wgrywanie, edytowanie, pobieranie plików bez klienta FTP. Wygodne do drobnych zmian – niepraktyczne do wgrywania setek plików.
Najczęściej zadawane pytania
Czy FTP jest bezpieczny?
Czysty FTP (port 21, bez szyfrowania): nie – login, hasło i pliki są przesyłane jawnym tekstem. Każdy w tej samej sieci (np. publiczne Wi-Fi) może je podsłuchać. FTPS (FTP + SSL/TLS): bezpieczny. SFTP (przez SSH): bezpieczny i najwygodniejszy. W 2026: nie ma powodu, żeby używać nieszyfrowanego FTP.
Jaka jest różnica między FTP a SFTP?
FTP to osobny protokół (port 21, nieszyfrowany). SFTP to protokół oparty na SSH (port 22, szyfrowany). SFTP nie jest „FTP przez SSH” – to zupełnie inny protokół, który tylko wygląda podobnie (te same komendy: put, get, ls, cd). SFTP nie wymaga serwera FTP – wystarczy serwer SSH.
Jak wgrać stronę na hosting przez FTP?
Połącz się przez FileZilla (SFTP, port 22). Przejdź na serwerze do katalogu public_html (lub /var/www/html na VPS). Przeciągnij pliki strony z lewego panelu (komputer) do prawego (serwer). Poczekaj na upload. Otwórz stronę w przeglądarce – powinna działać. Dla WordPressa: wgraj pliki WP + importuj bazę MySQL przez phpMyAdmin.

