Giao thức ftp được sử dụng để chuyển một cái gì đó. Ví dụ về dịch vụ tệp mạng: FTP và NFS. Máy chủ FTP nghĩa là gì

Giao thức FTPđược bao gồm trong các tiêu chuẩn Internet và được sử dụng để truyền tải lượng lớn thông tin. Các thông số kỹ thuật đầu tiên chứa giao thức này xuất hiện vào năm 1971. Kể từ thời điểm đó, khả năng của FTP đã mở rộng đáng kể và thật khó để tưởng tượng làm thế nào người dùng có thể quản lý mà không có nó nếu họ cần tải xuống hoặc tải vài gigabyte tệp cần thiết lên bộ lưu trữ trực tuyến. Sẽ mất bao nhiêu thời gian để chuyển trang web từ máy địa phươngđến máy chủ hoặc ngược lại? Tất nhiên, bạn có thể sử dụng trình lưu trữ, nhưng nếu máy chủ không hỗ trợ chức năng này thì sao? Thật đáng sợ khi tưởng tượng. Vì vậy FTP là một công cụ khá hữu ích.

Thuật ngữ “giao thức” có nghĩa là một định dạng đã được thống nhất để trao đổi thông tin giữa hai thiết bị. Và chính nó là “giao thức truyền tập tin”, có thể được dịch là “giao thức truyền tập tin”. Giao thức FTP sử dụng kênh TCP. Việc trao đổi được xây dựng trên nguyên tắc client-server. Không thể truyền bằng giao thức này vì nó không có tính năng bảo vệ dữ liệu và văn bản rõ ràng được truyền đến máy chủ. Tất nhiên, bạn thường cần xác thực để kết nối với máy chủ FTP, nhưng đừng phụ thuộc quá nhiều vào điều đó vì ID người dùng và mật khẩu được chia sẻ bằng văn bản rõ ràng.

Giao thức FTP được sử dụng để trao đổi thông tin với các trang FTP, là kho lưu trữ khổng lồ các thông tin hữu ích và thông tin thú vị. Các tệp trên trang FTP được sắp xếp theo cấu trúc thư mục dạng cây, tương tự như trên máy tính cục bộ của bạn. Để xem nội dung của bộ lưu trữ, bạn có thể sử dụng bất kỳ trình duyệt nào, nhưng tất nhiên sẽ tốt hơn nếu sử dụng một chương trình được tạo đặc biệt cho việc này. Người dùng thích làm việc với dòng lệnh Hệ điều hành có thể sử dụng lệnh "ftp".

Một số trang FTP có những hạn chế về quyền truy cập vào tài nguyên của họ. Đôi khi, để truy cập chúng, bạn cần biết thông tin đăng nhập và mật khẩu của người dùng đã đăng ký. Hầu hết các trang FTP đều cho phép bạn tải tệp lên mà không cần nhập mật khẩu. Nhưng không thể ghi lại dữ liệu của bạn trên các tài nguyên đó.

Cách sử dụng giao thứcFTPnếu hệ điều hành của bạn không phải là Windows

Nếu thích Linux, bạn có thể xem tài liệu về các thao tác có sẵn bằng cách nhập $ man ftp. Và để kết nối với máy chủ FTP, bạn cần gõ $ ftp yoursite.at.domain. Các lệnh được sử dụng phổ biến nhất là:

  • nhị phân - thay đổi chế độ truyền tệp nhị phân (không phải văn bản), ví dụ: hình ảnh;
  • ascii - sang số thông tin văn bản;
  • cd foldername - thay đổi thư mục hiện tại trên máy tính từ xa thành thư mục có tên foldername;
  • dir - xem tất cả các tập tin trong thư mục hiện tại máy tính điều khiển từ xa;
  • trợ giúp - trợ giúp về cách sử dụng lệnh;
  • mget - tải xuống đồng thời một số tệp;
  • đặt tên tập tin - được sử dụng để tải lên tài nguyên từ xa tập tin cục bộ tên tập tin;
  • mput - tải một số tệp lên tài nguyên từ xa;
  • thoát - thoát khỏi FTP và thoát ra hệ điều hành.

Bạn cũng có thể sử dụng các chương trình như gFTP, FOFF và FileZilla.

Cách sử dụng giao thứcFTPnếu bạn thích Windows

Trong trường hợp này, mọi thứ đơn giản hơn nhiều và bạn Bất cứ điều gì sẽ làm Máy khách FTP rất dễ tìm thấy trên web. Trong số những ứng dụng miễn phí, các ứng dụng phổ biến nhất là FileZilla, FTPInfo, WinSCP. Kết nối qua FTP cũng có thể được hỗ trợ bởi các trình quản lý tệp phổ biến như Total Commander và FAR manager. Vì vậy, nếu bạn không sử dụng giao thức này thường xuyên thì bạn có thể sử dụng chúng.

Chà, nếu bạn chỉ cần tải xuống thứ gì đó một lần, thì bạn có thể nhập vào trình duyệt, thay vì URL, đại loại như thế này:

ftp://người dùng: [email được bảo vệ]:port, trong đó

site.at.domain - tên máy chủ,

cổng - số cổng để kết nối (thường là 21 và có thể bỏ qua).

Nếu bạn cần kết nối với FTP ẩn danh, hãy sử dụng ký hiệu lệnh rút gọn:

ftp://host.at.domain:port

Có thể xảy ra một số vấn đề khi kết nối qua FTP. Trong trường hợp này, việc kiểm tra là hợp lý Cài đặt tường lửa và chống virus.

