FTP ย่อมาจาก File Transfer Protocol เป็น utility program พื้นฐานที่ใช้ในการ copy ไฟล์จาก computer เครื่องหนึ่งไปยัง computer อีกเครื่อง โดยที่ computer ทั้งสองเครื่องอาจจะวางอยู่ใกล้ๆกัน หรือ อาจจะวางห่างกันคนละซีกโลกก็ได้ FTP ทำหน้าที่เหมือนเป็น interpreter บนเครื่องที่เราใช้ remote เข้าสู่ FTP server โดยผู้ใช้จะต้องทำการพิมพ์คำสั่งที่คล้ายกับคำสั่งบน unix เพื่อใช้สั่งการกระทำต่างๆบน FTP ในปัจจุบัน ระบบปฏิบัติการส่วนมากก็จะมี FTP ใส่มาให้แล้วทั้งแบบที่เป็น command line และแบบโปรแกรมที่เป็น FTP แบบ GUI จำนวนมากให้เลือกใช้งานมีความสวยงามและใช้งานได้ง่าย เช่น FileZilla ซึ่งเป็น opensource FTP แบบ Gui เป็นต้น นอกจากนี้เรายังสามารถใช้งาน FTP ผ่าน web browser ได้อีกหนึ่งช่องทาง โดยการพิมพ์

ftp://login name@ip address ของ ftp server

ในช่องของการพิมพ์ url ปกติบนหน้า browser ซึ่งมีความสะดวกมากในการใช้งาน

จะเห็นได้ว่าในปัจจุบันเราสามารถใช้งาน FTP ได้หลายช่องทาง แต่อย่างไรก็ตามการศึกษาการใช้งาน FTP ในแบบ command line ก็ยังคงมีความสำคัญและเป็นพื้นฐานการใช้งาน FTP ในรูปแบบอื่นๆอีกด้วย

การเริ่มใช้งาน FTP ในแบบ command line

ใน linux หรือ bsd เริ่มจากเปิดหน้า teminal ออกมาก่อน ถ้าเป็นใน windows ให้เปิดหน้า command dos ขึ้นมานะครับ จากนั้นพิมพ์คำสั่ง

ftp ตามด้วย hostname หรือ ip address หรือ url ของ ftp server

หากการเชื่อมต่อไปยัง server สำเร็จ เครื่อง FTP server จะตอบกลับด้วยการถาม login name และ password ที่ใช้ในการ ftp หากเรา login เข้าสู่ FTP server สำเร็จ prompt จะเปลี่ยนไปอยู่ในรูปแบบของ

ftp>

ในการ login เข้าสู่ FTP server บางครั้งคุณอาจจะไม่มี loginame และ password ใน FTP server แต่ก็สามารถ login ได้โดยใช้ anonymous FTP เมื่อ FTP server ถามหา login name ให้พิมพ์ anonymous แทนและ password ก็อาจใส่เป็น E-mail address เพื่อให้เครื่องเก็บ record เป็น anonymous FTP request ไว้ แต่การ FTP ในแบบ anonymos นี้คุณจะเข้าสู่ส่วนที่เป็น anonymos directory ใน FTP server ซึ่งส่วนใหญ่แล้วจะใส่ไฟล์ที่เป็น public ไฟล์เอาไว้ครับ

หมายเหตุ การทำ anonymous FTP นั้น เครื่อง FTP server จะต้องเปิด anonymous FTP เอาไว้ด้วย

คำสั่งพื้นฐานที่ใช้บ่อยใน FTP

? ใช้ขอ help หรือข้อมูลเกี่ยวกับคำสั่ง FTP

ascii เปลี่ยน mode ของการรับส่งไฟล์เป็น ASCII ปกติจะ set mode นี้ไว้เป็น default และส่ง 7 bit/character

binary เปลี่ยน mode ของการรับส่งไฟล์เป็น Binary ส่ง 8 bit/byte มีโอกาสน้อยกว่าที่จะเกิดการ error การส่งข้อมูล mode นี้จะต้องถูกเปิดใช้ในการส่งไฟล์อื่นที่ไม่ใช่ ASCII ไฟล์

bye ใช้ออกจาก FTP (เหมือนกับ quite)

cd ตามด้วยชื่อ directory ใช้เปลี่ยน directory บน FTP server

delete ตามด้วยชื่อไฟล์ ใช้ลบไฟล์บน FTP server (เหมือน rm ใน unix)

