Konfiguracja serwera FTP na Ubuntu: Praktyczny przewodnik po udostępnianiu plików (edycja USA)

目次

1. Wstęp

Konfigurowanie serwera FTP na Ubuntu to bardzo praktyczne podejście dla programistów i administratorów, którzy potrzebują efektywnego wysyłania i odbierania plików. Szczególnie gdy celem jest budowa domowego serwera lub prostego środowiska do udostępniania plików w firmie, FTP (File Transfer Protocol) wyróżnia się jako prosta i łatwa do wdrożenia opcja.

Czym jest serwer FTP?

Serwer FTP to dedykowane oprogramowanie serwerowe zaprojektowane do przesyłania i odbierania plików przez internet lub sieć lokalną. Użytkownicy mogą połączyć się z serwerem za pomocą oprogramowania klienta FTP, aby przesyłać i pobierać pliki.

Chociaż bezpieczne alternatywy, takie jak SFTP i SCP, zyskały popularność w niektórych obszarach, FTP pozostaje preferowanym wyborem dla wielu aplikacji ze względu na swoją prostotę i lekką naturę. Kontynuuje bycie wysoce praktycznym protokołem, zwłaszcza do użytku w ograniczonych sieciach lub do podstawowych zadań.

Rola serwera FTP w Ubuntu

Ubuntu to dystrybucja Linuksa lubiana przez wielu użytkowników i szeroko stosowana do celów serwerowych. Poprzez budowanie serwera FTP w środowisku Ubuntu, udostępnianie plików między wieloma urządzeniami i użytkownikami staje się łatwe.

Jest to szczególnie skuteczne w przypadkach takich jak:

  • Przesyłanie plików na serwery WWW
  • Integracja z urządzeniami IoT, takimi jak Raspberry Pi
  • Udostępnianie wewnętrznych dokumentów

W ten sposób połączenie Ubuntu i serwera FTP umożliwia elastyczne i efektywne zarządzanie plikami.

Cel i grupa docelowa tego artykułu

Ten artykuł wyjaśni, jak skonfigurować serwer FTP na Ubuntu, podając łatwe do zrozumienia instrukcje krok po kroku dla początkujących. Jest skierowany specjalnie do czytelników, którzy:

  • Znają podstawowe operacje Ubuntu, ale są nowi w FTP.
  • Chcą zbudować serwer FTP do użytku lokalnego lub prostego biznesowego.
  • Chcą również dowiedzieć się o ważnych kwestiach, takich jak bezpieczeństwo i problemy z japońskimi nazwami plików z znakami specjalnymi.

Postępując zgodnie z krokami wprowadzonymi tutaj w kolejności, będziesz w stanie zbudować bezpieczne i praktyczne środowisko serwera FTP. W następnej sekcji rozpoczniemy od wyjaśnienia, jak zainstalować „vsftpd”, szczególnie popularny serwer FTP.

2. Instalacja vsftpd

Podczas budowania serwera FTP na Ubuntu najczęściej używanym oprogramowaniem jest vsftpd (Very Secure FTP Daemon). Jak sugeruje jego nazwa, jest to serwer FTP z filozofią projektowania „bardzo bezpieczną”. Jest lekki i stabilny, co czyni go szeroko stosowanym w środowiskach korporacyjnych i edukacyjnych.

Ta sekcja wyjaśnia kroki instalacji vsftpd na Ubuntu oraz konfigurację uruchamiania usługi i automatycznego startu.

Instalacja vsftpd

Najpierw użyj systemu zarządzania pakietami Ubuntu (APT), aby zainstalować vsftpd. Proszę wykonać następujące kroki w kolejności:

sudo apt update
sudo apt install vsftpd
  • sudo apt update : Aktualizuje informacje o pakietach do najnowszej wersji.
  • sudo apt install vsftpd : Instaluje pakiet vsftpd.

Po zakończeniu instalacji vsftpd uruchomi się automatycznie.

Sprawdzanie statusu usługi

Aby zweryfikować, czy vsftpd został poprawnie zainstalowany i działa, użyj następującego polecenia:

sudo systemctl status vsftpd