Nếu bạn đã đọc blog này trong một thời gian dài, bạn có thể nhớ tôi đã quyết định thu thập trong đó phần mô tả về các giao thức mạng phổ biến (và không quá phổ biến). Tại sao tôi cần điều này, bạn có thể đọc trong bài viết Mô tả khá đầy đủ về giao thức SMTP. Vì vậy, tôi quyết định thêm vào bộ sưu tập giao thức FTP, giao thức này được sử dụng rộng rãi để truyền tệp.

1. Đi thôi

Như thường lệ, tôi sẽ bắt đầu ngay bằng một ví dụ:

$ telnet ví dụ.ru 21
Đang thử 192.168.0.1...
Đã kết nối với example.ru.
Ký tự thoát là "^]".
220-Chào mừng đến với Pure-FTPd
Bạn là người dùng số 5 trong số 100 người được phép.
Giờ địa phương bây giờ là 17:41. Cổng máy chủ: 21.
220 Bạn sẽ bị ngắt kết nối sau 15 phút không hoạt động.
USER xác nhận
331 Người dùng xác nhận OK. mật khẩu được yêu câu
QUA mật khẩu
230-Người dùng afiskon có quyền truy cập nhóm vào: lập trình viên
230 được rồi. Thư mục bị hạn chế hiện tại là /

Máy chủ FTP thường chạy trên cổng 21. Trong ví dụ trên, các dòng bắt đầu bằng số được gửi bởi máy chủ, phần còn lại - bởi máy khách. Yêu cầu của khách hàng luôn bao gồm một dòng định dạng duy nhất LỆNH [đối số], trong khi phản hồi của máy chủ có thể chứa nhiều dòng.

Dòng đầu tiên và dòng cuối cùng bắt đầu bằng ba chữ số biểu thị mã phản hồi, theo sau là mô tả văn bản phản hồi, được phân tách khỏi mã bằng dấu cách hoặc dấu gạch ngang. Nếu một khoảng trắng được sử dụng làm dấu phân cách thì dòng này là dòng cuối cùng trong phản hồi (và có thể là dòng duy nhất), nếu không, chúng tôi sẽ nhận được dòng đầu tiên của phản hồi nhiều dòng. Chúng ta đã thấy điều này ở đâu đó rồi phải không?

Có năm nhóm phản hồi của máy chủ:

Như bạn có thể thấy trong ví dụ, tất cả bắt đầu bằng việc máy chủ gửi mã 220. Sau đó, người dùng phải đăng nhập bằng lệnh USER và PASS. Nếu mọi thứ được thực hiện chính xác, máy chủ sẽ phản hồi mã đầu tiên bằng mã 331 và mã thứ hai là 230. Đối với đăng nhập ẩn danh(nếu cài đặt máy chủ cho phép), bạn nên chỉ định “ẩn danh” làm tên người dùng và e-mail của bạn làm mật khẩu. Trong thực tế, thường là một e-mail trống hoặc đại loại như [email được bảo vệ].

Như bạn có thể thấy, mật khẩu được gửi đến biểu mẫu mở, do đó, chúng tôi khuyên bạn nên mã hóa kết nối FTP bằng sử dụng SSL(cái này được gọi là FTPS - FTP cộng với SSL) hoặc thậm chí tốt hơn - truyền tệp qua SSH bằng các tiện ích scp, sftp hoặc WinSCP. Hai cái đầu tiên có sẵn trên bất kỳ hệ thống Unix nào và sử dụng cùng các giao thức chạy trên SSH để truyền tệp. WinSCP được viết cho Windows và trông giống như Total Commander; nó có thể hoạt động với cả SCP (Bản sao an toàn) và SFTP (Tệp SSH) cũ. Giao thức chuyển giao), chỉ xuất hiện trong SSH-2.

2. Hãy nhìn xung quanh

Nhưng có điều gì đó đã đưa tôi đến nhầm thảo nguyên. Sau khi vượt qua xác thực (ồ, tôi sẽ không nhầm lẫn nó với ủy quyền) Máy chủ FTP sẽ vui vẻ thực hiện các lệnh của chúng tôi. Đây là danh sách của họ:

Đội Mã dự kiến Sự miêu tả
XÓA 250 Xóa một tập tin
RMD 250 Xóa thư mục
CWD 250 Đi tới thư mục
MKD 257 Tạo thư mục
P.W.D. 257 Tìm ra thư mục hiện tại
TỪ BỎ 221 Hoàn thành công việc
KIỂU 200 Đặt loại chuyển
HẢI CẢNG 200 Chuyển sang chế độ hoạt động
PASV 227 Chuyển sang chế độ thụ động
DANH SÁCH 150, 226 Lấy nội dung thư mục
RETR 150, 226 Tải tập tin
CỬA HÀNG 150, 226 Cập nhật dử liệu
ABOR 426,226 Hủy chuyển khoản
RNFR 350 Chọn tập tin để đổi tên
RNTO 250 Đổi tên tập tin

Ở đây tôi chỉ liệt kê các lệnh cơ bản, đủ để viết một ứng dụng khách FTP chính thức. Vấn đề là ở chỗ điều kiện thực tế Máy chủ FTP rất chọn lọc trong việc hỗ trợ các lệnh được mô tả trong RFC959 và RFC3659. Vì vậy, nếu chúng ta muốn có một ứng dụng thực sự hoạt động chứ không phải một con ngựa hình cầu trong chân không, chúng ta sẽ phải giới hạn bản thân chỉ với các lệnh từ danh sách nhất định.

nhất lệnh đơn giản- Cái này QUIT, DELE, MKD, CWD và RMD. Chúng tôi chỉ cần ra lệnh và kiểm tra mã được máy chủ trả về. Nếu nó bằng giá trị mong đợi thì mọi thứ đều ổn, nếu không thì chúng tôi xử lý lỗi.

