先明确你遇到的是哪一类问题
- 情况A:在CentOS本机双击 FileZilla 客户端无反应或启动即崩溃(桌面环境)。
- 情况B:在Windows 或其他主机用 FileZilla 客户端连接 CentOS 的 SFTP/FTP 失败(连不上/被拒绝)。
情况A 本机 FileZilla 客户端无法启动
- 常见现象与快速修复
- 报错含“/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15’ not found”:这是 libstdc++ 版本过低导致。处理思路:
- 查看现有符号版本:strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX(或 /usr/lib/libstdc++.so.6)。
- 升级 gcc(推荐):yum install -y gcc-c++,升级后库会同步更新。
- 临时方案(不推荐长期使用):拷贝更高版本的 libstdc++.so.6.0.x 到 /usr/lib64/,删除旧软链并重建:ln -sfn libstdc++.so.6.0.x libstdc++.so.6,再用 strings 验证是否出现所需版本。
- 若是 32 位程序在 64 位系统上运行,确认安装/使用了正确的 i386/x86_64 包与库路径。
- 双击无反应或提示找不到命令:确认安装包完整、可执行文件存在且有执行权限;建议通过包管理器安装(如 dnf/yum 的官方仓库或可信 RPM),避免路径/依赖混乱。
- 权限或 SELinux 限制:若从非标准目录运行,可能因权限或 SELinux 策略被拒。可临时 setenforce 0 验证,再改为正确的策略/权限修复。
以上“GLIBCXX 缺失”的典型症状与修复方法可参考实际案例记录。
情况B 客户端连不上 CentOS 的 SFTP/FTP
-
优先选择 SFTP(基于 SSH,通常更省事)
- 确认 SSH 服务已安装并运行:
- 检查:rpm -qa | grep openssh-server;若未安装:yum install -y openssh-server
- 启动并自启:systemctl enable --now sshd
- 验证端口:ss -lntp | grep :22
- 防火墙放行 22/TCP:firewall-cmd --zone=public --add-port=22/tcp --permanent && firewall-cmd --reload
- FileZilla 站点设置:协议选 SFTP,主机填 CentOS 的 IP,端口 22,登录类型选“正常”,输入系统用户名与密码。
- 若仍失败,检查网络连通(ping/路由)、云主机安全组/本机防火墙、以及 /etc/ssh/sshd_config 是否被改动(必要时重启 sshd)。
上述步骤覆盖了“未安装 SSH、端口未放行、配置不当”等常见原因及修复路径。
-
需要使用 FTP 时的要点
- 安装并启动 vsftpd:yum install -y vsftpd;systemctl enable --now vsftpd
- 放行 21/TCP(及被动端口范围,若启用被动模式):firewall-cmd --zone=public --add-port=21/tcp --permanent && firewall-cmd --reload
- 按需编辑 /etc/vsftpd/vsftpd.conf(如本地用户登录、被动模式参数),并重启 vsftpd。
- 注意:FTP 明文传输、被动端口范围与防火墙/NAT 配置容易踩坑,如无特殊需求,优先用 SFTP。
通用快速排查清单
- 服务侧:用 systemctl status 与 journalctl 先看“为什么失败/退出码”,再决定改配置、权限还是端口。
- 网络侧:确认目标 IP/端口可达(ss/ss -lntp、firewall-cmd --list-ports、云安全组)。
- 协议侧:SFTP 看 sshd 是否运行、端口 22 是否放行;FTP 看 vsftpd 与 21/TCP 及被动端口。
- 客户端侧:协议、端口、登录类型、用户名/密码/密钥是否正确;必要时更换网络或主机复测。
以上“先查状态与日志、再定位网络与配置”的顺序能最快缩小问题范围。