ftp

Klient FTP do interaktywnego transferu plików z serwerem (protokół nieszyfrowany).

ftp to klasyczny, interaktywny klient protokołu FTP (File Transfer Protocol). Łączysz się nim z serwerem, a potem w trybie interaktywnym wpisujesz polecenia w stylu get, put czy ls, żeby pobierać i wysyłać pliki. Działa od dekad i jest na praktycznie każdym Uniksie, ale ma jedną fundamentalną wadę: nic nie szyfruje — login, hasło i pliki lecą przez sieć czystym tekstem. Traktuj go jak narzędzie do nauki, starych serwerów i sieci lokalnej, a nie do produkcyjnego transferu przez internet.

Składnia i najważniejsze opcje

Podstawowe wywołanie wygląda tak:

ftp [opcje] [host]

  • -i — wyłącza interaktywne pytania przy transferze wielu plików (przydatne z mget/mput).
  • -n — blokuje automatyczne logowanie; przydaje się, gdy chcesz podać dane z pliku .netrc albo ręcznie.
  • -v — tryb gadatliwy, pokazuje wszystkie odpowiedzi serwera i statystyki transferu.
  • -p — wymusza tryb pasywny (passive), ratunek przy NAT i firewallach.
  • -d — włącza debug, czyli pełny dialog klient-serwer.
  • -g — wyłącza rozwijanie nazw plików (globbing), żeby * i ? traktować dosłownie.

Flagi można łączyć, np. ftp -inv host.

Przykłady użycia

  • ftp ftp.example.com — łączysz się z serwerem; klient zapyta o login i hasło, a potem dostajesz znak zachęty ftp>.
  • get raport.csv — w trybie interaktywnym pobierasz pojedynczy plik do bieżącego katalogu lokalnego.
  • put backup.tar.gz — wysyłasz plik z dysku lokalnego na serwer.
  • ftp -i host, a po zalogowaniu mget *.log — ściągasz wszystkie pliki .log bez potwierdzania każdego z osobna.
  • binary przed transferem — przełącza tryb na binarny, żeby nie uszkodzić archiwów i obrazków (tryb ascii psuje pliki nietekstowe).

Wewnątrz sesji przydadzą się też cd i lcd (zmiana katalogu zdalnego i lokalnego), ls oraz bye do rozłączenia.

Częste błędy i pułapki

Najczęstszy zonk to tryb ASCII zamiast binarnego — wgrany w ASCII plik ZIP czy PNG przyjedzie uszkodzony. Drugi to wiszące połączenie przez firewall: jeśli ls się zawiesza, włącz tryb pasywny komendą passive w sesji lub flagą -p. Pamiętaj, że nazwy poleceń różnią się między implementacjami — na wielu Linuksach /usr/bin/ftp to tak naprawdę tnftp, który ma bogatsze opcje niż minimalistyczny klient z BSD. I najważniejsze: skoro FTP leci jawnym tekstem, do prawdziwej pracy używaj szyfrowanych zamienników.

Powiązane komendy: sftp, scp, rsync, lftp, wget, curl, telnet.