CentOS系统vsftpd更新与升级步骤
备份关键数据
升级前务必备份vsftpd配置文件及用户数据,防止操作失误导致数据丢失。常用备份命令:
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak # 备份主配置文件
sudo cp -r /var/ftp /var/ftp.bak # 备份匿名用户数据目录(若有)
sudo cp -r /var/lib/vsftpd /var/lib/vsftpd.bak # 备份用户会话及上传文件数据
检查当前版本
通过以下命令确认当前vsftpd版本,便于后续验证升级结果:
vsftpd --version
输出示例:vsftpd: version 3.0.2。
更新系统软件包
确保系统基础软件包为最新状态,避免依赖冲突:
sudo yum update -y
YUM是CentOS默认的包管理工具,可自动解决依赖关系,操作简便。
升级vsftpd
执行以下命令升级vsftpd至仓库最新版本:
sudo yum update vsftpd -y
若需安装特定版本(如3.0.2),可使用:
sudo yum install vsftpd-3.0.2 -y
重启服务并验证
升级完成后,重启vsftpd服务使新版本生效:
sudo systemctl restart vsftpd
验证版本:
vsftpd --version # 确认输出版本已更新
sudo systemctl status vsftpd # 检查服务运行状态(应显示“active (running)”)
若YUM仓库中没有所需版本,可通过源码编译安装。
下载并解压源码包
访问vsftpd官方网站(vsftpd.beasts.org)下载最新稳定版,或使用wget命令:
wget https://vsftpd.beasts.org/releases/vsftpd-3.0.5.tar.gz # 替换为最新版本链接
tar -zxvf vsftpd-3.0.5.tar.gz
cd vsftpd-3.0.5
安装编译依赖
编译前需安装必要依赖包,避免编译失败:
sudo yum install openssl-devel pam-devel libcap-devel tcp_wrappers-devel -y
卸载旧版本
卸载系统自带的旧版本vsftpd(避免残留文件冲突):
sudo rpm -e $(rpm -qa | grep vsftpd)
编译并安装
执行以下命令编译安装:
./configure
make
sudo make install
恢复配置与服务
sudo cp -p /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf
/usr/local/sbin/vsftpd,需修改配置文件中的user_list_file路径(若有):sudo vi /etc/vsftpd/vsftpd.conf
# 添加或修改:user_list_file=/etc/vsftpd/user_list
sudo vi /etc/systemd/system/vsftpd.service
内容如下:[Unit]
Description=vsftpd FTP server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start vsftpd
sudo systemctl enable vsftpd # 设置开机自启
验证升级结果
检查vsftpd版本及服务状态:
/usr/local/sbin/vsftpd -v # 确认版本已更新
sudo systemctl status vsftpd # 检查服务是否运行正常
diff /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf),调整不兼容的参数。sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
sudo setsebool -P ftpd_full_access on
ftp localhost或FileZilla)测试登录、上传/下载功能,确保服务正常。