MKD ftp_test
257 "ftp_test" : Thư mục đã được tạo thành công
CWD ftp_test
250 được rồi. Thư mục hiện tại là /ftp_test
CWD..
250 được rồi. Thư mục hiện tại là /
RMD ftp_test
250 Thư mục đã được gỡ bỏ thành công

Nếu tôi đang viết một ứng dụng khách FTP, mã chịu trách nhiệm thực thi các lệnh này sẽ trông giống như sau:

mã int;
char * thư mục;
// ...
if (code = rawcmd(250 , "RMD %s \r\n", giám đốc) )
printf("Lỗi: %d \N", mã số) ;
khác
printf("Xong rồi! \N") ;

Khó khăn hơn một chút khi phân tích phản hồi của máy chủ đối với lệnh P.W.D.:

P.W.D.
257 "/ftp_test" là vị trí hiện tại của bạn

Thư mục hiện tại được truyền trong dòng duy nhất (cuối cùng?) của phản hồi của máy chủ, được đính kèm trong dấu ngoặc kép. Nếu như Họ và tên thư mục hiện tại chứa dấu ngoặc kép, chúng được thay thế bằng hai dấu ngoặc kép:

P.W.D.
257 "/ftp""test" là vị trí hiện tại của bạn

Để đổi tên tập tin, một vài lệnh được sử dụng - RNFR và RNTO:

RNFR old_file.zip
350 Bạn đang đùa à?
RNTO new_file.zip
250 Xong!

Rõ ràng, đây là một sự tối ưu hóa để bộ đệm mà máy chủ đọc lệnh của máy khách có thứ tự độ dài tối đa cho phép của tên tệp đầy đủ và không dài gấp đôi. Vào năm 1971, khi giao thức được tạo ra, điều này có thể rất quan trọng.

Đội KIỂU cho phép bạn thiết lập chế độ truyền tập tin. Ví dụ:

LOẠI E
200 LOẠI bây giờ là EBCDIC
LOẠI A
200 LOẠI bây giờ là ASCII
LOẠI I
200 TYPE hiện là nhị phân 8 bit

Theo như tôi có thể nói, ngày nay lệnh này đã lỗi thời và tất cả dữ liệu có thể được truyền một cách an toàn ở định dạng nhị phân (LOẠI I). Trích dẫn từ Wikipedia:

Những máy tính đầu tiên sử dụng định dạng từ máy có kích thước byte, một từ máy kép, không phải bội số của 8. Chúng thường là bội số của sáu. Tám bit trên mỗi byte đã được sử dụng trong quá trình phát triển hệ thống hướng dẫn máy cho IBM System/360. Nó đã trở thành tiêu chuẩn quốc tếtừ đầu những năm 1970 Hầu hết các máy tính sử dụng byte gồm 8 bit và các từ máy là bội số của 8.

3. Hãy hành động

Một tính năng của giao thức FTP là nó sử dụng kết nối khác nhau. Đây thường là một quyết định thiết kế bình thường. Chúng tôi không biết những gì được viết trong các tệp này và nếu chúng tôi truyền chúng cùng với các lệnh, chúng tôi sẽ phải mã hóa nội dung của tệp bằng cách nào đó để phân biệt với các lệnh. Tại sao phải tăng lưu lượng truy cập và làm phức tạp giao thức khi bạn có thể chỉ cần mở một kết nối mới và gửi tệp như cũ?

Khi thiết lập một kết nối mới, phải có ai đó thực sự kết nối và ai đó phải chấp nhận kết nối đó. Nếu máy khách mở một cổng và máy chủ kết nối với cổng đó thì chế độ truyền tệp được gọi là hoạt động. Nếu không thì nó là thụ động. Do thực tế là ngày nay có nhiều người dùng Internet sử dụng NAT nên chế độ thụ động thường được sử dụng. Và điều này không tốt lắm, vì số lượng cổng trên máy chủ bị hạn chế.

Điều thú vị là có thể truyền trực tiếp tập tin từ máy chủ FTP này sang máy chủ FTP khác. Nhưng vì tính năng này thường được sử dụng trong các cuộc tấn công DDoS nên hiện tại nó đã bị vô hiệu hóa ở hầu hết mọi nơi.

Để chuyển sang chế độ thụ động, sử dụng lệnh PASV, để chuyển sang hoạt động - HẢI CẢNG:

CẢNG 192,168,10,1,21,133
Lệnh 200 PORT thành công
PASV
227 Vào Chế độ Bị động (192,168,0,1,21,216)

Như bạn có thể đoán, địa chỉ IP và cổng kết nối được mã hóa bằng số. Giả sử chúng ta đang ở chế độ thụ động và muốn thiết lập kết nối dữ liệu:

$ telnet 192.168.0.1 `expr 21 \* 256 + 216`
Đang thử 192.168.0.1...
Đã kết nối với example.ru.
Ký tự thoát là "^]".

Sau đó, ví dụ, chúng ta có thể xem nội dung của thư mục hiện tại bằng cách sử dụng lệnh DANH SÁCH:

DANH SÁCH
150 Kết nối dữ liệu được chấp nhận
226-Tùy chọn: -a -l
226 5 trận tổng cộng

Hãy nhìn vào đầu ra telnet:

drwx------ 5 lập trình viên afiskon 512 Ngày 7 tháng 7 11:35 .
drwx------ 5 lập trình viên afiskon 512 Ngày 7 tháng 7 11:35 ..
drwxr--r-- 3 afiskon lập trình viên 512 Trang web ngày 6 tháng 6 14:30
drwxr-xr-x 2 bộ mã hóa afiskon 1024 Ngày 7 tháng 7 00:16 nhật ký
drwxr--r-- 2 lập trình viên afiskon 512 Ngày 6 tháng 6 14:30 tmp
Kết nối bị đóng bởi máy chủ nước ngoài.

