以下是Debian系統vsftpd故障的排查步驟:
檢查服務狀態
sudo systemctl status vsftpd
查看服務是否運行,是否有錯誤提示。
查看日志文件
sudo tail -n 50 /var/log/vsftpd.log
sudo journalctl -xe
分析日志中的錯誤信息,定位問題根源。
檢查配置文件
sudo vsftpd -t
listen=YES
(啟用監聽)local_enable=YES
(允許本地用戶登錄)write_enable=YES
(允許上傳)chroot_local_user=YES
(限制用戶主目錄,需確保目錄權限正確)sudo chown root:root /etc/vsftpd.conf
sudo chmod 644 /etc/vsftpd.conf
排查權限問題
/home/ftpuser
):sudo chown -R ftpuser:ftpuser /path/to/ftp/directory
sudo chmod -R 755 /path/to/ftp/directory
sudo setsebool ftpd_disable_trans 1
sudo setsebool ftp_home_dir 1
檢查防火墻設置
確保開放FTP端口(默認21)及被動模式端口范圍:
sudo ufw allow 21/tcp
sudo ufw allow [start-port]-[end-port]/tcp # 被動模式需額外端口
處理端口沖突
檢查端口21是否被占用:
sudo netstat -tuln | grep :21
若沖突,修改/etc/vsftpd.conf
中的listen_port
并重啟服務。
驗證軟件包和依賴
更新軟件源并重新安裝vsftpd:
sudo apt-get update
sudo apt-get install --reinstall vsftpd
調試模式(可選)
在配置文件中啟用調試選項,重啟后查看詳細日志:
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
常見錯誤示例:
chown
和chmod
修正。/etc/vsftpd.conf
中的userlist_enable
及用戶是否在允許列表中。write_enable=YES
并確保目錄權限為755或775。若問題仍未解決,可參考vsftpd官方文檔或在社區論壇提供具體錯誤日志進一步排查。