确保Linux客户端与FTP服务器之间的网络连接正常,可通过ping命令测试服务器可达性(如ping 服务器IP)。若网络不稳定(如丢包率高、延迟大),尝试切换网络环境(如从Wi-Fi改为有线)或联系网络管理员排查网络问题。
FTP连接需要开放21端口(控制连接)及被动模式端口范围(数据传输,默认通常为50000-50050或60000-60020)。根据Linux系统防火墙类型调整规则:
sudo ufw allow 21/tcp # 允许FTP控制端口
sudo ufw allow 50000:50050/tcp # 允许被动模式端口范围(根据实际情况调整)
sudo ufw reload # 重新加载规则
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT # 允许FTP控制端口
sudo iptables -A INPUT -p tcp --dport 50000:50050 -j ACCEPT # 允许被动模式端口范围
sudo service iptables save # 保存规则(CentOS 6)
sudo systemctl restart iptables # 重启服务(CentOS 7+)
sudo firewall-cmd --permanent --add-service=ftp # 允许FTP服务
sudo firewall-cmd --permanent --add-port=50000-50050/tcp # 允许被动模式端口范围
sudo firewall-cmd --reload # 重新加载规则
主动模式(PORT)可能导致防火墙或路由器阻止数据连接,优先启用被动模式(PASV):
打开FileZilla → 点击顶部菜单栏「编辑」→ 选择「设置」→ 进入「传输」→ 「设置」→ 勾选「使用被动模式连接」。
若服务器位于内网,需进一步设置「服务器使用PASV」为「是」,并指定服务器的公网IP地址(可在FTP服务器配置文件中查看,如vsftpd的pasv_address参数)。
默认超时时间较短(通常30秒),网络延迟高时易导致连接中断。调整方法:
打开FileZilla → 「编辑」→ 「设置」→ 进入「常规」→ 找到「连接超时」(Connection timeout),将其设置为300秒(5分钟);同时调整「传输超时」(Transfer timeout)为更高值(如300秒),避免因传输缓慢导致超时。
确保FTP服务(如vsftpd、OpenSSH)运行正常,且配置允许外部连接:
/etc/vsftpd.conf,确认以下关键设置:anonymous_enable=NO # 禁止匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许上传文件
chroot_local_user=YES # 限制用户在自己的家目录
allow_writeable_chroot=YES # 允许家目录可写(避免权限问题)
pasv_enable=YES # 启用被动模式
pasv_min_port=50000 # 被动模式最小端口
pasv_max_port=50050 # 被动模式最大端口
修改后重启vsftpd服务:sudo systemctl restart vsftpd # CentOS/RHEL
sudo service vsftpd restart # Ubuntu/Debian
sudo systemctl status ssh),并允许SFTP连接(默认配置通常已支持)。旧版本FileZilla可能存在已知的连接bug(如被动模式兼容性问题),建议从官方网站下载最新稳定版本(Linux版本支持.deb或.rpm安装包),替换旧版本以修复潜在问题。
top、free -h、df -h命令查看),可能导致连接中断。需清理无用进程或升级服务器配置。/var/log/vsftpd.log(部分系统可能在/var/log/messages);/var/log/auth.log(Ubuntu/Debian)或/var/log/secure(CentOS/RHEL)。若FTP协议频繁出现问题,可切换至SFTP(SSH File Transfer Protocol)——基于SSH加密,更稳定且无需额外开放FTP端口。
在FileZilla的「站点管理器」中新建站点,将「协议」选择为「SFTP - SSH File Transfer Protocol」,端口设置为22(SSH默认端口),输入用户名和密码即可连接。