Việc tải xuống và tải lên tệp được thực hiện giống hệt nhau, chỉ sử dụng các lệnh RETR (tệp)STOR (tập tin) tương ứng. Các lệnh RETR, STOR và LIST có thể bị gián đoạn giữa quá trình thực thi bằng lệnh ABOR, để đáp lại, máy chủ sẽ phản hồi với 426 “quá trình truyền bị gián đoạn” và sau đó với 226 “việc hủy hoạt động đã thành công”.

4. Kết luận

Đây có lẽ là nơi tôi sẽ kết thúc câu chuyện của mình. Kết quả là 9 KB văn bản so với 130 KB của RFC959. Sử dụng bài viết này, tôi hoàn toàn có thể viết một máy khách hoặc máy chủ FTP đơn giản, tôi đã kiểm tra! Điều quan trọng nhất là kiểm tra khả năng tương thích của nó với càng nhiều phần mềm càng tốt, bởi vì, như tôi đã lưu ý, trong thế giới FTP, rất ít người tuân thủ nghiêm ngặt RFC. Và cuối cùng, hãy nhớ nguyên tắc vàng “Tự do với đầu vào, nghiêm ngặt với đầu ra”.

FTP (Chuyển tập tin Giao thức Giao thức truyền tập tin ) giao thức chuẩn, được thiết kế để truyền tập tin qua mạng TCP, được xây dựng trên kiến ​​trúc client-server và sử dụng các kết nối mạngđể truyền lệnh và dữ liệu giữa máy khách và máy chủ.

Máy chủ cung cấp cho khách hàng quyền truy cập vào dữ liệu (thường là tệp và thư mục) cho khách hàng một cách ẩn danh hoặc sau khi xác thực, trong đó thông tin đăng nhập và mật khẩu được truyền dưới dạng văn bản rõ ràng. Có thể được sử dụng Giao thức SSHđể mã hóa thông tin đăng nhập, mật khẩu và dữ liệu được truyền đi.

Giao thức khá đơn giản; nó sử dụng nhiều kết nối TCP cho các lệnh và cho dữ liệu được truyền. Thông thường đây là 21 cổng cho lệnh điều khiển và 20 cổng để truyền dữ liệu (nếu không, cổng này có thể khác). Sau đó cài đặt TCP kết nối tới 21 cổng giao tiếp máy khách FTPĐiều này xảy ra với máy chủ sử dụng các lệnh văn bản khá đơn giản.

Theo RFC 959, Máy chủ luồng điều khiển (21 cổng) phản hồi bằng mã trạng thái ASCII gồm ba chữ số bằng một tin nhắn văn bản tùy chọn.

Có 2 chế độ hoạt động của giao thức FTP: chủ động và thụ động.

Ở chế độ hoạt động, máy khách tạo kết nối điều khiển TCP với máy chủ trên cổng 21 và gửi địa chỉ IP của nó cũng như số cổng máy khách tùy ý đến máy chủ, sau đó đợi cho đến khi máy chủ bắt đầu kết nối TCP với địa chỉ và số cổng này.

Ở chế độ thụ động, máy khách sử dụng luồng điều khiển ( cổng TCP 21) để gửi lệnh PASV đến máy chủ, sau đó nhận từ máy chủ địa chỉ IP và số cổng của nó, sau đó được máy khách sử dụng để mở luồng dữ liệu từ cổng máy khách tùy ý đến địa chỉ và cổng đã nhận.

Kiến thức về các chế độ Công việc FTP giúp ích nếu bạn cần kết nối với Máy chủ ftp hoặc nâng nó lên một mạng ẩn sau NAT và/hoặc được bảo vệ bởi tường lửa, như bạn có thể đoán, điều này không phải là hiếm. Nếu máy khách không thể chấp nhận các kết nối đến trên cổng tùy ý, khi đó bạn cần định cấu hình máy chủ ở chế độ thụ động, khi đó các kết nối đến với máy khách sẽ không được yêu cầu nhưng máy chủ phải sẵn sàng chấp nhận kết nối đếnđến các cổng đặt trước. Chế độ hoạt động phù hợp với máy chủ mà quản trị viên chưa sẵn sàng chấp nhận các kết nối đến trên các cổng khác 21, nhưng trong trường hợp này, máy khách sẽ chỉ có thể kết nối nếu chính nó chấp nhận các kết nối đến. Vì vậy, trong mọi trường hợp, ai đó sẽ phải mở thêm cổng.

Bốn cách biểu diễn dữ liệu có thể được sử dụng trong quá trình truyền:

    ASCII - được sử dụng cho văn bản.

    Chế độ hình ảnh (nhị phân) - Thiết bị gửi gửi từng byte tệp theo byte và người nhận sẽ lưu luồng byte khi nhận.

    EBCDIC - Được sử dụng để chuyển văn bản thuần túy giữa các máy chủ trong mã hóa EBCDIC.

    Chế độ cục bộ - cho phép hai máy tính có cài đặt giống hệt nhau gửi dữ liệu tới định dạng riêng không cần chuyển đổi sang ASCII.

Việc truyền dữ liệu có thể được thực hiện ở bất kỳ chế độ nào trong ba chế độ:

    Chế độ luồng - dữ liệu được gửi dưới dạng luồng liên tục, giải phóng FTP khỏi việc thực hiện bất kỳ quá trình xử lý nào.

    Chế độ khối - FTP chia dữ liệu thành nhiều khối (khối tiêu đề, số byte, trường dữ liệu) và sau đó truyền chúng tới TCP.

    Chế độ nén—dữ liệu được nén bằng một thuật toán duy nhất.

