FTP (viết tắt của File Transfer Protocol dịch ra là “Giao thức truyền tập tin”) thường được dùng để trao đổi tập tin qua mạng lưới truyền thông dùng giao thức TCP/IP (chẳng hạn như Internet – mạng ngoại bộ – hoặc Intranet – mạng nội bộ).
Mặc dù FTP (File Transfer Protocol) là một công nghệ cũ nhưng nó vẫn được sử dụng ở nhiều hệ thống và thiết bị phần cứng. Nhiều camera IP cho phép bạn lưu lại những bức ảnh lên máy chủ FTP và bạn cũng có thể tạo được nó lên Raspberry Pi.
SFTP sẽ là sự lựa chọn tốt hơn nhưng nếu thiết bị của bạn chỉ hỗ trợ FPT thì bài này sẽ hướng dẫn làm thế nào để xây dựng máy chủ FTP.
Chúng ta sẽ sử dụng vsftpd vì đây là một ứng dụng Linux phổ biến, an toàn, ổn định và cực kỳ nhanh chóng.
Bắt đầu cài đặt
Bạn cần các thiết bị sau:
- Rapsberry Pi. Chúng tôi khuyến cáo sử dụng Raspberry Pi 3 Model B+ mới nhất vì cấu hình mạnh hơn
- Thẻ nhớ SD chứa phiên bản Raspbian mới nhất
- Nguồn 5V – 2.5A. Bạn có thể tham khảo nguồn chính hãng của Raspberry Pi hoặc nguồn Teclast TP-U25 do Raspberry Pi VN phân phối
- Bàn phím, chuột và màn hình.
Bắt đầu với một thẻ SD mới có chứa phiên bản Raspbian mới nhất. Nếu chưa biết cách, hãy xem qua bài viết Hướng dẫn lựa chọn và cài đặt hệ điều hành trên Raspberry Pi của chúng tôi.
Cài đặt Raspberry Pi và kết nối với mạng sử dụng dây cáp Ethernet hoặc Wifi.
Lấy địa chỉ IP bằng lệnh:
ifconfig
Thông thường, địa chỉ IP sẽ có dạng: 192.168.###.###.
Bước 1: Cài đặt vsftpd
Sử dụng lệnh sau để cập nhật lại repositories và cài đặt phần mềm vsftpd:
sudo apt-get update sudo apt-get install vsftpd
Bước 2: cập nhật tệp cấu hình:
Sau khi cài đặt hoàn tất, bạn có thể cấu hình lại trong tệp:
sudo nano /etc/vsftpd.conf
Trong tệp, bạn tìm đến các dòng ở dưới và bỏ đi dấu #:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES
Và thêm 2 dòng này vào cuối tệp:
user_sub_token=$USER local_root=/home/$USER/ftp
Lưu lại và thoát ra bằng cách nhấn CTRL-X, Y và ENTER.
Bước 3 – Tạo bộ thư mục FTP cho người dùng Pi
Để cho phép bạn có thể kết nối vào máy chủ FPT bằng việc sử dụng tên mặc định của Raspberry Pi, chúng ta sẽ tạo một vài thư mục sau:
mkdir /home/pi/ftp mkdir /home/pi/ftp/files
Cấp phép truy cập cho thư mục:
chmod a-w /home/pi/ftp
Bước 4 – Tạo người dùng mới
Nếu bạn muốn login vào máy chủ bằng một tài khoản khác, chúng ta có thể tạo một tài khoản mới. Ví dụ trong trường hợp này ta sẽ tạo ra tài khoản gọi là “camera”
sudo adduser camera
Bạn sẽ được nhặc nhập mật khẩu, những phần khác có thể bỏ trống. Ta sẽ được như hình dưới:
Người dùng mới này cũng sẽ cần một bộ thư mục FTP:
mkdir /home/camera/ftp mkdir /home/camera/ftp/files
Cấp phép thư mục:
chmod a-w /home/camera/ftp
Tiếp theo:
sudo adduser camera sudo
Bước 5 – Khởi động lại máy chủ FTP
Cuối cùng khởi động lại vsftpd:
sudo service vsftpd restart
Step 6 – Kiểm tra máy chủ FTP
Tất cả những gì còn lại là bạn kiểm tra kết nối với máy chủ FTP và truyền tệp.
Lấy địa chỉ IP của Raspberry PI
ifconfig
Chạy ứng dụng khách trên PC/laptop. Với hệ điều hành Windows, bạn có thể dụng WinSCP. Windows, Mac hoặc Linux có thể dùng FileZilla. Nếu bạn đang kết nối vở Raspberry Pi bằng SSH thì bạn cũng có thể làm như vậy thông qua FTP.
Để kết nối với FTP, client cần host (Địa chỉ IP) của RPI, tên người dùng (ví dụ pi hoặc camera) và mật khẩu. Đảm bảo nó được cài đặt để sử dụng giao thức FTP và cổng 21.
Dưới dây là cửa sổ làm việc của WinSCP:
Đây là ví dụ về cửa sổ làm việc của WinSCP khi đã kết nối với Pi với tên người dùng là “camera”
Xem lịch sử hoạt động của máy chủ FTP
Bạn có thể kiểm tra lịch sử kết nối của máy chủ FTP:
cat /var/log/vsftpd.log
Đọc thêm:
Nhiều cấu hình cho vsftpd
https://security.appspot.com/vsftpd/vsftpd_conf.html
Giao thức FTP:
https://en.wikipedia.org/wiki/File_Transfer_Protocol