Jeśli to polecenie wyświetli „active (running)”, serwer FTP działa normalnie.

Sprawdzanie i włączanie automatycznego startu

vsftpd jest zazwyczaj skonfigurowany do automatycznego startu zaraz po instalacji, ale warto to podwójnie sprawdzić.

sudo systemctl enable vsftpd

Wykonanie tego polecenia zapewnia, że vsftpd uruchomi się automatycznie przy kolejnych restartach systemu.

Nie zapomnij skonfigurować zapory ogniowej (UFW)

Jeśli masz włączoną UFW (Uncomplicated Firewall) na swoim systemie Ubuntu, musisz otworzyć porty FTP.

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp

To umożliwia zewnętrzny dostęp do standardowych portów FTP: port 20 (dane) i port 21 (komendy).

Po skonfigurowaniu, przeładuj UFW, aby zastosować zmiany.

sudo ufw reload

3. Podstawowa konfiguracja

Po zainstalowaniu vsftpd następnym krokiem jest dostosowanie zachowania serwera FTP do swoich potrzeb poprzez edycję pliku konfiguracyjnego. Chociaż plik konfiguracyjny vsftpd pozwala na bardzo szczegółową kontrolę, w swoim początkowym stanie ma wiele ograniczeń, dlatego musisz jawnie włączyć niezbędne funkcje.

Ta sekcja wyjaśnia typowe podstawowe elementy konfiguracji.

Lokalizacja pliku konfiguracyjnego

Główny plik konfiguracyjny dla vsftpd znajduje się w:

/etc/vsftpd.conf

Aby wprowadzić zmiany w konfiguracji, edytuj plik w następujący sposób:

sudo nano /etc/vsftpd.conf

Po wprowadzeniu zmian musisz zrestartować usługę vsftpd.

sudo systemctl restart vsftpd

Zezwalanie na dostęp do zapisu (dla przesyłania plików itp.)

W domyślnej konfiguracji vsftpd przesyłanie plików i modyfikacje na serwerze FTP nie są dozwolone. Aby zezwolić na dostęp do zapisu, włącz następującą linię:

write_enable=YES

To ustawienie pozwala użytkownikom na przesyłanie, usuwanie i modyfikowanie plików w swoich katalogach domowych.

Zezwalanie na logowanie lokalnych użytkowników

Aby zezwolić na logowanie FTP za pomocą kont użytkowników Ubuntu, wymagane jest następujące ustawienie:

local_enable=YES

Dzięki temu ustawieniu lokalni użytkownicy (użytkownicy systemowi) zarejestrowani w /etc/passwd będą mogli logować się przez FTP.

Włączanie pobierania listy katalogów

Jeśli klient FTP nie może pobrać listy plików i katalogów, sprawdź następujące ustawienia:

listen=YES
listen_ipv6=NO

Zwłaszcza w środowiskach, w których IPv6 jest wyłączone, ustawienie listen_ipv6=YES może powodować problemy z połączeniem.

Ustawianie baneru logowania (opcjonalnie)

Możesz również ustawić komunikat (baner), który jest wyświetlany podczas łączenia się z serwerem FTP.

ftpd_banner=Welcome to your custom Ubuntu FTP server!

Może to być przydatne w kontekście biznesowym, aby przekazać użytkownikom informacje kontaktowe lub ważne powiadomienia.

Zezwalanie na transfer w trybie ASCII (jeśli konieczne)

Jeśli potrzebujesz poprawnie przesyłać określone pliki tekstowe (np. skrypty zawierające zakończenia linii Windows), skonfiguruj następujące:

ascii_upload_enable=YES
ascii_download_enable=YES

Zwykle transfer binarny jest wystarczający, ale rozważ włączenie tego w zależności od środowiska.

W ten sposób podstawowa konfiguracja vsftpd charakteryzuje się jawne określaniem „co jest dozwolone”. Po edycji pliku konfiguracyjnego upewnij się, że zrestartowałeś usługę vsftpd, aby zastosować zmiany.