get ตามด้วยชื่อไฟล์ ใช้ copy ไฟล์ จากเครื่อง FTP server ลงมาบนเครื่องของเราครับ เช่น

- get ABC (ทำการ copy ไฟล์ ABC บนเครื่อง server ลงมาบนเครื่องเรา)

- get ABC DEF (ทำการ copy ไฟล์ ABC บนเครื่อง server ลงมาบนเครื่องเราในชื่อ DEF)

put ตามด้วยชื่อไฟล์ ใช้ส่งไฟล์จากเครื่องเราขึ้นไปยัง FTP server

help ใช้ list คำสั่ง FTP command ที่ใช้ได้ออกมา

lcd ใช้เปลี่ยน directory บนเครื่องของเราเอง

ls ใช้ list ชื่อไฟล์บนเครื่อง FTP server

mkdir ตามด้วยชื่อ directory ใช้สร้าง directory บน FTP server

rmdir ตามด้วยชื่อ directory ใช้ลบ directory บน FTP server

mget ใช้ copy ไฟล์หลายๆไฟล์จาก FTP server ลงมาบนเครื่องเรา โดยเครื่องจะถาม ให้เราตอบ yes no ทีละไฟล์ว่าเอาหรือไม่เอา ถ้าจะเอาหมดไม่ต้องการรอตอบให้ปิด prompt ก่อนใช้ mget ด้วยคำสั่ง prompt เพื่อให้ prompt off ไป การเลือกทุกไฟล์บน directory ที่ FTP เข้าไปสามารถใช้ wildcard ช่วยได้โดยพิมพ์ mget *

mput ใช้คล้ายกับ mget แต่เป็นการนำไฟล์จากเครื่องเราขึ้นไปบน FTP server แทน

pwd ใช้หา path name ของ current directory ที่เรา FTP เข้าไป

quite ใช้ออกจากการทำ FTP (เหมือนกับ bye)

ตัวอย่าง FTP session ทั่วๆไป

ftp nordsieck.cs.colorado.edu  
Connected to nordsieck.cs.colorado.edu.  
220 nordsieck FTP server (Version 5.53 Tue Aug 25 10:46:12 MDT 1992) ready.  
Name (nordsieck.cs.colorado.edu:yourlogin): yourlogin  
331 Password required for yourlogin.  
Password:  
230 User yourlogin logged in.  
ftp> cd HPSC/exercises  
250 CWD command successful.  
ftp> ls  
200 PORT command successful.  
550 No files found.  
ftp> put tmul.out  
200 PORT command successful.  
150 Opening ASCII mode data connection for tmul.out.  
226 Transfer complete.  
local: tmul.out remote: tmul.out  
1882 bytes sent in 0.0095 seconds (1.9e+02 Kbytes/s)  
ftp> ls  
200 PORT command successful.  
150 Opening ASCII mode data connection for file list.  
tmul.out  
226 Transfer complete.  
9 bytes received in 0.0021 seconds (4.3 Kbytes/s)  
ftp> mput *  
mput Makefile? y  
200 PORT command successful.  
150 Opening ASCII mode data connection for Makefile.  
226 Transfer complete.  
local: Makefile remote: Makefile  
1020 bytes sent in 0.0062 seconds (1.6e+02 Kbytes/s)  
mput tmul.out? n  
ftp> quit  
221 Goodbye.  
%   ls  
. . .
Makefile    
tmul.out    

หมายเหตุ

มักมีผู้สับสนระหว่างคำว่า FTP, sFTP และ FTPS อยู่บ่อยๆ


FTP
คือ File Transfer Protocol เป็นโปรแกรมที่ใช้ในการรับส่งข้อมูลระหว่าง computer ผ่าน network


sFTP
ไม่ใช่ FTP แต่เป็น protocol ที่ derive มาจาก SCP (Secure Copy) command โดยที่ข้อมูลหรือ transaction ทั้งหมดจะวิ่งอยู่บน secure shell connection


FTPS
เป็นการทำ FTP บน SSL (Secure Socket Layer) connection ครับ บางครั้ง FTPS จะถูกเรียกว่า Secure FTP จึงมักมีผู้สับสนว่าเป็น sFTP นั่นเอง

ข้อมูลจาก

http://www.cs.colostate.edu/helpdocs/ftp.html

http://en.wikipedia.org/wiki/Secure_FTP

http://en.wikipedia.org/wiki/SFTP