FTP là gì? Tổng quát về FTP từ A đến Z chi tiết nhất

Trong thời đại ngày nay, nhu cầu chia sẻ dữ liệu trong các công ty, doanh nghiệp, trường học… trở lên lớn dần và được mọi người đề cao. Để đáp ứng nhu cầu này thì việc phát triển các máy chủ FTP với mục đích đồng bộ hóa dữ liệu là điều hết sức quan trọng. Thế nhưng không phải ai cũng hiểu rõ FTP là gì? kể cả những người đang sử dụng nó. Để giải đáp mọi thắc mắc từ A đến Z về FTP một cách chi tiết nhất, mời các bạn hãy xem qua bài viết sau của AZSEO. 

FTP là gì? Mô hình hoạt động của FTP

Để có thể sử dụng FTP một cách hiệu quả thì ngay từ đầu các bạn phải hiểu được FTP là gì? Nó hoạt động theo cách thức như thế nào?

FTP là gì?

FTP có tên đầy đủ là File Transfer Protocol. Đây là một hình thức giao tuyến bằng cách tải những tập tin từ máy tính này sang máy tính thông qua mạng Internet hoặc TCP. Vì FTP hoạt động trên cả 2 cổng 20 và 21 nên khi bạn mua các gói host sẽ được hỗ trợ DirectAdmin, control panel, cPanel…

Các bạn có quyền quản lý hoàn toàn các thư mục có trên host (ngoại trừ database) và các dữ liệu có dạng tập tin trên FTP. Các giao thức tại FTP thường được sử dụng với mục đích truyền tải dữ liệu để tiết kiệm thời gian cũng như truyền các dữ liệu có dung lượng lớn được nhanh chóng hơn. 

Mô hình hoạt động của FTP

FTP sẽ hoạt động theo mô hình trao đổi dữ liệu giữa hai máy Client và máy Server. Quá trình truyền và nhận các dữ liệu được tạo thành từ các tiến trình là Data Connection và Control Connection.

Mô hình hoạt động của FTP
  • Tiến trình Control Connection: Từ khi phiên làm việc bắt đầu cho tới khi kết thúc nó sẽ chỉ kiểm soát các kết nối cũng như thực hiện nhiệm vụ điều khiển các thông tin đi qua trong quá trình truyền dữ liệu. 
  • Tiến trình Data Connection: Vì có nhiều loại dữ liệu khác nhau nên tiến trình kết nối này sẽ sử dụng những quy tắc cực kỳ phức tạp. Nó chỉ được mở khi lệnh đóng tệp và truyền tệp đã được thực hiện xong. Kết nối này thường được sử dụng trong các quá trình truyền dữ liệu. 
  • Cũng vì chức năng truyền dữ liệu và điều khiển sử dụng các kênh riêng biệt nên FTP sẽ chia các thiết bị thành 2 phần riêng biệt, mỗi phần chịu trách nhiệm cho một kết nối:
  • PI (Protocol interpreter): Đây là thành phần được dùng để phát, trả lời, nhận lệnh và quản lý kênh mà nó điều khiển. 
  • DTP ( Data transfer process): Thành phần này sẽ có nhiệm vụ truyền và nhận dữ liệu qua lại giữa client và server.

Phương thức tạo kết nối và truyền dữ liệu trong FTP

Phương thức tạo kết nối dữ liệu của FTP

  • Phương thức Normal (Active) Data Connections: Đây là phương thức giúp tạo kết nối giữ liệu ở dạng chủ động hoặc kết nối dữ liệu ở dạng bình thường.
  • Phương thức Passive Data Connections (tạo kết nối bị động): ở phương thức này, server sẽ chỉ chấp nhận duy nhất yêu cầu kết nối từ Client. Nó sẽ phản hồi lại Client bằng các địa chỉ cổng và địa chỉ IP mà nó sẽ sử dụng. Phía Server – DTP cũng sẽ lắng nghe cổng này bằng kết nối đến từ User – DTP là TCP. Server sử dụng cổng 20 – đây là cổng dành riêng để kết nối dữ liệu. Server – DTO được tạo thành từ cổng kết nối User – DTP. 
  • Phương thức Block Mode: Đây là một phương thức truyền dữ liệu có tính quy chuẩn.
ket-noi-du-lieu-ftp
Kết nối dữ liệu trên FTP

 Phương thức truyền dữ liệu của FTP

  • Phương thức Block Mode: Đây là một phương thức truyền dữ liệu có tính quy chuẩn. Ở cách này, dữ liệu sẽ được chia ra thành các khối nhỏ sau đó đóng gói trong các FTP blocks. Từng block sẽ chứa thông tin của khối dữ liệu mà nó đang gửi.
  • Phương thức Stream Mode: Phương thức truyền thông tin này có cấu trúc theo dạng Header, nó thông qua kết nối TCP để truyền thông tin tới nơi nhận nên nếu bạn ngắt kết nối đồng nghĩa với việc dữ liệu sẽ kết thúc. 
  • Phương thức Compressed Mode: Đây là phương thức truyền các dữ liệu bị nén bằng kỹ thuật run-length encoding cực kỳ đơn giản. Nó sẽ phát hiện những đoạn dữ liệu bị lặp và loại bỏ chúng. 

Hướng dẫn cài đặt cấu hình FTP server trên CentOS-7

 Cài đặt VSFTPD

Nhập lệnh:

  •  #yum install vsftpd – y

Hãy khởi động dịch vụ FTP Server Vsftpd cho tới khi hệ điều hành boot hiện lên. 

  • # systemctl start vsftpd
  • # systemctl enable vsftpd

