File Transfer Protocol (FTP) a Mac OS X (1)
04. február 2008, Martin Foltin, Mac OS X & Darwin, Aplikácie pre OS X,
FTP (File Transfer Protocol) je jednou zo základných služieb, ktoré poskytujú moderné siete a Internet. Na čo sa takáto technológia používa? Ako už jej názov naznačuje, na prenos súborov. Pomocou FTP môžeme preniesť súbor, alebo aj celé adresáre na FTP server, kde sú prístupné ďalším používateľom. FTP nám pomáha zdielať s kolegami pracovné súbory a nemusíte ich neustále posielať jeden druhému pomocou e-mailu. Ďalšie využitie FTP sa dá nájsť v zálohovaní vlastných dát na serveri.
Budeme sa postupne venovať možnostiam využívania FTP v operačnom systéme Mac OS X. Zameriame sa len na stranu klienta. Budeme predpokladať, že FTP server spravuje náš poskytovateľ sieťových služieb, alebo zamestnávateľ. Preberieme si možnosti samotného operačného systému, nekomerčné a aj komerčné produkty v oblasti FTP klientov.
Definujme si fiktívny FTP server, ktorý bude mať prístupové parametre :
adresa (host name) : macplanet.sk
meno (name) : esok
heslo (password) : draksar
Princíp fungovanie FTP komunikácie
FTP komunikácia prebieha vždy medzi klientom a serverom na báze TCP. Na serveri musí byť nainštalovaný niektorý z FTP serverov (ProFTPd, Pure-FTPd, WU-FTPd, atď.) a na strane klienta FTP klient. Komunikácia prebieha prostredníctvom dvoch portov. Jeden slúži na výmenu príkazov a druhým prúdia dáta. Príkazy prúdia obvykle cez port 21. Port cez ktorý budú prúdiť dáta môže definovať buď klient, alebo server. Tu sa dostávame k dvom možnostiam FTP komunikácie. Jedná sa o pasívny režím (passive mod), alebo aktívny (active mod). Rozdiel je v tom ktorý zo zúčastnených začne dátovú komunikáciu a tým definuje porty cez ktoré budú prúdiť dáta. Po úspešnom nadviazaní spojenia, môže nastať výmena súborov. FTP predstavuje však potenciálne bezpečnostné riziko. Komunikácia prebieha bez šifrovania, dátové balíky sú posielané ako textové reťazce vrátane prihlasovacieho mena a hesla. Existujú však možnosti ako tento nedostatok eliminovať s využitím SSL/TLS.
Finder ako FTP klient
Mac OS X v sebe ukrýva dve možnosti ako sa napojiť na FTP server. Prvou a jednoduchšou možnosťou je použitie Findera. Uistime sa či máme vhodne zvolený typ komunikácie (aktívna/pasívna). Toto nastavenie nájdeme v System Preferences v položke Network. V záložke Proxies nájdeme zaškrtávacie políčko Use Passive Mode (PASV).
Teraz môžeme pristúpiť k samotnému pripojeniu sa na FTP server. V menu Go zvolíme položku Connect to Server … (k tomuto príkazu sa dostaneme aj pomocou klávesovej skratky cmd+k).
Zadáme adresu servera. Ak sme adresu zadali správne, budeme vyzvaní na zadanie mena a hesla. Ak aj tieto položky vyplníme správne, budeme pripojení na FTP server.
Úspešné pripojenie k serveru sa prejaví „namountovaním“ ďalšieho zariadenia. Od tohto okamihu môžeme pracovať so súbormi na FTP serveri ako so súbormi v ľubovoľnom inom adresári. Zásadným obmedzením je, že pracujeme len v režíme read-only. To znamená, že zo servera môžeme dáta len sťahovať, tzn. zápis na server nie je možný. Medzi ďalšie nevýhody patrí nízka stabilita a nemožnosti ďalšieho pokročilého nastavovania (napr. SSL/TLS). Ako základný nástroj na sťahovanie súborov postačuje, ale neočakávajte funkcie ako od bežného FTP klienta.
FTP z príkazového riadku
Druhou možnosťou je využitie FTP pripojenia priamo z príkazového riadku. Jedná sa o komplikovanejší spôsob, ale takpovediac máme celú komunikáciu plne pod kontrolou. Pomocou príkazov môžeme nielen vymieňať súbory, ale aj vytvárať špecializované skripty a tak si naprogramovať vlastného FTP klienta. Pripojenie na server je jednoduché. Postačuje do príkazového riadku zadať príkaz ftp a meno servera. Následne budeme vyzvaní aby sme zadali prístupové meno a heslo. Ak sme všetko správne zadali, tak sa pripojíme na server.
Last login: Sat Jan 26 16:09:43 on ttyp1
Welcome to Darwin!
chello089173092209:~ martinfoltin$ ftp macplanet.sk
Connected to macplanet.sk.
220 Serv-U FTP Server v6.1 for WinSock ready...
Name (macplanet.sk:anonymous): esok
331 User name okay, need password.
Password:
230 User logged in, proceed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Zoznam všetkých podporovaných príkazov získame zadaním príkazu help. Zamerajme sa len na niekoľko dôležitých, ktoré sú potrebné pre základnú komunikáciu.
ls / dir – výpis súborov a adresárov v aktívnom adresári
cd – zmena aktívneho adresára na strane servera
lcd – zmena aktívneho adresára na strane klienta
pwd – aktívny adresár na strane servera
lpwd – aktívny adresár na strane klienta
get – stiahne súboru zo servera
put – pošle súbor na server
mget – stiahne množinu súborov zo servera
mput – pošle množinu súborov na server
passive – prepína medzi pasívnym a aktívnym módom
ascii – nastavenie sťahovania súborov v textovom režime
binary – nastavenie sťahovania súborov v binárnom režime
bye / quit – vyskočenie z FTP klienta
! – aplikovanie príkazu na lokálnom stroji (napr. ! ls /Users )
Pri použití príkazového riadku ako FTP klienta musíme všetky úkony zadať pomocou príkazov. Algoritmus postupu pri výmene súborov by sme mohli vykonať v týchto krokoch (predpokladajme, že sme už pripojení na FTP server).
1. Nastavenie adresára na serveri
Tento krok vykonáme pomocou príkazu cd. O správnosti adresára sa presvedčíme príkazom pwd
2. Nastavenie adresára na svojom počítači
Použijeme príkazy lcd a lpwd
3. Upload / Download
Podľa potreby využijeme príkazy get a put v prípade ak pracujeme len s jedným súborom. Ak je potrebné posielať celý adresár, alebo množinu súborov využijeme príkazy mget a mput
Uveďme si príklad. Predpokladajme, že na svojom lokálnom počítači máme niekoľko fotografií. Nech sú uložené v adresári : /Users/MartinFoltin/Fotky. Radi by sme ich dostali na server do adresára : /_users/mf/FTPuploads .
ftp> cd _users/mf/ftpuploads
250 Directory changed to /_users/mf/FTPuploads
ftp> lcd fotky
Local directory now /Users/MartinFoltin/Fotky
ftp> mput *.*
mput PICT0001.jpg [anpqy?]? a
Prompting off for duration of mput.
200 PORT Command successful.
150 Opening BINARY mode data connection for PICT0001.jpg.
100% |***********************************************| 103 KB 125.06 KB/s 00:00
226 Transfer complete.
106221 bytes sent in 00:02 (46.29 KB/s)
200 PORT Command successful.
150 Opening BINARY mode data connection for PICT0002.jpg.
100% |***********************************************| 165 KB 66.47 KB/s 00:02
226 Transfer complete.
168969 bytes sent in 00:03 (42.71 KB/s)
200 PORT Command successful.
150 Opening BINARY mode data connection for PICT0003.jpg.
100% |***********************************************| 148 KB 79.28 KB/s 00:01
226 Transfer complete.
Podarilo sa nám preniesť všetky 3 súbory z nášho počítača na server. Prenos samotných súborov nie je komplikované zvládnuť ani pomocou FTP príkazov. Situácia sa komplikuje ak by sme potrebovali prenášať celú adresárovú štruktúru. Tu by sme už s jednoduchými príkazmi nepochodili. Samozrejme môžeme využiť skriptovací jazyk a takýto príkaz si vytvoriť. Väčšina z nás, ale asi siahne po niektorom z prepracovaných FTP klientov a využije jeho služby. Niekoľko z nich si predstavíme v budúcej časti.
Poďakovanie
Ďakujem za spoluprácu pri tvorbe článku Martinovi Vrábelovi, Jožovi Václavíkovi a Eve Danillovej. Článok vznikol s podporou APVV-99-045805.




