以下是Ubuntu vsftpd故障排查核心技巧:
服務狀態檢查
sudo systemctl status vsftpd # 確認服務是否運行,未運行則啟動
sudo systemctl restart vsftpd # 修改配置后重啟服務
防火墻與端口驗證
sudo ufw status # 確保允許21端口(控制連接),數據端口(20)若使用被動模式需開放
sudo ufw allow 21/tcp
sudo ufw reload
sudo netstat -tuln | grep 21 # 確保無其他進程占用FTP端口
配置文件校驗
/etc/vsftpd.conf
關鍵參數:listen=YES # 確保監聽正確IP和端口
anonymous_enable=NO # 通常禁用匿名訪問(根據需求設置)
local_enable=YES # 允許本地用戶登錄
write_enable=YES # 允許上傳文件
chroot_local_user=YES # 限制用戶至主目錄(需配合權限設置)
sudo dpkg-reconfigure vsftpd # 或手動編輯后重啟服務
用戶權限與目錄設置
sudo chown -R ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser # 或777(測試時使用,生產環境需謹慎)
pasv_min_port
/pasv_max_port
并開放防火墻對應端口段。日志與調試分析
sudo tail -f /var/log/vsftpd.log # 或 journalctl -xe(部分系統)
debug_enable=YES
,重啟后查看詳細日志。特殊場景處理
sudo setenforce 0 # 臨時設為permissive模式
提示:修改配置后務必重啟服務,優先通過日志定位具體錯誤,復雜問題可參考vsftpd官方文檔或社區論壇(如Stack Overflow)。