PDA

View Full Version : FTP (File Transfer Protocol)


Mapcon
11-04-2003, 06:44 PM
FTP là gọi tắt của File Transfer Protocol, một chương trình để nhập vào một server và handle files giống như Windows explorer, có nghĩa là drag and drop. Protocol là "một" giao thức (quy định) được đặt ra để các máy tính "hiểu" được nhau khi giao tiếp với nhau. FTP là một giao thức truyền file trên mạng dựa trên chuẩn TCP nên rất đáng tin cậy!Sử dụng FTP người ta có thể download hay upload mỗi lần được nhiều file (Internet Explorer chì cho max 2 file). Dể vào được một FTP server bạn cần những thông tin sau:

IP hay là URL
port (thường là 21 cho public FTP)
user
password

Luu ý là khi log on vào một FTP server thì thông tin về bạn sẽ được lưu trữ trên đó. Muốn giấu thông tin cua mình người ta dùng Proxy, có nghĩa là configure trong ftp qua cổng proxy và proxy sẽ load data về cho mình.
Một số lệnh phổ biến của FTP

ascii chuyển sang chế độ truyền file theo dạng văn bản
binary chuyển sang chế độ truyền file theo dạng nhị phân
cd [directory] chuyển vào thư mục directory
cdup chuyển lên thư mục cấp trên một cấp
close ngắt kết nối với máy chủ
del [remote-file] xóa 1 file trên máy chủ
dir [remote-directory|file] liệt kê nội dung của thư mục hoặc danh sách các file trên máy chủ
help [command] cho biết hướng dẫn về lệnh command
lcd [local-directory] đặt lại thư mục làm việc trên client là local-directory
ls [remote-directory|file] [-la] liệt kê nội dung của thư mục hoặc danh sách các file trên máy chủ; tham số -la sẽ liệt kê tất cả có kèm theo mô tả về quyền
mdelete [remote-files] xóa nhiều file trên máy chủ
mget [remote-files] download các files trên máy chủ về
mkdir <directory-name> tạo thư mục có tên directory-name
mput [local-files] upload các files lên máy chủ
open host [port] kết nối đến máy chủ FTP có hostname là host và đang chạy dịch vụ FTP ở cổng port
put <local-file> [remote-file] upload local-file lên máy chủ với tên mới là remote-file nếu được
pwd cho biết thư mục đang làm việc hiện thời
quit thoát
[b]recv <remote-file> [local-file] nhận remote-file trên máy chủ và lưu trên máy tính với tên local-file nếu được
rename [from] [to] đổi tên file hoặc thư mục from thành to
rmdir directory-name xóa thư mục có tên directory-name
send local-file [remote-file] gởi local-file từ máy tính lên máy chủ với tên mới là remote-file nếu được
status cho biết trạng thái của phiên làm việc hiện tại
syst cho biết hệ điều hành của máy chủ
user user-name [password] [account] login vào với tên là user-name, mật khẩu là password, tài khoản là account
? gọi hướng dẫn
Các ví dụ
Để dễ hiểu, các bạn hãy xem các ví dụ sautôi sử dụng các này để upload mấy file lên website đó, không cần dùng các chương trình FTP mạnh như WS_FTP Pro, FTPNet, CuteFTP, AbsoluteFTP, ...!) Tôi lưu trang web cần tải lên server trong c:\website! Bây giờ tôi sẽ tải nó lên!