FTP sử dụng thông tin đăng nhập và mật khẩu để xác thực nhằm cung cấp quyền truy cập. Tên người dùng được gửi đến máy chủ bằng lệnh USER và mật khẩu được gửi bằng lệnh PASS. Nếu thông tin do khách hàng cung cấp được máy chủ chấp nhận thì máy chủ sẽ gửi lời mời đến khách hàng và phiên bắt đầu. Thông tin đăng nhập và mật khẩu được truyền dưới dạng văn bản rõ ràng, vì vậy phương pháp này không thể được gọi là an toàn. Máy chủ FTP cũng có thể cung cấp truy cập ẩn danh vào dữ liệu, nghĩa là dành cho tất cả mọi người mà không yêu cầu thông tin đăng nhập và mật khẩu.
Có những phần mở rộng và cách để chuyển giao an toàn dữ liệu và xác thực, ví dụ: FTPS SFTP FTP via SSH.

Tôi sẽ đưa ra một ví dụ về phiên FTP kèm theo nhận xét của mình. Đây là đầu ra của các lệnh (tất nhiên chỉ trong kênh điều khiển) mà máy khách FTP gửi đến máy chủ và phản hồi của máy chủ không có chữ viết tắt (tôi sẽ thay thế một số tham số bằng dấu hoa thị, ví dụ như mật khẩu vì lý do bảo mật):

Trạng thái: - đây là tin nhắn từ máy khách FTP; khi trao đổi lệnh với FTP “thủ công”, bạn sẽ không thấy những tin nhắn này. Phản hồi: - đây là những phản hồi của máy chủ FTP Lệnh: - đây là những lệnh mà máy khách gửi đến máy chủ (trong chế độ thủ công bạn sẽ nhập chúng từ bàn phím).

Trạng thái: Đang kết nối tới 37.140.*.* ...
Trạng thái: Đã kết nối với 37.140.*.*. Đang chờ tin nhắn chào mừng...
Phản hồi: 220 (vsFTPd 2.2.2) - vì vậy, chúng tôi gõ vào cổng 21 37.140.*.* và họ cho chúng tôi biết rằng vsFTPd đang hoạt động ở đó
Lệnh: NGƯỜI DÙNG ********** - gửi tên người dùng
Trả lời: 331 Vui lòng nhập mật khẩu. - tên người dùng được chấp nhận
Lệnh: ĐẠT ******** - gửi mật khẩu
Phản hồi: 230 Đăng nhập thành công. -mật khẩu được chấp nhận
Lệnh: HỆ THỐNG - "Và bạn có hệ điều hành nào?" chúng tôi hỏi
Phản hồi: 215 Loại UNIX: L8 - “và đây rồi” máy chủ sẽ trả lời
Lệnh: FEAT - bạn có thể làm gì, máy chủ?
Phản hồi: 211-Tính năng: - và đây là gì :)
Phản hồi: EPRT
<... Не будем оглашать весь список...>
Phản hồi: UTF8
Phản hồi: 211 Kết thúc - máy chủ đã liệt kê xong các chức năng
Lệnh: BẬT UTF8 - nói chuyện với chúng tôi bằng mã hóa UTF-8
Phản hồi: 200 Luôn ở chế độ UTF8. - chắc chắn không thành vấn đề
Trạng thái: Đã kết nối - Chúng tôi là những người làm sống lại sự kết nối.
Bộ chỉ huy: NKT - cho chúng tôi xem thư mục làm việc
Phản hồi: 257"/" - trên! đây là tên của thư mục làm việc (chúng ta có /)
Lệnh: LOẠI A - nhưng trước tiên chúng ta sẽ đặt chế độ trình bày dữ liệu
- ĐƯỢC RỒI
Lệnh: PASV - và yêu cầu chuyển sang chế độ thụ động
Phản hồi: 227 Vào chế độ thụ động (37,140,192,202,249,140). - nhận được danh sách các cổng
Lệnh: DANH SÁCH - cho tôi danh sách nội dung thư mục

