在樹莓派上安裝和配置 vsftpd(Very Secure FTP Daemon)服務器的步驟如下:
1. 安裝 vsftpd
打開終端,執行以下命令安裝 vsftpd:
sudo apt update
sudo apt install vsftpd
安裝完成后,vsftpd 會自動啟動。可以通過以下命令驗證服務狀態:
sudo systemctl status vsftpd
2. 備份原始配置文件
在修改配置前,先備份原始配置文件:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup
3. 配置 vsftpd
使用文本編輯器(如 nano 或 vim)打開配置文件:
sudo nano /etc/vsftpd.conf
在文件中進行以下修改:
基礎配置
# 禁止匿名訪問
anonymous_enable=NO# 允許本地用戶登錄
local_enable=YES# 啟用寫入權限
write_enable=YES# 本地用戶上傳文件的默認權限
local_umask=022# 啟用被動模式(推薦)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
用戶隔離配置
# 限制用戶只能訪問自己的主目錄
chroot_local_user=YES# 允許指定用戶例外(可選)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
其他安全設置
# 啟用 SSL/TLS 加密(可選)
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
修改完成后,按 Ctrl+O
保存,按 Ctrl+X
退出。
4. 創建允許訪問的用戶列表(可選)
如果啟用了 chroot_list_enable=YES
,需要創建 /etc/vsftpd.chroot_list
文件并添加允許訪問的用戶:
sudo nano /etc/vsftpd.chroot_list
在文件中每行添加一個用戶名(例如 pi
),保存后退出。
5. 創建 FTP 用戶和目錄
創建一個專門的 FTP 用戶(例如 ftpuser
)并設置密碼:
sudo adduser ftpuser
按提示設置密碼和用戶信息。
創建用戶的 FTP 目錄并設置權限:
sudo mkdir -p /home/ftpuser/ftp/files
sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp
sudo chmod -R 755 /home/ftpuser/ftp
6. 配置防火墻(可選)
如果樹莓派啟用了防火墻(如 ufw),需要開放 FTP 端口:
sudo ufw allow 20/tcp # FTP 數據端口
sudo ufw allow 21/tcp # FTP 控制端口
sudo ufw allow 40000:40100/tcp # 被動模式端口范圍
7. 重啟 vsftpd 服務
配置完成后,重啟 vsftpd 服務使更改生效:
sudo systemctl restart vsftpd
8. 測試 FTP 連接
使用 FTP 客戶端(如 FileZilla、WinSCP 或命令行工具)連接到樹莓派的 IP 地址,使用之前創建的用戶名(如 ftpuser
)和密碼登錄。Windows cmd命令窗口:>ftp 192.168.1.177(你的服務器地址),按提示輸入相應用戶名、密碼
- 主機:樹莓派的 IP 地址(如
192.168.1.100
) - 端口:21
- 用戶名:
ftpuser
- 密碼:用戶密碼
常見問題
- 無法連接:檢查防火墻設置和 vsftpd 服務狀態。
- 權限問題:確保文件目錄權限正確(
chmod
和chown
)。 - SSL 證書錯誤:可生成自簽名證書或使用 Let’s Encrypt 證書。
通過以上步驟,你可以在樹莓派上成功配置一個安全的 FTP 服務器,限制用戶訪問特定目錄,并支持文件上傳和下載。