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配置或版本(建议升级至最新版本);若其他客户端也无法连接,则问题在服务器端(如服务未启动、防火墙未开放)。