Pondelok, 04. február 2008, 17:27
Dobrý tip!
Streda, 06. február 2008, 10:42
Dakujem Mato za velmi dobry clanok!!!
Streda, 06. február 2008, 11:19
Ďakujem. Prípadne sa pýtajte čo by vás s témou FTP zaujímalo. Plnáujeme uverejniť seriál kde budeme rozoberať aj niekoľko klientov. Takže ak máte dajaké postrehy tak sem s nimi, prípadne na môj mejl.
Streda, 06. február 2008, 16:29
Veľmi dobrý článok. Mňa by zaujímaloTrivialFTP. Mám ADSL router Vigor a na upgrade firwaru je potrebné “3-party TFTP client software”. Dá sa použiť Finder ako TFTP klient?
Streda, 06. február 2008, 16:48
Ahoj Tibor. TFTP protokol sa od FTP protokolu lisi. Lajdacky povedane, TFTP protokol je vysekany FTP protokol. Historicky je to samozrejme opacne. Finder sa ako TFTP klient pouzit neda. To co potrebujes ty je TftpServer, kt. spustis pod OS X a firmware Vigora si upgradnes z TftpServera.
Sobota, 16. február 2008, 21:33
Skvělý návod!
Nedeľa, 23. máj 2010, 3:38
Vdaka za zaujimave informacie