Hi 🤓 Cảm ơn bạn đã ghé thăm blog này, nếu những bài viết trên blog giúp ích cho bạn. Bạn có thể giúp blog hiển thị quảng cáo bằng cách tạm ngừng ad blocker 😫 và để giúp blog duy trì hoạt động nếu bạn muốn.
Cảm ơn bạn!

WinSCP là gì?

Trong bài viết này, chúng ta cùng tìm hiểu về công cụ WinSCP (Windows Secure Copy), đây là một phần mềm phổ biến giúp chúng ta kết nối và truyền tải file an toàn qua các giao thức (protocol) như SFTP, FTP, WebDAV và SCP trên hệ điều hành Windows. Nó cho phép truyền tải file an toàn giữa máy tính cục bộ (local computer) và máy chủ từ xa (remote server). Để sử dụng WinSCP, các bạn có thể sử dụng cả giao diện đồ họa (GUI) và giao diện dòng lệnh (CLI).

Ở hệ điều hành windows, các bạn có thể tải tool về tại link: https://winscp.net/, việc cài đặt cũng khá đơn giản 😁, đây là giao diện của WinSCP.

WinSCP User Interfaces

Nói qua một chút về UI của WinSCP, các bạn có thể thấy WinSCP có 2 panels, ngăn điều khiển bên trái cho biết thông tin local file hay thông tin file ở máy hiện tại của các bạn và ngăn bên phải là thông tin của remote server. Hiện tại mình chưa kết nối đến remote server nên mặc định bên phải là thông tin của máy mình 😁.

Ở đây, mình đã nhấn chọn New tab để tạo kết nối đến remote server, bạn thấy màn hình Login sẽ hiện lên giống hình trên. Một số thông tin các bạn nên chú ý như:

  • File protocol: Nơi chúng ta chọn giao thức truyền tải file như SFTP, SCP, FTP,... việc chọn lựa tùy thuộc vào cấu hình máy chủ.
  • Hostname: Nhập hostname hoặc địa chỉ IP (IP address) của remote server bạn muốn connect.
  • Username: Username trên remote server.
  • Password: Nhập mật khẩu để login vào remote server.
  • Port number: Chỉ định port mà server đang chờ kết nối, với SFTP hoặc SSH thì port theo mặc định là 22.

Sau đây, chúng ta cùng tìm hiểu thêm về các giao thức truyền file mà WinSCP hỗ trợ nhé.

Các bạn nếu chưa biết về SSH (Secure Shell) có thể tìm hiểu tại bài viết: SSH là gì? cách SSH đến remote server sử dụng virtualbox. Đây là một giao thức mạng (network protocol) được sử dụng để đăng nhập từ client đến remote server, nó giúp chúng ta thực hiện các lệnh trên máy remote một cách an toàn. WinSCP sử dụng SSH để đảm bảo tính bảo mật và tính toàn vẹn trong quá trình truyền tải file.

File Transfer Protocols

SFTP (SSH File Transfer Protocol)

SFTP là giao thức truyền file an toàn, nó hoạt động bằng cách sử dụng SSH (Secure Shell). Giao thức này sử dụng các cơ chế mã hóa (encryption) và xác thực (authentication) cung cấp bởi SSH để đảm bảo truyền tải file an toàn. SFTP hoạt động bằng cách tạo một kết nối an toàn giữa client và server. Client sau đó có thể thực hiện các thao tác với file như upload, download, rename và delete file trên remote server. Dữ liệu được chuyển qua kết nối SFTP và được mã hóa, đảm bảo tính bảo mật và toàn vẹn.

FTP (File Transfer Protocol)

FTP sử dụng hai kết nối riêng biệt: kết nối điều khiển - control connection và kết nối dữ liệu - data connection. Kết nối điều khiển được thiết lập trên cổng 21 và được sử dụng để gửi lệnh và nhận phản hồi giữa client và server. Kết nối dữ liệu được thiết lập trên một cổng riêng biệt (thường trên cổng 20) và được sử dụng để truyền tải dữ liệu file. FTP không cung cấp mã hóa theo mặc định, do đó nó ít an toàn để truyền tải các file chứa thông tin nhạy cảm. Để an toàn hơn, FTP có thể được kết hợp với giao thức mã hóa SSL/TLS (FTPS).

WebDAV (Web Distributed Authoring and Versioning)

WebDAV cho phép client thực hiện các hoạt động với file như upload, download, delete trên remote server. Nó sử dụng các phương thức HTTP như GET, PUT, POST, DELETE,... cho các hoạt động này. WebDAV hỗ trợ authentication và có thể sử dụng SSL/TLS để truyền tải file an toàn.

SCP (Secure Copy Protocol)

SCP là một giao thức truyền tải file an toàn hoạt động qua SSH. SCP cho phép sao chép các file giữa client và remote server. Nó hoạt động bằng cách thiết lập một kết nối SSH và sau đó sử dụng các lệnh SSH để sao chép file. SCP mã hóa dữ liệu trong quá trình truyền tải, đảm bảo truyền tải file an toàn.

Cách sử dụng WinSCP

Tiếp theo chúng ta đến với phần thực hành nhé. Mình sẽ tạo một máy ảo để giả lập remote server. Chúng ta sẽ dùng virtualbox và tạo máy ảo ubuntu server. Chi tiết các bạn có thể tham khảo cách tạo máy ảo và SSH đến ubuntu server tại: SSH là gì? cách SSH đến ubuntu server và cài đặt LAMP stack sử dụng virtualbox.

Đầu tiên, mình sẽ mở virtualbox và chạy ubuntu server, vào phần network setting của máy ảo vào tạo port để tiến hành SSH từ máy local hiện tại. Mình tạo port 3022 tương ứng với port 22 (mặc định của SSH) trên ubuntu server. Bạn nên đọc lại các bài viết liên quan ở trên để hiểu hơn nhé.

virtualbox port forwarding rules

Đây là ubuntu server mình đã tạo trước đó, nếu không chỉ định HOST IP và GUEST IP thì mặc định sẽ là localhost nhé.

screen ubuntu server

Sau khi đã config cho ubuntu server để nhận các kết nối thông qua SSH từ client. Chúng ta mở WinSCP và điền thông tin tương tự như dưới đây nhé.

ssh remote server with winscp

Hiện tại mình đang SSH bằng username homiedev và port là 3022 😁. Nếu thành công màn hình WinSCP sẽ trông giống như sau.

success log into remote server

Các bạn có thể thấy, right panel của mình lúc này là ubuntu server, hiện mình đang login bằng username homiedev. Sau khi login thành công chúng ta có thể truyền tải file một cách an toàn rồi ^^.

Tạm kết

Như vậy là chúng ta đã tìm hiểu cách sử dụng WinSCP để truyền tải file giữa local computer với remote server. Với WinSCP các bạn có thể kết nối đến nhiều remote server và truyền tải file một cách an toàn.

Hi vọng bài viết này sẽ giúp ích cho các bạn. Cảm ơn các bạn đã đọc bài viết 😄.

Có thể bạn thích ⚡
homiedev
About Me

Hi, I'm @devnav. Một người thích chia sẻ kiến thức, đặc biệt là về Frontend 🚀. Trang web này được tạo ra nhằm giúp các bạn học Frontend hiệu quả hơn 🎉😄.

Chúc các bạn tìm được kiến thức hữu ích trong blog này 😁😁.