CentOS下 FileZilla 连接失败的常见原因与排查
一 常见原因概览
- 网络与服务未就绪:客户端与服务器网络不通;服务器对应服务未启动(SFTP 依赖 sshd,FTP 依赖 vsftpd)。
- 防火墙与安全组拦截:未放行 SFTP 22、FTP 21 或 FTP 的被动模式端口范围;云服务器未在控制台放行相应端口。
- 协议与端口配置错误:在站点管理器中协议/端口填写不一致(如 SFTP 写成 21、FTP 写成 22);FTP 未启用被动模式导致数据通道失败。
- 被动模式与 NAT 配置不当:FTP 被动端口范围未开放;服务器处于 NAT 后未在被动设置中填写公网 IP。
- 加密与证书问题:使用 FTPS 时服务器未启用 TLS/证书;客户端未开启“要求使用 FTP over TLS”。
- 权限与目录限制:系统用户对家目录或目标目录无读/写/列目录权限;FTP 被 chroot 限制不当。
- SELinux 限制:SELinux 策略阻止 FTP 访问(如读写家目录受限)。
- 日志缺失或查看位置不当:未能从 /var/log/secure(SSH)或 /var/log/vsftpd.log(FTP)获取有效错误信息。
二 快速排查步骤
- 核对网络连通性:在客户端执行 ping 服务器 IP;必要时测试端口连通(如 telnet 或 nc)。
- 确认服务状态:
- SFTP:systemctl status sshd(未运行则启动并设为开机自启)。
- FTP:systemctl status vsftpd(未运行则安装并启动)。
- 放行防火墙/安全组:
- SFTP:放行 22/tcp。
- FTP:放行 21/tcp 与已配置的被动端口范围(如 10060–10070/tcp 或 60000–60020/tcp);云服务器需在控制台安全组同步放行。
- 校正 FileZilla 站点配置:
- SFTP:协议选 SFTP - SSH File Transfer Protocol,端口 22,填写正确用户名/密码或私钥。
- FTP:协议选 FTP - File Transfer Protocol,端口 21;加密选“要求使用 FTP over TLS”(若服务器支持);传输模式选“被动模式”。
- 配置 FTP 被动模式:
- 服务端(vsftpd):设置 pasv_enable=YES,pasv_min_port/pasv_max_port(如 60000–60020),NAT 环境设置 pasv_address=公网IP;重启 vsftpd。
- 检查权限与用户:确保登录用户对目标目录具备相应权限;FTP 若启用 chroot,注意 allow_writeable_chroot 等设置。
- 查看日志定位:
- SSH/SFTP:tail -f /var/log/secure(关注 sshd 日志)。
- FTP:tail -f /var/log/vsftpd.log(若启用)。
- 排除 SELinux:临时 setenforce 0 验证;必要时调整 SELinux 布尔值(如 setsebool -P ftpd_full_access on)。
- 客户端版本与兼容性:升级到最新 FileZilla 以避免 TLS/加密兼容问题。
三 典型报错与对应处理
| 现象 |
可能原因 |
处理要点 |
| 连接被拒绝/超时 |
服务未启动;端口不对;防火墙/安全组未放行 |
启动 sshd/vsftpd;核对协议与端口;放行 22/21 及被动端口范围;云服务器放行安全组 |
| 能登录但“列目录失败” |
FTP 被动模式未配或端口未放行;NAT 未设公网 IP |
服务端配置 pasv_min/max_port 并放行;vsftpd.conf 设置 pasv_address;客户端启用被动模式 |
| “FTP over TLS is not enabled” |
服务器未启用 TLS/证书;客户端未勾选加密 |
服务端启用 TLS/证书;客户端选择“要求使用 FTP over TLS” |
| “Permission denied” |
用户无目录权限;chroot 限制不当 |
校正用户对目录的 rwx 权限;按需调整 vsftpd 的 chroot 与 allow_writeable_chroot |
| “Host key unknown” |
首次连接未知主机密钥 |
确认指纹后勾选“始终信任并保存密钥” |
| 中文乱码 |
字符集不一致 |
站点管理器字符集设为 GBK(或服务器实际编码) |
四 安全与配置建议
- 优先使用 SFTP(端口 22)或显式 FTPS(端口 21),避免使用明文 FTP。
- 为 FTP 明确被动端口范围(如 10000–10200 或 60000–60020),并在防火墙/安全组放行;NAT 环境务必设置 pasv_address=公网IP。
- 限制并发连接数、开启日志、按需限速与 IP 过滤;避免使用 root 直连,创建最小权限的系统用户用于传输。