Następna sekcja zgłębi bardziej zaawansowane ustawienia bezpieczeństwa. Środki bezpieczeństwa są niezbędne, zwłaszcza podczas uruchamiania serwera FTP w publicznej sieci.

4. Wzmocnienie bezpieczeństwa

Chociaż FTP to wygodny protokół, jego cecha przesyłania danych bez szyfrowania budzi obawy bezpieczeństwa. Szczególnie podczas działania w internecie niezbędne są solidne ustawienia bezpieczeństwa.

Ta sekcja wprowadza typowe środki bezpieczeństwa, które można wdrożyć za pomocą vsftpd.

Ograniczanie zakresu dostępu użytkowników za pomocą chroot

Zezwolenie użytkownikom FTP na dostęp do katalogów innych niż ich własne jest wysoce ryzykowne. Dlatego kluczowe jest skonfigurowanie chroot, które ogranicza każdego użytkownika do jego katalogu domowego.

Włącz następujące dwa ustawienia:

chroot_local_user=YES
allow_writeable_chroot=YES
  • chroot_local_user=YES uniemożliwia lokalnym użytkownikom nawigację powyżej ich katalogu domowego.
  • allow_writeable_chroot=YES to ustawienie, które łagodzi ograniczenia bezpieczeństwa vsftpd i jest konieczne, gdy katalog domowy ma uprawnienia do zapisu.

* Bez tego napotkasz błąd „500 OOPS: vsftpd: refusing to run with writable root inside chroot”.

Ograniczanie dostępnych użytkowników

Zezwolenie wszystkim lokalnym użytkownikom na logowanie do FTP może prowadzić do nieoczekiwanych wycieków informacji. Dlatego kontroluj użytkowników dostępnych dla FTP za pomocą podejścia białej listy.

Najpierw dodaj następujące ustawienia do vsftpd.conf:

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Następnie, w pliku /etc/vsftpd.userlist wymień użytkowników, których chcesz zezwolić na logowanie, po jednym na linię.

sudo nano /etc/vsftpd.userlist

(Przykład)

ftpuser1
ftpuser2

Przy tej konfiguracji tylko wyraźnie wymienieni użytkownicy będą mogli się logować.

Implementacja szyfrowanej komunikacji przy użyciu FTPS (SSL/TLS)

Standardowy FTP przesyła dane w postaci czystego tekstu, co stwarza ryzyko podsłuchiwania identyfikatorów, haseł i danych. Aby tego uniknąć, użyj FTPS (FTP over SSL/TLS), aby zaszyfrować komunikację.

Najpierw utwórz certyfikat SSL (lub użyj istniejącego).

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Następnie dodaj następujące ustawienie do vsftpd.conf:

ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Teraz możesz połączyć się używając „FTPS (Explicit SSL)” po stronie klienta FTP.

Wyłączanie niepotrzebnych funkcji

Aby zwiększyć bezpieczeństwo, ważne jest również aktywnie wyłączanie funkcji, które nie są używane.

Przykład:

anonymous_enable=NO

To wyłącza logowanie anonimowych użytkowników (jest domyślnie wyłączone, ale jawne ustawienie zapewnia dodatkowe bezpieczeństwo).

Dzięki tym ustawieniom serwer FTP vsftpd na Ubuntu będzie miał podstawowe środki bezpieczeństwa.
Szczególnie przy użyciu przez Internet implementacja FTPS jest niezbędna.

Następny rozdział wyjaśni szczegółowo, jak radzić sobie z zniekształconymi japońskimi nazwami plików. To często pomijany aspekt pracy z FTP, ale kluczowy dla zapobiegania problemom.

5. Obsługa japońskich nazw plików

Podczas wysyłania i odbierania plików przy użyciu FTP możesz napotkać problem zniekształconych japońskich nazw plików. Dzieje się to szczególnie często przy wymianie plików między Windows a Ubuntu za pośrednictwem FTP, gdzie niezgodności kodowań mogą prowadzić do „???” lub nieczytelnych ciągów znaków.

Ten rozdział przedstawia środki zapobiegające zniekształceniu japońskich nazw plików w vsftpd.

Główne przyczyny zniekształconych znaków

