1. 檢查網絡連接穩定性
使用ping 服務器IP命令測試客戶端與服務器之間的網絡連通性。若無法ping通,需排查網絡線路、路由器配置或服務器IP是否正確,確保兩者處于同一網絡環境或可通過公網訪問。
2. 驗證服務器服務狀態
確保Linux服務器上的SSH服務(用于SFTP)或FTP服務(如vsftpd)已啟動并正常運行:
sudo systemctl status ssh;若未啟動,執行sudo systemctl start ssh啟動服務。sudo systemctl status vsftpd;若未啟動,執行sudo systemctl start vsftpd啟動服務。3. 配置防火墻允許端口通過
防火墻可能阻止FileZilla的連接請求,需開放對應端口:
ufw(Ubuntu):sudo ufw allow 22/tcp,然后sudo ufw reload。firewalld(CentOS/RHEL):sudo firewall-cmd --permanent --add-service=ssh,然后sudo firewall-cmd --reload。ufw:sudo ufw allow 21/tcp,sudo ufw reload。firewalld:sudo firewall-cmd --permanent --add-service=ftp,sudo firewall-cmd --reload。pasv_min_port和pasv_max_port),需開放該端口范圍(如1024-1048),并通過firewall-cmd --permanent --add-port=1024-1048/tcp添加規則,然后firewall-cmd --reload。4. 確認FileZilla連接參數正確性
在FileZilla的“站點管理器”中,檢查以下參數是否準確:
5. 調整傳輸模式(解決連接后無法列出目錄問題)
若連接成功但無法列出目錄或上傳文件,嘗試更改FileZilla的傳輸模式:
6. 檢查服務器配置文件權限(針對FTP服務)
若使用vsftpd作為FTP服務,需修改配置文件以允許本地用戶登錄和寫入:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak。sudo nano /etc/vsftpd.conf,修改以下參數:local_enable=YES # 允許本地用戶登錄
write_enable=YES # 允許寫入操作
chroot_local_user=YES # 鎖定用戶根目錄(提升安全性)
allow_writeable_chroot=YES # 允許被鎖定的根目錄寫入(解決550權限拒絕問題)
pasv_enable=YES # 開啟被動模式
pasv_min_port=1024 # 被動模式最小端口
pasv_max_port=1048 # 被動模式最大端口
pasv_address=服務器IP # 替換為服務器公網IP(被動模式必需)
Ctrl+O→Enter→Ctrl+X),重啟vsftpd服務:sudo systemctl restart vsftpd。7. 檢查目標目錄權限(解決上傳失敗問題)
若連接成功但無法上傳文件(提示“550 Permission denied”),需檢查目標目錄的權限:
ls -l /path/to/directory查看目錄權限,確保當前用戶對該目錄有寫入權限(-rw-r--r--中的第一個w)。sudo chmod 755 /path/to/directory。sudo chown 用戶名:用戶名 /path/to/directory。8. 查看日志定位具體錯誤
若以上步驟均無法解決,查看FileZilla日志(“消息日志”窗口)或服務器日志獲取詳細錯誤信息:
/var/log/auth.log(Ubuntu/Debian)或/var/log/secure(CentOS/RHEL)。/var/log/vsftpd.log(vsftpd默認日志路徑)。9. 測試其他FTP客戶端
若FileZilla仍無法連接,嘗試使用其他FTP客戶端(如WinSCP、Cyberduck)進行連接。若其他客戶端能正常連接,說明問題出在FileZilla配置或版本(建議升級至最新版本);若其他客戶端也無法連接,則問題在服務器端(如服務未啟動、防火墻未開放)。