Bỏ qua tới nội dung
Kiến thức Website· ·12 phút đọc

FTP là gì, dùng để làm gì và tại sao bạn không nên dùng nó như trước

Nguyen Hien
FTP là gì, dùng để làm gì và tại sao bạn không nên dùng nó như trước
Cỡ chữ

FTP là gì và ra đời từ khi nào

FTP (File Transfer Protocol, giao thức truyền file) là giao thức mạng dùng để chuyển file giữa hai máy tính qua internet hoặc mạng nội bộ. Với chủ website, FTP là cách trực tiếp nhất để đưa file lên hosting, kéo file về máy, hay chỉnh sửa file trực tiếp trên server.

FTP ra đời năm 1971, theo đặc tả RFC 959 của IETF. Đây là một trong những giao thức mạng lâu đời nhất còn được dùng đến ngày nay. Vì được thiết kế ở thời kỳ internet còn là mạng nội bộ của các trường đại học và cơ quan nghiên cứu, FTP không có mã hoá, không có lớp bảo mật nào theo nghĩa hiện đại.

Người ta vẫn dùng FTP vì nó đơn giản, tương thích rộng, và mọi nhà cung cấp hosting đều hỗ trợ. Nhưng “vẫn dùng được” không có nghĩa là “vẫn an toàn”, và đó là lỗi phán đoán phổ biến nhất khi nhắc đến FTP.

Sơ đồ FTP là gì: kết nối giữa client FileZilla trên máy bạn và FTP server trên hosting qua hai kênh, kênh lệnh cổng 21 và kênh dữ liệu cổng 20
FTP dùng hai kênh kết nối riêng: một kênh nhận lệnh qua cổng 21 và một kênh truyền dữ liệu qua cổng 20

FTP hoạt động thế nào, hai chế độ cần biết

FTP theo mô hình client-server. Phần mềm FTP trên máy bạn (gọi là FTP client) kết nối vào FTP server đang chạy trên hosting. Hai bên dùng hai kênh riêng biệt: kênh lệnh (command channel) trên cổng 21 để gửi lệnh như “liệt kê thư mục”, “xoá file”, và kênh dữ liệu (data channel) trên cổng 20 để thực sự truyền nội dung file.

Chỗ hay gây nhầm là hai chế độ truyền dữ liệu: Active ModePassive Mode. Hiểu rõ hai chế độ này giúp bạn xử lý khi kết nối FTP thất bại mà không biết lý do.

Với Active Mode: sau khi client ra lệnh muốn truyền dữ liệu, chính server mở kết nối ngược về phía client để truyền file. Vấn đề là nhiều mạng doanh nghiệp, router gia đình và tường lửa ngăn kết nối vào từ bên ngoài, khiến Active Mode hay bị thất bại mà không rõ nguyên nhân.

Với Passive Mode: client tự mở cả hai kết nối đi ra phía server. Tường lửa phía client không chặn vì không có kết nối nào đến từ bên ngoài. Đó là lý do Passive Mode là chế độ mặc định trong FileZilla và hầu hết phần mềm FTP hiện đại. Nếu kết nối FTP của bạn bị lỗi “connection timeout”, thử chuyển sang Passive Mode là bước đầu tiên cần kiểm tra.

So sánh Active Mode và Passive Mode trong FTP: Passive Mode khuyến nghị vì client tự mở kết nối đi ra không bị tường lửa chặn, còn Active Mode server mở ngược về client hay bị firewall ngăn
Passive Mode được chọn mặc định trong FileZilla vì không bị tường lửa phía client chặn

Dùng FTP để làm gì khi quản lý website

Với chủ website chưa có giao diện quản lý file trực quan, FTP là cầu nối trực tiếp vào hệ thống file trên server. Những việc thường làm qua FTP:

  • Đẩy file lên server: upload theme WordPress, upload plugin khi file zip quá lớn để cài qua dashboard, hay upload bất kỳ file nào cần có mặt trên hosting.
  • Kéo file về máy: backup toàn bộ thư mục website, tải file log, hay lấy lại file đã chỉnh trực tiếp trên server.
  • Chỉnh sửa file cấu hình: sửa .htaccess khi bị redirect lặp vô tận, sửa wp-config.php khi không vào được WordPress.
  • Phục hồi sau sự cố: khi site trắng trang hoặc bị khoá admin, FTP là cách để đẩy lại file gốc hoặc đổi tên thư mục plugin đang gây lỗi để tắt tạm.

Bài khôi phục website từ backup giải thích chi tiết cách dùng FTP trong các tình huống phục hồi khẩn cấp. Nếu bạn từng bị mất quyền vào admin WordPress, đọc thêm lấy lại quyền admin WordPress để thấy FTP được dùng ở bước nào trong quy trình đó.

FileZilla và cách kết nối FTP từng bước

FileZilla là phần mềm FTP client miễn phí, phổ biến nhất hiện nay, chạy trên Windows, macOS và Linux. Giao diện chia đôi: bên trái là thư mục trên máy bạn, bên phải là thư mục trên server, kéo thả từ bên này sang bên kia để truyền file.

Để kết nối, cần bốn thứ từ nhà cung cấp hosting: hostname (địa chỉ IP hoặc tên miền hosting), username, password, và port. Thông tin này thường có trong email chào mừng khi đăng ký hosting, hoặc tìm trong mục FTP Accounts bên trong cPanel. Nếu hosting dùng Plesk hay DirectAdmin, giao diện tên khác nhưng thông tin cần tìm giống nhau.