Zniekształcone japońskie nazwy plików pojawiają się głównie z powodu trzech czynników:

  1. Ustawienie lokalizacji Ubuntu nie jest UTF‑8.
  2. Ustawienie kodowania w kliencie FTP jest nieprawidłowe.
  3. vsftpd nie działa z obsługą UTF‑8.

Ważne jest, aby sprawdzić i dostosować je w tej kolejności.

Sprawdzanie i ustawianie lokalizacji Ubuntu

Najpierw potwierdź, że kodowanie znaków po stronie Ubuntu jest UTF‑8. Wyświetl bieżącą lokalizację, używając następującego polecenia:

locale

Przykładowe wyjście:

LANG=ja_JP.UTF-8

Jeśli LANG lub LC_ALL nie jest ustawione na UTF-8, zmień i ponownie skonfiguruj je w następujący sposób:

sudo update-locale LANG=ja_JP.UTF-8
source /etc/default/locale

W razie potrzeby wygeneruj także lokalizację:

sudo locale-gen ja_JP.UTF-8

Spowoduje to ujednolicenie przetwarzania nazw plików w serwerze do UTF‑8.

Sprawdzanie ustawienia UTF‑8 w vsftpd

vsftpd obsługuje UTF‑8 domyślnie, ale warto potwierdzić następujące ustawienie na wszelki wypadek:

utf8_filesystem=YES

Nawet jeśli ten element nie istnieje, nie powinno być większych problemów, o ile system działa w UTF‑8. Jednak w niektórych wersjach vsftpd ten element może nie być obsługiwany.

Ustawienia klienta FTP (przykład FileZilla)

Ustawienia klienta FTP są również niezwykle ważne. Na przykład przy łączeniu się za pomocą FileZilla skonfiguruj je w następujący sposób:

  1. Otwórz Menedżer Stron.
  2. Otwórz ustawienia swojego połączenia.
  3. Wybierz zakładkę „Charset”.
  4. Wybierz „Użyj własnego zestawu znaków” i wpisz UTF-8.

To ustawienie pozwala klientowi prawidłowo interpretować nazwy plików serwera jako UTF‑8, zapobiegając zniekształceniom znaków.

Uwaga dotycząca przesyłania z innych systemów operacyjnych

Podczas przesyłania plików utworzonych w Windows itp., jeśli system używa innego kodowania znaków, takiego jak Shift_JIS, nazwa pliku może ulec uszkodzeniu w momencie uploadu.

W takich przypadkach bezpieczniej jest najpierw przekonwertować nazwę pliku na UTF‑8 przed wysłaniem. Można użyć narzędzi takich jak convmv w wierszu poleceń.

Podsumowanie

Kiedy obsługujesz japońskie nazwy plików za pomocą FTP, kluczowe jest, aby kodowanie znaków na serwerze i kliencie było zgodne. W Ubuntu ustawienie UTF‑8 jako standardu oraz jawne określenie UTF‑8 po stronie klienta FTP może zapobiec większości problemów z zniekształceniem znaków.

Następny rozdział wyjaśni tryb pasywny i ustawienia zapory. Są to ważne konfiguracje, które pomagają uniknąć problemów z połączeniami, szczególnie przy używaniu FTP przez router lub w środowisku chmurowym.

6. Tryb pasywny i konfiguracja zapory

Jednym z częstych problemów przy uruchamianiu serwera FTP w Interne lub w środowisku NAT (za routerem) jest zjawisko „połączenie udane, ale nie można pobrać listy plików” lub „transfer danych nie powiódł się”.
Wiele z tych problemów wynika z nieprawidłowego trybu operacji FTP (aktywny/pasywny) oraz ustawień zapory.

Ten rozdział wyjaśnia, jak włączyć tryb pasywny w vsftpd i skonfigurować niezbędne porty w zaporze.

Co to jest tryb pasywny?

FTP ma dwa tryby komunikacji: „tryb aktywny” i „tryb pasywny”.

  • Tryb aktywny – serwer próbuje nawiązać połączenie z klientem.
  • Tryb pasywny – komunikacja odbywa się wyłącznie przy połączeniach od klienta do serwera (bardziej niezawodny w środowiskach NAT i przy zaporach).

