适用于 CentOS 的 FTP 服务器更新指南
一 准备与版本确认
- 备份关键数据与配置,尤其是 /etc/vsftpd/vsftpd.conf,建议先执行:sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak。
- 确认当前 FTP 服务与版本,常见为 vsftpd:执行 vsftpd --version 查看。
- 确认系统版本与包管理器:CentOS 7 常用 yum,CentOS 8/Stream 及更新可用 dnf(兼容 yum)。
- 如默认仓库版本偏旧,可启用 EPEL:sudo yum install epel-release -y。
二 使用包管理器更新(推荐)
- 更新系统软件包索引与已安装包:
- CentOS 7:sudo yum update -y
- CentOS 8/Stream:sudo dnf update -y
- 仅更新 FTP 服务(以 vsftpd 为例):
- sudo yum update vsftpd -y 或 sudo dnf update vsftpd -y
- 若系统未安装 vsftpd,可安装:sudo yum install vsftpd -y 或 sudo dnf install vsftpd -y
- 重启服务使更新生效:sudo systemctl restart vsftpd
- 设置开机自启(如尚未启用):sudo systemctl enable vsftpd
- 验证状态与版本:
- 运行状态:sudo systemctl status vsftpd
- 版本核对:vsftpd --version
- 已更新包列表:yum list updated 或 dnf list updated
三 防火墙与 SELinux 检查
- 防火墙放行 FTP:
- 推荐按服务放行:sudo firewall-cmd --permanent --add-service=ftp && sudo firewall-cmd --reload
- 或按端口放行(默认控制端口 21/tcp):sudo firewall-cmd --permanent --add-port=21/tcp && sudo firewall-cmd --reload
- SELinux:
- 排查是否被策略阻止,必要时可临时设为宽容模式测试:sudo setenforce 0(仅测试,勿长期关闭)
- 生产环境建议保留 SELinux 并配置相应策略以允许 FTP 访问。
四 验证与回滚
- 连接性验证:使用 FTP 客户端连接服务器,测试 登录、上传、下载 是否正常。
- 日志核查:实时查看日志以确认无异常:sudo tail -f /var/log/vsftpd.log
- 快速回滚:若更新后异常,可先恢复配置 sudo cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf,再重启服务 sudo systemctl restart vsftpd;必要时用包管理器降级到旧版本。
五 源码编译升级(仅在仓库版本过旧或需特定版本时)
- 安装编译依赖:sudo yum groupinstall “Development Tools” -y && sudo yum install pcre-devel openssl-devel -y
- 下载并解压源码(示例版本,请替换为最新稳定版):
- wget https://vsftpd.beasts.org/pub/vsftpd/releases/v3.0.3/vsftpd-3.0.3.tar.gz
- tar -zxvf vsftpd-3.0.3.tar.gz && cd vsftpd-3.0.3
- 编译安装:
- ./configure --prefix=/usr/local/vsftpd
- make && sudo make install
- 备份旧二进制并切换:
- sudo mv /usr/sbin/vsftpd /usr/sbin/vsftpd.old
- sudo ln -s /usr/local/vsftpd/sbin/vsftpd /usr/sbin/vsftpd
- 重启服务并验证:sudo systemctl restart vsftpd && vsftpd --version
- 风险提示:源码升级更灵活但维护成本高,建议优先使用仓库包;操作前务必完整备份配置与数据。