CentOS 上 FileZilla 连接失败的排查与解决
一、先选对协议与快速验证
- 优先使用 SFTP(端口 22):在 FileZilla 站点管理器选择 SFTP - SSH File Transfer Protocol,主机填 CentOS 的 IP,端口 22,协议选 SFTP。SFTP 基于 SSH,通常更稳定、更安全,且无需额外 FTP 服务。若 SFTP 能连上,问题多半出在 FTP 侧配置或防火墙。若 SFTP 不通,再按下方步骤排查网络与 SSH。
二、SFTP 连不上的排查步骤
- 网络与地址
- 在 CentOS 执行 ip addr 确认网卡(如 ens33)已获取 IP,并确保与客户端网络互通(同网段或可路由)。虚拟机场景注意桥接/NAT 设置是否正确。
- SSH 服务
- 检查并启动 SSH:sudo systemctl status sshd(或 ssh);未运行则 sudo systemctl start sshd;必要时设为开机自启:sudo systemctl enable sshd。
- 防火墙放行
- firewalld:sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload。
- 或放行端口:sudo firewall-cmd --permanent --add-port=22/tcp && sudo firewall-cmd --reload。
- 虚拟机网络
- 如使用 VMware,可在“虚拟网络编辑器”尝试 还原默认设置,并将 VMnet0 设为桥接 到主机网卡,再重启网络或系统测试。
- 认证与日志
- 确保使用正确的 用户名/密码;若仍失败,查看认证日志定位:/var/log/secure(RHEL/CentOS)或 /var/log/auth.log(Debian/Ubuntu)。必要时在 /etc/ssh/sshd_config 将 PasswordAuthentication yes 后重启 SSH 服务。
三、必须用 FTP 时的排查步骤
- 安装并启动 vsftpd
- 安装:sudo yum -y install vsftpd;启动:sudo systemctl start vsftpd;开机自启:sudo systemctl enable vsftpd;状态:sudo systemctl status vsftpd。
- 端口监听
- 确认 21 端口监听:sudo netstat -anp | grep ‘:21\b’。若未监听,检查 vsftpd 是否运行及配置。
- 防火墙放行
- firewalld:sudo firewall-cmd --permanent --add-service=ftp && sudo firewall-cmd --reload。
- 或放行端口:sudo firewall-cmd --permanent --add-port=21/tcp && sudo firewall-cmd --reload。
- 登录被拒 530 的常见处理
- 检查是否被禁止登录:在 /etc/vsftpd/ftpusers 与 /etc/vsftpd/user_list 中移除对应用户名(如 root)的禁用条目。
- 若仍 530,检查 PAM 限制:编辑 /etc/pam.d/vsftpd,将 auth required pam_shells.so 注释或替换为 auth required pam_nologin.so,然后 sudo systemctl restart vsftpd。此问题常见于使用 /sbin/nologin 等 shell 的 FTP 用户。
四、FileZilla 站点配置要点
- 协议选择:FTP 选 FTP - File Transfer Protocol;SFTP 选 SFTP - SSH File Transfer Protocol。
- 主机与端口:主机填 CentOS IP;SFTP 端口 22;FTP 端口 21。
- 登录类型:选择 正常,填入 用户名/密码(或密钥,若 SFTP 配置了密钥登录)。
- 加密与被动模式(FTP):若服务器不支持加密,可在站点管理器的“加密”中选择 只使用明文 FTP(不安全);FTP 在 NAT/云环境下建议开启 被动模式(PASV) 并配置合适端口范围与防火墙放行。
五、常见报错对照与处理
- Network error: Connection timed out:多为网络不通或 SSH/FTP 服务未启动、防火墙阻断、虚拟机网络模式不当。依次检查 IP 可达性、服务状态、放行规则与 VMware 网络设置。
- Connection refused:端口未监听或服务未运行。确认 sshd 或 vsftpd 已启动并监听 22/21,以及防火墙放行。
- 530 Login incorrect:账号/密码错误或配置限制。核对凭据,检查 /etc/vsftpd/ftpusers、/etc/vsftpd/user_list,以及 /etc/pam.d/vsftpd 的 pam_shells.so 限制。
- 不安全的服务器,不支持 FTP over TLS:客户端期望加密而服务器未启用 TLS。可切换为 SFTP,或在 FTP 服务器启用 TLS/SSL 并在客户端选择相应加密方式。