C:\website>ftp myftpsrv // kết nối đến máy chủ myftpsrv
Connected to myftpsrv.
User (ftpsrvnone)): dt
331 User name okay, need password.
Password:
230 User logged in, proceed.
ftp> pwd // cho biết thư mục hiện tại đang làm việc!
257 "/home/dt" is current directory.
ftp> status // xem trạng thái hiện tại
Type: ascii; Verbose: On ; Bell: Off ; Prompting: On ; Globbing: On
Debugging: Off ; Hash mark printing: Off . // ascii=1
ftp> cd www // chuyển vào thư mục www
250 Directory changed to /home/dt/www
ftp> put index.html // upload file index.html lên server
200 PORT Command successful.
150 Opening ASCII mode data connection for index.html.
226 Transfer complete.
ftp: 2095 bytes sent in 0.00Seconds 2095000.00Kbytes/sec.
ftp> mkdir tools // tạo thư mục /home/dt/www/tools
257 "/home/dt/www/tools" directory created.
ftp> cd tools // chuyển vào thư mục tools
250 Directory changed to /home/dt/www/tools
ftp> lcd c:\website\tools // thay đổi lại local directory = c:\website\tools
Local directory now C:\website\tools.
ftp> bin // chuyển sang chế độ truyền file nhị phân
200 Type set to I.
ftp> mput *.* // upload tất cả các file trong c:\website\tools lên server, vào /home/www/tools/
mput test.zip? y
200 PORT Command successful.
150 Opening BINARY mode data connection for test.zip.
226 Transfer complete.
ftp: 10168 bytes sent in 0.06Seconds 169.47Kbytes/sec.
mput test.exe? y
200 PORT Command successful.
150 Opening BINARY mode data connection for test.exe.
226 Transfer complete.
ftp: 54625 bytes sent in 0.11Seconds 496.59Kbytes/sec.
ftp> ls -la // liệt kê nội dung của /home/www/tools
200 PORT Command successful.
150 Opening ASCII mode data connection for /bin/ls.
drwxr--r-- 1 dt group 0 Sep 30 14:13 .
drwxr--r-- 1 dt group 0 Sep 30 14:13 ..
-rwxr--r-- 1 dt group 54625 Sep 30 14:14 test.exe
-rwxr--r-- 1 dt group 10168 Sep 30 14:14 test.zip
226 Transfer complete.
ftp: 247 bytes received in 0.00Seconds 247000.00Kbytes/sec.
ftp> del test.exe // tôi lỡ tay upload lên file test.exe, bây giờ tôi cần phải xóa nó
250 DELE command successful.
ftp> cd .. // chuyển lên thư mục cấp trên
250 Directory changed to /home/dt/www
ftp> mkdir cgi-bin2 // tạo thư mục mới
257 "/home/dt/www/cgi-bin2" directory created.
ftp> rename cgi-bin2 cgi-bin // tôi chẳng may nhập tên sai mất rồi, bây giờ phải đổi tên.
350 File or directory exists, ready for destination name
250 RNTO command successful.
ftp> cd cgi-bin // chuyển vào thư mục cgi-bin
250 Directory changed to /home/dt/www/cgi-bin
ftp> lcd c:\website\cgi-bin // đặt lại local directory!
Local directory now C:\website\cgi-bin.
ftp> ascii // chuyển sang chế độ truyền file văn bản vì tôi cần upload một số file .cgi + .pl
200 Type set to A.
ftp> put test.cgi // upload file test.cgi
200 PORT Command successful.
150 Opening ASCII mode data connection for test.cgi.
226 Transfer complete.
ftp: 222 bytes sent in 0.00Seconds 222000.00Kbytes/sec.
ftp> ls -la // xem nội dung của /home/www/cgi-bin
200 PORT Command successful.
150 Opening ASCII mode data connection for /bin/ls.
drwxr--r-- 1 dt group 0 Sep 30 14:16 .
drwxr--r-- 1 dt group 0 Sep 30 14:16 ..
-rwxr--r-- 1 dt group 222 Sep 30 14:17 test.cgi
226 Transfer complete.
ftp: 182 bytes received in 0.00Seconds 182000.00Kbytes/sec.
ftp> site chmod 755 test.cgi // đặt quyền 755(wrxx-xr-x) cho file test.cgi
ftp> ls -la // liệt kê lại thư mục cgi một lần nữa
200 PORT Command successful.
150 Opening ASCII mode data connection for /bin/ls.
drwxr-xr-x 1 dt group 0 Sep 30 14:16 .
drwxr-xr-x 1 dt group 0 Sep 30 14:16 ..
-rwxr-xr-x 1 dt group 222 Sep 30 14:17 test.cgi
226 Transfer complete.
ftp: 182 bytes received in 0.00Seconds 182000.00Kbytes/sec.
ftp> bye // tất cả đã xong, bây giờ tôi có thể ngắt kết nối được rồi!
221 Goodbye!
;) :D .
===================
Có bác nào rành về cai Net không cho thằng em hỏi chút . [b] Em nghe nói khi thiết kế firewall cho 1 mạng có user dùng FTP Client thì có vấn đề cần chú ý ??? biết là chú ý cái gì nữa.....các bác có rành thì nói rõ hộ em cái ! :(

Ngô Từ
11-04-2003, 09:31 PM
FTP là gọi tắt của File Transfer Protocol, một chương trình để nhập vào một server và handle files giống như Windows explorer, có nghĩa là drag and drop

Bản chất của FTP thì không có chuyện drag and drop đâu, đó là do các FTP clients được xây dựng theo kiểu window-based nên mới giống Win Explorer chú ạ. FTP chỉ quy định chuẩn của giao thức - trong đó có các quy ước về query - answer, command cho files transfering v..v.. Thực chất của FTP thì trên máy chủ có một FTP server deamon chạy trên một port nào đó - như chúng ta thường biết là port 21 theo mặc định. FTP là giao thức đặc biệt sử dụng hai cổng: Một cổng dành cho các câu lệnh - câu trả lời giữa client/server - và cổng thứ hai dành cho việc chuyển tải dữ liệu giữa hai máy.
Em nghe nói khi thiết kế firewall cho 1 mạng có user dùng FTP Client thì có vấn đề cần chú ý

Trước khi anh trả lời câu hỏi của chú và cũng để cho câu hỏi của chú được chính xác hơn, anh xin nói qua về hai loại FTPs: Active FTP và passive FTP. Trong active FTP thì máy client khởi tạo connection tới cổng của máy chủ (21) để trao đổi lệnh - sau đó máy chủ mới mở cổng thứ hai - cổng dữ liệu và kết nối với cổng dữ liệu của máy client. Trong passive FTP thì máy client làm cả hai việc này (thiết lập đường dẫn cho commands và đường dẫn cho dữ liệu). Máy chủ chỉ ngồi chơi xơi nước vì thế người ta gọi là passive. Loại này là loại sinh sau loại active :).