Một sai lầm phổ biến là sau khi cài FileZilla, người ta cứ để port 21 và chọn “FTP” rồi kết nối. Nhiều hosting hiện đại đã tắt FTP thuần trên cổng 21 và chỉ cho phép SFTP trên cổng 22 vì lý do bảo mật. Nếu kết nối thất bại, thử đổi port sang 22 và chọn đúng kiểu giao thức SFTP trong danh sách Protocol của FileZilla. Bài SFTP là gì giải thích sự khác nhau và cách thiết lập đúng.

Ngoài FileZilla còn có WinSCP (chỉ trên Windows), Cyberduck (macOS và Windows), hay Transmit (macOS). Tất cả đều hỗ trợ cả FTP lẫn SFTP, chỉ cần điền đúng thông tin vào là dùng được.

Rủi ro bảo mật của FTP và khi nào nên chuyển sang SFTP

Đây là phần quan trọng nhất và cũng là phần nhiều chủ web bỏ qua nhất. FTP không mã hoá bất kỳ thứ gì. Không phải mã hoá yếu hay mã hoá cũ, là không có mã hoá gì hết. Tên đăng nhập, mật khẩu, tên file, nội dung file đang truyền, tất cả đều đi qua mạng dưới dạng văn bản thô (plaintext).

Điều đó có nghĩa là: bất kỳ ai có khả năng giám sát lưu lượng mạng giữa bạn và server đều đọc được toàn bộ. Tình huống dễ xảy ra nhất là khi kết nối FTP từ mạng wifi công cộng ở quán cà phê, sân bay, hay coworking space. Ngay cả mạng văn phòng không được bảo vệ tốt cũng có rủi ro tương tự.

Ba rủi ro bảo mật khi dùng FTP không mã hoá: mật khẩu hosting bị đọc qua packet sniffing, nội dung file upload bị chặn bắt, tài khoản FTP bị chiếm khi dùng mạng công cộng
FTP truyền mọi thứ không mã hoá, ba rủi ro này đều có thể xảy ra khi bạn kết nối từ mạng không đáng tin cậy

Giải pháp thực tế: dùng SFTP (SSH File Transfer Protocol, giao thức truyền file qua SSH) thay vì FTP. SFTP mã hoá toàn bộ kết nối, dùng cổng 22, và hầu hết hosting đều hỗ trợ. Trong FileZilla, chỉ cần chọn “SFTP” trong mục Protocol và đổi port sang 22, mọi thao tác còn lại giống hệt như FTP.

Cũng có FTPS (FTP Secure), là FTP truyền thống được bổ sung thêm lớp TLS. FTPS vẫn mã hoá được, nhưng cấu trúc hai kênh của FTP gốc khiến nó phức tạp hơn khi thiết lập với tường lửa. SFTP đơn giản hơn vì dùng một kênh duy nhất. Nếu không có lý do đặc biệt, SFTP là lựa chọn mặc định hợp lý hơn.

So sánh tổng quan ba giao thức FTP, SFTP và FTPS: FTP không mã hoá không nên dùng khi cần bảo mật; FTPS thêm TLS nhưng vẫn dùng 2 kênh; SFTP chạy trên nền SSH là khuyến nghị mặc định
SFTP là lựa chọn phù hợp nhất cho hầu hết trường hợp: đơn giản hơn FTPS, an toàn hơn FTP

Nếu đang dùng shared hosting mà chưa biết có hỗ trợ SFTP không, thử kết nối với port 22 trong FileZilla. Nếu thành công, dùng SFTP từ bây giờ. Nếu không được, hỏi trực tiếp nhà cung cấp hosting vì đây là tính năng cơ bản. Việc chuyển sang hosting mới tốt hơn cũng không phức tạp nếu làm đúng cách, bài chuyển hosting không mất dữ liệu có hướng dẫn cụ thể. Để hiểu cơ chế mã hoá phía sau SFTP, đọc thêm SSH là gì.

Câu hỏi thường gặp về FTP

FTP và FTPS khác nhau ở điểm nào?

FTPS vẫn là FTP về cấu trúc, chỉ thêm lớp mã hoá TLS bên trên để bảo vệ dữ liệu truyền đi. Cả hai đều dùng hai kênh kết nối riêng (lệnh và dữ liệu) nên cần mở nhiều cổng hơn và đôi khi xung đột với tường lửa. SFTP thì khác hẳn: không liên quan gì đến FTP về mặt kỹ thuật, là một giao thức mới hoàn toàn chạy trên nền SSH, chỉ dùng một kênh duy nhất.

Hosting của tôi vẫn dùng FTP bình thường, có cần đổi không?

Nếu hosting hỗ trợ SFTP, nên đổi dù chưa gặp vấn đề gì. Tấn công qua packet sniffing thường không để lại dấu vết rõ trên server của bạn, nên bạn không biết có ai đọc kết nối hay không. Rủi ro cao nhất là khi bạn kết nối FTP từ mạng wifi không riêng tư.

Có thể dùng cPanel File Manager thay vì FTP không?

Được, và cPanel File Manager chạy qua HTTPS nên bảo mật hơn FTP thuần. Hạn chế là thao tác chậm hơn khi cần di chuyển nhiều file cùng lúc, tải lên file lớn hay kéo toàn bộ thư mục về máy. FTP hoặc SFTP vẫn tiện hơn cho những việc đó, nhưng dùng SFTP thay vì FTP.

Hosting đã tắt FTP trên cổng 21, tôi phải làm gì?

Đây là dấu hiệu tốt, không phải vấn đề. Hosting đã tắt FTP vì bảo mật và chỉ giữ SFTP trên cổng 22. Trong FileZilla, tạo kết nối mới với Protocol là SFTP và Port là 22, dùng đúng username và password hosting của bạn là kết nối được ngay.

Đọc tiếp

Bài viết
cùng chủ đề.

Tất cả bài viết