常見原因:FTP服務未運行、防火墻阻止端口、配置文件錯誤。
解決方案:
sudo systemctl status vsftpd,若未運行則用sudo systemctl start vsftpd啟動服務。sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp # 被動模式端口范圍
sudo ufw reload
/etc/vsftpd.conf中的關鍵參數:listen=YES(啟用監聽)、anonymous_enable=NO(禁止匿名)、local_enable=YES(允許本地用戶登錄)。修改后重啟服務:sudo systemctl restart vsftpd。常見原因:用戶無寫入權限、write_enable未開啟、磁盤空間不足。
解決方案:
sudo chown ftpuser:ftpuser /home/ftpuser # 將目錄所有者設為用戶
sudo chmod 755 /home/ftpuser # 允許所有者寫入
/etc/vsftpd.conf中設置write_enable=YES,重啟服務生效。df -h查看磁盤使用情況,清理無用文件釋放空間。常見原因:網絡不通、防火墻攔截、被動模式端口未開放。
解決方案:
ping <服務器IP>檢查客戶端與服務器的網絡連接。/etc/vsftpd.conf中啟用被動模式并設置端口范圍:pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
重啟服務后,客戶端需在FTP客戶端(如FileZilla)中設置相同的被動模式端口范圍。常見原因:客戶端與服務器字符集不匹配(如Windows用GBK、Linux用UTF-8)。
解決方案:
UTF-8。/etc/vsftpd.conf中添加char_set=UTF-8,重啟服務。常見原因:證書路徑錯誤、TLS未啟用、配置文件參數錯誤。
解決方案:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.crt
/etc/vsftpd.conf中添加以下參數:ssl_enable=YES
ssl_tls=YES
rsa_cert_file=/etc/ssl/private/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
重啟服務后,客戶端需選擇“FTP over TLS”模式連接。常見原因:配置文件被誤刪、參數設置錯誤。
解決方案:
sudo apt remove --purge vsftpd
sudo apt install vsftpd
/etc/vsftpd.conf后,用sudo vsftpd /etc/vsftpd.conf測試配置是否正確,若有錯誤會提示具體行號。常見原因:端口沖突、配置文件語法錯誤、依賴服務未啟動。
解決方案:
sudo netstat -tuln | grep 21,若21端口被占用,修改/etc/vsftpd.conf中的listen_port為其他端口(如2121),并更新防火墻規則。journalctl -xe或sudo systemctl status vsftpd查看啟動錯誤信息,根據提示修復(如配置文件語法錯誤)。常見原因:允許匿名登錄、用戶口令簡單、未限制用戶訪問范圍。
解決方案:
/etc/vsftpd.conf中設置anonymous_enable=NO。chroot_local_user=YES將用戶限制在主目錄,添加allow_writeable_chroot=YES允許寫入(若需上傳文件)。sudo passwd -e ftpuser強制用戶定期修改口令,或通過/etc/pam.d/vsftpd配置強密碼策略。