W nowoczesnych sieciach zaleca się tryb pasywny. Należy jawnie skonfigurować ustawienia trybu pasywnego w vsftpd.

Włączanie trybu pasywnego w vsftpd

Dodaj lub edytuj następujące ustawienia w pliku /etc/vsftpd.conf:

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

Konfiguracja ta powoduje, że vsftpd działa w trybie pasywnym i używa portów 40000‑50000 do transferu danych. Zakres ten jest dowolny, ale często rezerwuje się około 20‑30 portów.

Określanie zewnętrznego adresu IP (dla środowisk NAT)

Jeśli serwer znajduje się w środowisku NAT, np. za routerem, musisz jawnie podać globalnie widoczny zewnętrzny adres IP, aby klienci mogli się poprawnie połączyć.

pasv_address=203.0.113.45
  • Powyższy adres IP jest przykładem. Zamień go na swój rzeczywisty publiczny adres IP.

Dzięki temu ustawieniu klient FTP może nawiązać połączenie danych na podstawie poprawnych informacji o adresie wysyłanych przez vsftpd.

Konfiguracja zapory (UFW)

Otwórz porty używane przez vsftpd w zaporze Ubuntu (UFW). Wykonaj następujące polecenia:

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
  • 20/tcp – kanał danych FTP (dla trybu aktywnego)
  • 21/tcp – kanał poleceń FTP (logowanie i przesyłanie poleceń)
  • 40000:50000/tcp – zakres portów dla transferu danych w trybie pasywnym

Po skonfigurowaniu zrestartuj UFW, aby zastosować zmiany.

sudo ufw reload

Uwagi dotyczące środowisk chmurowych (AWS, GCP, Azure itp.)

Kiedy uruchamiasz FTP na instancji w chmurze, musisz otworzyć te same porty nie tylko w UFW na poziomie systemu operacyjnego, ale także w grupie zabezpieczeń (firewall) dostawcy chmury.

Przykład: dla AWS
→ Zezwól na porty TCP 21 oraz 40000‑50000 w grupie zabezpieczeń.

Podsumowanie

Aby praktycznie korzystać z FTP, konfiguracja trybu pasywnego w vsftpd oraz otwarcie odpowiednich portów zgodnie ze środowiskiem sieciowym są niezbędne. Szczególnie przy połączeniach z zewnętrznej sieci wiele awarii komunikacji i timeoutów wynika właśnie z tych ustawień.

Następny rozdział wyjaśni, jak ustawić indywidualne uprawnienia dostępu i ograniczenia katalogów dla każdego użytkownika FTP. Pomoże to w obsłudze wielu użytkowników i zarządzaniu uprawnieniami.

7. Konfiguracja per‑użytkownikowa

W rzeczywistym środowisku operacyjnym serwera FTP często zachodzi potrzeba przydzielenia różnych uprawnień dostępu i katalogów wielu użytkownikom. Na przykład możesz chcieć utworzyć dedykowane foldery dla poszczególnych działów lub użytkowników, albo ograniczyć dostęp do plików innych użytkowników.

Ten rozdział przedstawia zarządzanie ustawieniami per‑użytkownikowo w vsftpd.

Tworzenie dedykowanych użytkowników FTP

Najpierw utwórz dedykowane konta użytkowników dla FTP. Zwykle tworzy się nowych użytkowników z określonymi katalogami domowymi.

sudo adduser ftpuser1

To polecenie tworzy dedykowany katalog w /home/ftpuser1. Jeśli używasz go wyłącznie do celów FTP, możesz ograniczyć logowanie, wyłączając powłokę.

sudo useradd -m -s /usr/sbin/nologin ftpuser2

Ustawianie uprawnień katalogu domowego

Zgodnie ze specyfikacjami bezpieczeństwa vsftpd, „zapisywalne katalogi chroot” nie są dozwolone dla katalogów domowych FTP. Dlatego zaleca się następującą konfigurację:

/home/ftpuser1/
├── files/  ← Allow write access (for uploads, etc.)