- lúc này chúng ta đã nhận được mục lục qua kênh dữ liệu
Lệnh: LOẠI A
Phản hồi: 200 Chuyển sang chế độ ASCII.
Trạng thái: Đang lấy danh sách thư mục...
Lệnh: CWD www - thay đổi thư mục làm việc thành www
Phản hồi: 250 Danh mục đã được thay đổi thành công. -trả lời "được"
Bộ chỉ huy: NKT - một lần nữa yêu cầu thư mục làm việc
Phản hồi: 257 "/www" - bây giờ anh ấy là /www
Lệnh: LOẠI A - và chọn chế độ trình bày dữ liệu
Phản hồi: 200 Chuyển sang chế độ ASCII.
Lệnh: PASV - một lần nữa ở chế độ thụ động
Phản hồi: 227 Vào chế độ thụ động (37,140,192,202,252,174).
Lệnh: DANH SÁCH - yêu cầu mục lục của danh mục
Phản hồi: 150 Đây là danh sách thư mục.
Phản hồi: 226 Gửi thư mục OK.
Trạng thái: Danh sách thư mục thành công - chúng tôi đã nhận được mục lục và bây giờ
Trạng thái: Đang bắt đầu tải xuống /www/google8f2c0456e362dfaa.html - chúng tôi muốn tải tập tin xuống
Lệnh: LOẠI A - đối với điều này, chúng tôi sẽ chọn lại loại
Phản hồi: 200 Chuyển sang chế độ ASCII.
Lệnh: PASV - và chế độ truyền dữ liệu
Phản hồi: 227 Đang vào chế độ thụ động (37.140.192.202.254.190).
Lệnh: RETR google8f2c0456e362dfaa.html - và nói: “Đưa nó vào tệp”
Phản hồi: 150 Mở kết nối dữ liệu chế độ BINARY cho google8f2c0456e362dfaa.html (53 byte).
Phản hồi: 226 Chuyển khoản hoàn tất. - và bây giờ tệp đã được nhận qua kênh dữ liệu
Trạng thái: Tải xuống thành công
Trạng thái: Đang lấy danh sách thư mục...
<... Пропустим некоторые повторяющиеся действия...>
Lệnh: MKD fff - và ở đây chúng tôi đã tạo một thư mục
Phản hồi: 257 "/www/moop-nz.ru/02-uslugi/fff" đã được tạo
Lệnh: RNFR /www/moop-nz.ru/02-uslugi/fff - và chúng tôi muốn đổi tên thư mục fff
Phản hồi: 350 Sẵn sàng cho RNTO.
Lệnh: RNTO /www/moop-nz.ru/02-uslugi/eee - vào thư mục eee
Phản hồi: 250 Đổi tên thành công. - thao tác đã hoàn tất thành công
<... Пропустим некоторые повторяющиеся действия...>
Lệnh: RMD /www/moop-nz.ru/02-uslugi/eee/ - xóa thư mục đã tạo trước đó
Phản hồi: 250 Thao tác xóa thư mục thành công. - mọi thứ đã làm ra
Trạng thái: Đã kết nối
Trạng thái: Đang bắt đầu tải lên C:\12345\12345 001.jpg - bắt đầu tải tập tin lên máy chủ
<... Пропустим некоторые повторяющиеся действия...>
Lệnh: LOẠI I
Phản hồi: 200 Chuyển sang chế độ nhị phân.
Lệnh: PASV
Phản hồi: 227 Đang vào chế độ thụ động (37,140,192,202,243,234).
Lệnh: STOR 12345 001.jpg - lần này chúng tôi gửi tệp đến máy chủ
Phản hồi: 150 Ok để gửi dữ liệu.
Phản hồi: 226 Chuyển khoản hoàn tất.
Trạng thái: Tải lên thành công
Trạng thái: Đang lấy danh sách thư mục...
Lệnh: LOẠI A
Phản hồi: 200 Chuyển sang chế độ ASCII.
Lệnh: PASV
Phản hồi: 227 Đang vào chế độ thụ động (37,140,192,202,251,25).
Lệnh: DANH SÁCH
Phản hồi: 150 Đây là danh sách thư mục.
Phản hồi: 226 Gửi thư mục OK.
Trạng thái: Danh sách thư mục thành công
Lệnh: DELE /www/moop-nz.ru/02-uslugi/12345 001.jpg - và xóa nó cuối cùng
Phản hồi: 250 Thao tác xóa thành công.

Mọi người đã tạo ra rất nhiều máy chủ và máy khách FTP (xét cho cùng thì giao thức này đã có từ năm 1971).

Ăn chương trình đặc biệt hoạt động như một ứng dụng khách FTP, chẳng hạn như: FileZilla, gFTP, cURL, lftp và nhiều ứng dụng khác, nhưng giờ đây hầu như mọi trình duyệt đều có thể hoạt động như một ứng dụng khách FTP ( Mozilla Firefox, Konqueror, Opera, Yandex.Browser, Google Chrome, Internet Explorer, v.v.) hoặc trình quản lý tệp ( Chỉ huy nửa đêm, Krusader, Chỉ huy Gnome, Konqueror, Nautilus, Cá heo, Người quản lý FAR, Total Commander, Windows Explorer, v.v.), do đó không cần sử dụng các chương trình đặc biệt (mặc dù đôi khi tôi sử dụng gFTP).

Để thiết lập tùy chọn và xác thực máy chủ FTP của bạn, bạn sẽ cần một chương trình đặc biệt đóng vai trò của máy chủ. Ngoài ra còn có nhiều chương trình như vậy, bao gồm: vsftpd, ProFTPD, Pure-FTPd, glFTPd, oftpd, Serv-U File Server và nhiều chương trình khác.

Có vẻ như ở phác thảo chung Rõ ràng FTP là gì và tại sao nó lại cần thiết.

  • Mặt sau
  • Phía trước
  • Đo từ xa trong Windows 10. Tắt nó đi, đừng tắt nó, bạn vẫn sẽ nhận được giải pháp tốt nhất
  • Đi. Máy tính đã có thể đánh bại nhà vô địch ba lần vô địch châu Âu trong trò chơi cờ vây
  • “Quà tặng” mới từ Microsoft - “ổn định” và “quyền riêng tư”

    Tập đoàn nổi tiếng thế giới một lần nữa làm chúng tôi vui mừng với tin tức: Sau khi phát hành bản vá tiếp theo, công cụ tích hợp sẵn cho Mã hóa Bitlockerđã ngừng hoạt động và Microsoft không thể...

Chúng tôi đã phát hành sách mới“Tiếp thị nội dung ở trong mạng xã hội: Cách đi sâu vào tâm trí người đăng ký và khiến họ yêu thích thương hiệu của bạn.”

Đặt mua

Các video khác trên kênh của chúng tôi - tìm hiểu tiếp thị qua internet với SEMANTICA

Công nghệ này là một trong những công nghệ phổ biến nhất để tải xuống và tải lên dữ liệu từ/đến máy chủ từ xa, phân tán khắp thế giới.

Hệ thống Ftp được sử dụng để tạo trang web. Tất cả thông tin liên quan đến tài nguyên Internet được lưu trữ trên máy chủ FTP. Khi nhà phát triển cần thực hiện một số điều chỉnh cho trang web, anh ta sẽ đến máy chủ, tải xuống tệp cần sửa và sau đó tải lại. Và thế là xong, sự thay đổi đã có hiệu lực. Thật nhanh chóng và thuận tiện.