Cấu hình tường lửa thường được dùng cho dịch vụ FTP và cổng 21: 

  • # firewall-cmd –permanent –add-port=21/tcp

success

  • # firewall-cmd –permanent –add-service=ftp

success

  • # firewall-cmd –reload

success

Kiểm tra trạng thái dịch vụ vsftpd. 

ket-noi-du-lieu-ftp-1
Trạng thái dịch vụ vsftpd

Cấu hình dịch vụ VSFTPD

File cấu hình sẽ nằm tại vị trí: etc/vsftpd/vsftpd.conf. Các bạn hãy copy file cấu hình này để backup:

  • # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup

Tiếp tục chỉnh sửa file cấu hình như sau:

  • # vi /etc/vsftpd/vsftpd.conf

Đối với FTP Access chúng ta không được cho nó kết nối nặc danh, mà chỉ cho kết nối cục bộ vào FTP server:

  • anonymous_enable=NO  
  • local_enable=YES 

Bước tiếp theo, để cho phép user logged-in để upload files vào your FTP server. Người dùng hãy tìm kiếm những mục sau đây để chỉnh sửa sao cho khớp như sau:

  • write_enable=YES

Để có thể giới hạn FTP users  vào thư mục riêng các bạn làm như sau:

  • chroot_local_user=YES
  • allow_writeable_chroot=YES

Tiện ích vsftpd cung cấp cho chúng ta cách làm để có thể tạo danh sách người dùng được phê duyệt. Để quản lý người dùng theo cách này, các bạn hãy tìm mục nhập userlist_enable, sau đó sửa lại tên tệp theo hướng dẫn sau: 

  • userlist_enable=YES
  • userlist_file=/etc/vsftpd/user_list
  • userlist_deny=NO

Mỗi khi chỉnh sửa file cấu hình xong các bạn phải restart service vsftpd sau đó áp dụng:

  • # systemctl restart vsftpd

Truy cập và tạo FTP user

Các bạn sẽ tạo mới 1 local user là: ftp, mật khẩu là ftp 2021. Khi đã tạo xong thì thư mục mặc định của nó nằm ở /home/tfp/.

Để cấp quyền truy cập cho FTP Server, chúng ta sẽ tải thêm FTP vào các file sau:

  •  Để truy cập được vào server thì thêm /etc/vsftpd/user_list.
  • Sau đó các bạn thêm vào trong file /etc/vsftpd/chroot_list.
  • Cuối cùng các bạn chọn Restart các dịch vụ của vsftpd. 

Chúng ta truy cập FTP bằng một số cách như: FileZilla ở trên Windows hoặc cmd ở trên Windows…

Hướng dẫn sử dụng FileZilla để truyền file lên FTP server

FileZilla là một phần được sử dụng để kết nối FTP được sử dụng phổ biến trong lĩnh vực thiết kế website. Đây là mã nguồn mở, có đa tính năng và được sử dụng tại các hệ điều hành Linux, Windows, Mac OS X. 

Sử dụng FileZilla để upload file lên FTP server

filezilla
Upload file lên FTP server
  • Đầu tiên, các bạn phải kết nối với FTP server bằng cách thực hiện các thao tác định vị, kéo thả các dữ liệu nằm ở bên trái của phần mềm. Các file còn lại nằm ở bên phải màn hình thì các bạn xếp chúng vào thực mục public_html ở trên server.
  • Các bạn hoàn toàn có thể upload các file đã nén qua FTP, thao tác bằng cách kéo thả từ bên trái sang bên phải. Nếu file của các bạn quá lớn, không thể giải nén qua File Manager được thì hãy sử dụng SSH để giải nén. 

Tải file trên FTP server về

Cũng giống như khi Upload File, bạn hãy chọn một thư mục từ cây thư mục ở bên trái màn hình để chứa những file sẽ tải về. Chọn file cần tải về ở cây thư mục bên phải. Cuối cùng các bạn nhấn chuột và lựa chọn Download. 

Ưu điểm và nhược điểm của FTP

  • Ưu điểm mà FTP mang đến:
  • Cho phép người dùng có thể chuyển nhiều tệp tin đi cùng một lúc.
  • Đây là giao diện rất quen thuộc với người dùng vì nó có thời gian hoạt động lâu năm.
  • Việc thực hiện đồng bộ hóa các tập tin trên các máy khách FTP đều có thể thực hiện hơn.
  • FTP cho phép người dùng có thể lên lịch truyền, thêm các dữ liệu vào khung chờ. 
  • Nhược điểm FTP cần khắc phục:
  • Nhược điểm lớn nhất của FTP chính là vấn đề về bảo mật. Tin tặc rất dễ dàng đánh cắp các thông tin của người dùng vì tên người dùng, mật khẩu và các tệp đều được gửi dưới dạng văn bản thuần túy.
  • Vì FTP yêu cầu phải tạo các cổng kết nối khi truyền tin nên nó không hợp để sử dụng cho các tổ chức.
  • Các máy chủ của FTP rất dễ bị qua mặt, gửi thông tin tới các công một cách ngẫu nhiên. 

Như vậy, bài viết của AZSEO đã giải đáp toàn bộ những thắc mắc về FTP là gì? cũng như hướng dẫn các bạn sử dụng FTP bằng những cách cực kỳ đơn giản. Hãy liên hệ ngay với AZSEO thông qua hotline: 0902446660 để được các chuyên gia tư vấn, giải đáp.