Dostosuj uprawnienia w następujący sposób:

sudo mkdir /home/ftpuser1/files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/files
sudo chmod 755 /home/ftpuser1

Tworzy to bezpieczną konfigurację, w której katalog główny (/home/ftpuser1) nie jest zapisywal, ale przesyłanie plików jest możliwe do podkatalogu files/.

Przypinanie użytkowników do katalogów za pomocą chroot

Ustawiając chroot_local_user=YES, jak opisano w poprzednim rozdziale, możesz uniemożliwić użytkownikom FTP dostęp do katalogów powyżej ich katalogu domowego.

chroot_local_user=YES
allow_writeable_chroot=YES

To ustawienie pomaga zapobiegać przypadkowemu przeglądaniu lub modyfikacji obszarów innych użytkowników.

Używanie plików konfiguracyjnych per-użytkownik (szczegółowa kontrola)

vsftpd posiada również funkcję umożliwiającą zastosowanie indywidualnych ustawień dla każdego użytkownika. Pozwala to precyzyjnie kontrolować polityki, takie jak ograniczenia dostępu, logowanie i czasy połączeń.

Najpierw skonfiguruj w następujący sposób:

user_config_dir=/etc/vsftpd_user_conf

Następnie utwórz indywidualne pliki konfiguracyjne w określonym katalogu.

sudo mkdir /etc/vsftpd_user_conf
sudo nano /etc/vsftpd_user_conf/ftpuser1

Przykład:

local_root=/home/ftpuser1/files
write_enable=YES

Pozwala to ograniczyć katalog główny ftpuser1 do /home/ftpuser1/files i oddzielić uprawnienia zapisu od innych użytkowników.

Uwagi przy jednoczesnym używaniu SFTP

Jeśli używasz SFTP (FTP opartego na SSH), które korzysta z funkcji OpenSSH, oprócz vsftpd, zaleca się zarządzanie konfiguracjami osobno, ponieważ powłoki użytkowników i przynależności grup mogą się różnić.

Podsumowanie

vsftpd umożliwia elastyczną kontrolę katalogów i ustawień uprawnień dostępu dla każdego użytkownika. Odpowiednie zarządzanie użytkownikami zapewnia równowagę między bezpieczeństwem a wygodą.

Następny rozdział wyjaśnia, jak sprawdzić działanie serwera FTP. Połączmy się rzeczywiście z klientem i zweryfikujmy, że przesyłanie i pobieranie plików działa prawidłowo.

8. Potwierdzenie działania

Do tej pory zakończyłe instalację, konfigurację i zarządzanie użytkownikami serwera FTP. Ostatnim ważnym krokiem jest zweryfikowanie, że serwer FTP działa prawidłowo.
W tej sekcji przedstawiono, jak sprawdzić połączenie przy użyciu środowiska lokalnego oraz klienta FTP.

Sprawdzenie połączenia w środowisku lokalnym (linia poleceń)

Aby przetestować, czy możesz połączyć się z serwerem FTP z samego Ubuntu, użyj polecenia ftp. Spróbuj połączyć się w następujący sposób:

ftp localhost

Gdy pojawi się monit logowania, wprowadź nazwę użytkownika FTP oraz hasło, które utworzyłeś wcześniej.

Name (localhost:username): ftpuser1
Password: ********

Po zalogowaniu możesz wypróbować podstawowe operacje przy użyciu poleceń, takich jak:

ls          # Display file list
cd files    # Change directory
put test.txt  # Upload a file
get test.txt  # Download a file

Jeśli wszystko działa pomyślnie, serwer FTP został skonfigurowany bez problemów.

* Uwaga: W nowszych wersjach Ubuntu polecenie ftp jest przestarzałe, więc możesz zainstalować i używać klientów takich jak lftp lub ncftp jako alternatywy.

Potwierdzenie połączenia z klientem GUI (przykład FileZilla)

Dla typowych użytkowników i weryfikacji złożonych struktur katalogów wygodny jest graficzny klient FTP, taki jak FileZilla. Procedura konfiguracji opisana jest poniżej.

