确保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默认端口),输入用户名和密码即可连接。