Máy chủ FTP trông như thế nào?

Việc trình bày trực quan phụ thuộc vào hệ thống mà bạn đang đăng nhập. Có những chương trình đặc biệt như FileZilla, trong đó dữ liệu được hiển thị dưới dạng Total Commander quen thuộc.


Nhiều trang web lưu trữ có hệ thống quản lý riêng, trông giống như một tập hợp các thư mục và tệp quen thuộc.

Tính năng máy chủ FTP

Chúng ta hãy xem xét kỹ hơn các khía cạnh kỹ thuật và cho bạn biết máy chủ ftp là gì cũng như cách thức hoạt động của nó.

Chức năng chính của FTP là truyền file.

Ngoài việc tải lên và tải xuống thông tin, các lệnh khác nhau, nhờ đó bạn có thể quản lý các tập tin và thư mục:

  1. Yêu cầu xác thực.
  2. Có sẵn một kênh dành riêng cho mỗi kết nối.
  3. Hỗ trợ 2 chế độ truyền dữ liệu: văn bản và nhị phân (trong hệ thống nhị phân). Tùy chọn thứ hai giúp giảm thời gian và lưu lượng truy cập.
  4. Sử dụng nhiều kết nối, ít nhất là hai kênh. Thông qua một, các lệnh điều khiển được truyền đi và các phản hồi đã xử lý sẽ được trả về. Với sự giúp đỡ của người khác, việc truyền tệp được thực hiện dựa trên kênh dành riêng cho từng kênh.

Cách kết nối với máy chủ FTP

Để vào máy chủ, bạn cần điền vào biểu mẫu ủy quyền, hay nói cách khác là vượt qua xác thực. Sau khi nhập thông tin đăng nhập (người dùng) và mật khẩu (pass), thông tin này sẽ được chuyển vào hệ thống. Nếu được chấp nhận, khách hàng sẽ nhận được lời mời và phiên làm việc sẽ bắt đầu.

Có các tùy chọn đăng nhập mà không cần chỉ định dữ liệu đăng ký. Trong trường hợp này, các tùy chọn có sẵn cho khách truy cập sẽ bị hạn chế.

Có một tùy chọn khác để đăng nhập vào máy chủ FTP - truy cập ẩn danh. Theo mặc định, đăng nhập xảy ra khi bạn nhập thông tin đăng nhập “ẩn danh”; cách viết có thể khác nhau đối với các chữ cái. Tuy nhiên, phương pháp phổ biến nhất là khi họ đề nghị đăng nhập bằng địa chỉ email. Tùy chọn truy cập này được nhiều máy chủ FTP sử dụng để gửi các bản cập nhật phần mềm.

Để kết nối, bạn có thể sử dụng trình duyệt web hoặc trình quản lý tệp như Total Commander, FileZilla. Thông qua trình duyệt, bạn sẽ có thể xem và tải xuống các tệp nhưng bạn sẽ không thể thực hiện các thay đổi.

Sẽ thuận tiện hơn khi làm việc Chương trình máy khách FileZilla(có thể được tải xuống trong phạm vi công cộng).

Tạo một kết nối mới như sau:

  • Trong trường “Máy chủ”, nhập địa chỉ máy chủ FTP.
  • Điền vào các trường “Tên người dùng”, “Mật khẩu” và nếu cần, “Cổng”.

Tôi có thể lấy địa chỉ ở đâu? Nếu bạn kết nối với máy chủ được lưu trữ trên máy chủ, chủ sở hữu trang web có tất cả quyền truy cập; quyền truy cập đó do nhà cung cấp cung cấp.

FTP còn được sử dụng để làm gì nữa?

Các tệp trang web là trường hợp sử dụng phổ biến nhất nhưng đó không phải là tất cả những gì nằm trên máy chủ FTP.

Ở đó bạn có thể lưu trữ bất kỳ công việc hoặc thông tin cá nhân khối lượng lớn, như một tùy chọn, hình ảnh, video.

Hầu hết mọi thông tin được hàng triệu người sử dụng hàng ngày đều được đăng trên kho lưu trữ FTP. Đây là những phần mềm, phiên bản demo của chương trình, sách điện tử, hành vi lập pháp, bài báo, phim, âm nhạc - mọi thứ có thể được định dạng trong bản trình bày tệp. Các danh mục đã được tạo trên Internet chứa hàng terabyte thông tin hữu ích hoặc mang tính giải trí. Thường có sẵn ẩn danh và không yêu cầu thanh toán.

Nhược điểm của máy chủ FTP

Bảo vệ yếu chống lại hack và tấn công. Do các tính năng kỹ thuật, không chỉ máy chủ mà cả máy khách cũng có thể bị hỏng. Vì vậy, thông tin bí mật không nên được lưu trữ trên chúng.

Không có xác thực nguồn của gói truyền dữ liệu, dẫn đến dễ bị tấn công DDoS.

FTP là một cơ chế tiêu chuẩn để sao chép tệp từ máy chủ này sang máy chủ khác. Chuyển tập tin từ máy tính này sang máy tính khác là một trong những số lượng lớn Nhiệm vụ chung, việc thực hiện dự kiến ​​​​từ mạng lưới có tổ chức và tương tác giữa các mạng.