Trong việc thiết kế firewall: Nếu là active FTP -> khi máy chủ mở đường dẫn dữ liệu tới máy client (nằm sau firewall), firewall tưởng rằng có kẻ nào định xâm nhập vào máy client nên block lại - vì thế người dùng thường gặp khó khăn khi tải dữ liệu qua firewall. Nếu là passive FTP thì vấn đề này được giải quyết tuy nhiên lại có một vấn đề khác nảy sinh: Máy chủ lại phải listen trên nhiều port khác nhau - do vậy sẽ có nhiều dữ liệu không cần thiết và có thể nguy hiểm được gửi tới các port này.

nowornever
12-04-2003, 09:01 PM
Chú Uyên khá đấy, chú là người tư duy đã sâu mà cái 'sai' của chú lại rộng. Thực tế anh cũng biết chú là người ham học hỏi, Anh thì ít thời gian mà nói chung cũng kém. Kết hợp với cái 'sai' tồi tàn quá nên có cái vấn đề không thể vượt quá được, nếu chú thấy thích thú thì viết thư cho darknessfriend@yahoo.com anh sẽ đưa cho chú cái problem của anh rồi anh em mình bàn bạc.

Thân ái.

Xin lỗi mọi người vì viết thư riêng cho nhau trên mạng.

Ngô Từ
13-04-2003, 12:14 AM
:P, trước hết là đề nghị bác viết cho em cái tên cho chính xác nhá, tên em là Yên chứ không phải Uyên. Bác nói Uyên các anh em ở đây lại tưởng con gái thì khổ. :P

Bác có nick Yahoo messenger không (em thấy email của bác rồi nhưng sợ bác lại dùng nick khác) - nick của em là do_quang_yen lúc nào bác add em vào nhá - em online hầu như 24/24 :P trừ phi đi học. Bác quá khen chứ em cũng tự biết cái 'sai' của em còn hẹp và nông lắm, em không phải khiêm tốn mà nói thế đâu. Đợt Tết (VN) năm ngoái em đi nghiên cứu khoa học ở trường ĐH Quốc Gia Úc mới thấy kiến văn của mình quả thực là quá bé nhỏ, để làm ra cái gì đó có ích thì còn phải học nhiều lắm, nhiều lắm. Em có nhiều problems không giải quyết được lắm, hi vọng anh em ta sẽ giúp nhau được nhiều. Mà nếu có vấn đề nào hay em cũng sẽ mong ta đưa lên đây trao đổi cho bà con nào quan tâm có thể rút kinh nghiệm từ khó khăn của anh em mình.

Em chào bác.

Mapcon
13-04-2003, 07:49 PM
Cảm ơn các bác góp ý ! thằng em cũng định đi theo Network nên mong các bác chỉ bảo hộ, với em thì tất cả đều mới bắt đầu nên thấy toàn cái mới cả ....