Procedura połączenia w FileZilla:

  1. Uruchom FileZilla i otwórz „Menedżer stron”.
  2. Utwórz „Nową stronę”.
  3. Wprowadź następujące dane:
Configuration ItemContent
HostServer’s IP address or domain name
ProtocolFTP – File Transfer Protocol
EncryptionExplicit FTP over TLS (if using FTPS)
Logon TypeNormal
Userftpuser1, etc. (created username)
PasswordPassword for the above user
  1. Kliknij przycisk „Połącz”.

Jeśli po połączeniu zostanie wyświetlona lista plików i struktura katalogów, połączenie zakończyło się sukcesem. Wypróbuj także operacje wysyłania/pobierania.

Typowe problemy i punkty kontrolne podczas połączenia FTP

ProblemCheckpoint
Cannot connectCheck if ports are open in the firewall and security group.
Login failed (530 Login incorrect)Verify username/password and check vsftpd.userlist.
Cannot display file listCheck if passive mode is enabled and the port range is open.
File names are garbledReconfirm UTF-8 settings and client character encoding.

Sprawdzanie statusu w plikach dziennika

Jeśli problem będzie się utrzymywał, sprawdzenie pliku dziennika vsftpd może pomóc zidentyfikować przyczynę.

cat /var/log/vsftpd.log

Dla innych dzienników systemowych użyj następującego polecenia:

sudo journalctl -u vsftpd

Ta informacja ułatwia zrozumienie „kiedy”, „kto”, „co zrobił” i „gdzie wystąpiła awaria”.

Inne wskazówki

  • Jeśli połączenie jest niestabilne: Podejrzewaj zaporę sieciową lub program antywirusowy po stronie klienta, które blokują połączenie.
  • Ograniczenia wynikające z podwyższonego poziomu bezpieczeństwa: SELinux lub AppArmor mogą zakłócać działanie (AppArmor jest często włączony w Ubuntu).

Podsumowanie

Istnieją typowe wzorce błędów, które pojawiają się podczas operacji FTP. Spokojne sprawdzenie każdego punktu i weryfikacja pliku konfiguracyjnego, użytkowników, zapory i dzienników pozwala rozwiązać większość problemów.

Następny rozdział szczegółowo wyjaśni typowe problemy występujące podczas operacji FTP oraz sposoby ich rozwiązania. Znajomość metod radzenia sobie z błędami znacząco zwiększy Twoją zdolność reagowania w rzeczywistych warunkach.

9. Rozwiązywanie problemów

Nawet po zakończeniu konfiguracji serwera FTP mogą wystąpić różne błędy i awarie podczas rzeczywistej eksploatacji. W szczególności problemy z konfiguracją sieci, ustawieniami uprawnień oraz ograniczeniami wynikającymi z ustawień bezpieczeństwa mogą prowadzić do sytuacji, takich jak niemożność połączenia się czy niepowodzenie transferu plików.

W tej sekcji przedstawiono typowe błędy i ich rozwiązania w formie przypadków. Została ona zorganizowana tak, aby początkujący łatwo mogli zidentyfikować przyczynę i szybko przywrócić prawidłowe działanie.

Typowe błędy i metody ich rozwiązywania

Błąd: 530 Login incorrect

Przyczyna:

  • Nieprawidłowa nazwa użytkownika lub hasło.
  • Użytkownik nie jest zarejestrowany w /etc/vsftpd.userlist (gdy używana jest biała lista).

Rozwiązanie:

  • Dokładnie sprawdź wprowadzone dane.
  • Jeśli w pliku vsftpd.conf ustawiono userlist_deny=NO, dodaj użytkownika, którego chcesz zezwolić na logowanie, do /etc/vsftpd.userlist.

Błąd: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Przyczyna:

  • Katalog domowy jest zapisywalny, a funkcja chroot jest włączona.

Rozwiązanie:

  • Dodaj następujące linie do vsftpd.conf :
    allow_writeable_chroot=YES
    
  • Alternatywnie, nie przyznawaj uprawnień zapisu katalogowi domowemu, a zamiast tego skonfiguruj uprawnienia zapisu dla podkatalogu, np. files/.