Mặc dù việc truyền tệp từ hệ thống này sang hệ thống khác có vẻ như là một nhiệm vụ đơn giản và dễ hiểu nhưng trước tiên vẫn có một số vấn đề cần được giải quyết. Ví dụ: hai hệ thống có thể sử dụng các quy ước đặt tên tệp khác nhau. Hai hệ thống có thể có cách trình bày văn bản và dữ liệu khác nhau. Hai hệ thống có thể có cấu trúc thư mục khác nhau. FTP giải quyết tất cả những vấn đề này một cách rất đơn giản và tinh tế.

FTP khác với các loại ứng dụng khác máy khách-máy chủ trong đó nó thiết lập hai kết nối giữa các máy chủ. Một kết nối được sử dụng để truyền dữ liệu, kết nối còn lại được sử dụng để kiểm soát thông tin (lệnh và phản hồi). Tách lệnh và chuyển dữ liệu kiểm soát làm cho FTP hiệu quả hơn. Kiểm soát kết nối sử dụng các quy tắc rất đơn giản để liên lạc. Chúng tôi chỉ cần một dòng lệnh hoặc một dòng phản hồi để truyền tải. Mặt khác, kết nối dữ liệu cần các quy tắc phức tạp hơn do có nhiều loại dữ liệu.

FTP sử dụng hai cổng được xác định: cổng 21 để quản lý và cổng 20 để truyền dữ liệu.


Cơm. 13,5.

Loại tệp

FTP có thể truyền qua kết nối dữ liệu các loại sau các tập tin:

  • tập tin ASCII. Đây là định dạng mặc định được sử dụng để phát sóng tập tin văn bản. Mỗi ký tự được mã hóa bằng ký tự NVT ASCII. Bộ phát chuyển đổi tệp từ dạng biểu diễn gốc của nó sang NVT ASCII và bộ thu chuyển đổi các ký tự NVT ASCII thành dạng biểu diễn gốc của nó.
  • tập tin EBCDIC. Nếu cả hai đầu kết nối đều sử dụng mã hóa EBCDIC thì tệp có thể được truyền bằng mã hóa EBCDIC.
  • Tệp hình ảnh. Tệp này là định dạng mặc định để truyền tệp nhị phân. Tệp được gửi dưới dạng một luồng bit liên tục mà không có bất kỳ sự giải thích hoặc mã hóa nào. Nó chủ yếu được sử dụng để truyền các tệp nhị phân như một chương trình đã biên dịch.

Nếu tệp được mã hóa bằng ASCII hoặc EBCDIC, các thuộc tính khác phải được bổ sung để xác định xem tệp có thể được in hay không:

  1. Bị cấm xuất bản. Đây là định dạng mặc định để truyền tệp văn bản. Tệp không chứa thông số kỹ thuật in "dọc". Điều này có nghĩa là tệp không thể được in nếu không xử lý trước vì nó không chứa các ký tự được hiểu theo chiều dọc đầu in. Định dạng này được sử dụng cho các tệp sẽ được tích lũy và xử lý sau này.
  2. ĐIỆN THOẠI. Ở định dạng này, tệp chứa các ký tự dọc NVT ASCII như CR (trả về vận chuyển), LN (nguồn cấp dữ liệu dòng), NL (dòng mới) và VT (tab dọc). Những tập tin này có thể được in sau khi chuyển

Cấu trúc dữ liệu

FTP có thể truyền tệp qua kết nối dữ liệu bằng cách sử dụng một trong các cách diễn giải cấu trúc dữ liệu sau:

  • Cấu trúc tập tin (mặc định). Tập tin này không có cấu trúc. Đó là một luồng dữ liệu liên tục.
  • Cấu trúc bản ghi. Tệp này được phân tách trong một bản ghi. Nó chỉ có thể được sử dụng với một tệp văn bản.
  • Cấu trúc trang. Đây là một tập tin được chia thành các trang, mỗi trang có một số và tiêu đề trang. Các trang có thể được tích lũy hoặc truy cập bằng cách truy cập ngẫu nhiên hoặc tuần tự.

Chế độ chuyển

FTP có thể truyền tệp qua kết nối dữ liệu bằng một trong ba chế độ truyền sau:

  • Chế độ truyền phát. Đây là chế độ mặc định. Dữ liệu được gửi từ FTP đến TCP dưới dạng luồng dữ liệu liên tục. TCP chịu trách nhiệm chia dữ liệu thành các phân đoạn có kích thước phù hợp. Nếu dữ liệu chỉ là một luồng byte ( cấu trúc tập tin), thì không cần ký hiệu cuối tập tin. Phần cuối của tệp trong trường hợp này là việc người gửi giải phóng kết nối dữ liệu. Nếu dữ liệu được chia thành các bản ghi (cấu trúc theo bản ghi) thì mỗi bản ghi sẽ có ký tự cuối bản ghi là 1 byte (EOR – end of record).
  • Chế độ chặn. Dữ liệu có thể được gửi từ FTP và TCP theo khối. Trong trường hợp này, khối được đặt trước một tiêu đề ba byte. Byte đầu tiên được gọi là bộ mô tả khối, hai byte tiếp theo xác định kích thước khối tính bằng byte.
  • Chế độ nén. Nếu tệp lớn, dữ liệu có thể bị nén. Phương pháp nén sử dụng mã hóa độ dài thông thường. Trong phương pháp này, sự xuất hiện lại tuần tự của một khối dữ liệu được thay thế bằng một lần xuất hiện và số lần lặp lại. Trong văn bản của tệp, đây thường là khoảng trắng (trống). TRONG tập tin nhị phân ký tự null thường được nén.

FTP sử dụng kết nối quản lý để thiết lập liên lạc giữa quy trình quản lý máy khách. Trong quá trình giao tiếp này, các lệnh được gửi từ máy khách đến máy chủ và phản hồi được gửi từ máy chủ đến máy khách (Hình 13.6).


Cơm. 13.6.