/var/ftp、/srv/ftp或用户主目录下的ftp文件夹);/etc/vsftpd.conf)及关键参数(如local_enable=YES、write_enable=YES、chroot_local_user=YES等);cat /etc/passwd | grep ftp查看),确保迁移后用户权限一致;使用tar命令打包原vsftpd配置文件,避免遗漏:
sudo tar -czvf vsftpd_config_backup.tar.gz /etc/vsftpd.conf /etc/vsftpd/
同样使用tar命令打包数据目录(以/var/ftp为例):
sudo tar -czvf ftpdata_backup.tar.gz /var/ftp/
解压备份文件到临时目录,检查文件数量及大小是否与原目录一致:
mkdir /tmp/ftp_backup_check
tar -xzvf vsftpd_config_backup.tar.gz -C /tmp/ftp_backup_check
tar -xzvf ftpdata_backup.tar.gz -C /tmp/ftp_backup_check
ls -lh /tmp/ftp_backup_check/etc/vsftpd.conf # 检查配置文件
ls -lh /tmp/ftp_backup_check/var/ftp/ # 检查数据目录
在新服务器上更新软件包列表并安装vsftpd:
sudo apt update && sudo apt install vsftpd -y # Debian/Ubuntu系统
sudo yum install vsftpd -y # CentOS/RHEL系统
复制备份的配置文件到新服务器的/etc/vsftpd/目录:
sudo cp /tmp/ftp_backup_check/etc/vsftpd.conf /etc/vsftpd/
编辑配置文件,根据新服务器环境调整关键参数:
sudo nano /etc/vsftpd.conf
/var/ftp,但新服务器需使用/home/ftpdata,需修改local_root参数:local_root=/home/ftpdata
chroot_local_user=YES(限制用户在其主目录)和allow_writeable_chroot=YES(允许chroot目录可写)设置;pasv_enable=YES
pasv_min_port=60000
pasv_max_port=61000
保存并退出编辑器。
使用scp或rsync将备份文件传输到新服务器(以scp为例):
scp vsftpd_config_backup.tar.gz ftpdata_backup.tar.gz user@new_server_ip:/tmp/
登录新服务器,解压备份文件到目标目录:
sudo tar -xzvf /tmp/vsftpd_config_backup.tar.gz -C /
sudo tar -xzvf /tmp/ftpdata_backup.tar.gz -C /
确保vsftpd运行用户(通常为ftp或nobody)对新数据目录有读写权限:
sudo chown -R ftp:ftp /home/ftpdata/ # 若数据目录为/home/ftpdata
sudo chmod -R 755 /home/ftpdata/
使用vsftpd自带的命令检查配置文件是否有错误:
sudo vsftpd -t
若输出无错误(如config file is clean),则继续下一步;若有错误,根据提示修改/etc/vsftpd.conf。
启动vsftpd并设置开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
确认vsftpd服务运行正常:
sudo systemctl status vsftpd
若状态显示为active (running),则表示服务已启动。
使用FileZilla、WinSCP或命令行FTP客户端连接新服务器:
ftp new_server_ip
输入原FTP用户名和密码,尝试上传(put local_file)和下载(get remote_file)文件。local_root指定的目录(如/home/ftpdata);write_enable=YES是否生效。若原服务器使用被动模式,需在客户端设置中开启被动模式(PASV),并验证文件传输是否正常。
若原FTP服务器使用域名访问,需将域名解析到新服务器的IP地址(修改DNS解析配置,等待TTL过期)。
确认新服务器运行正常后,删除临时备份文件以释放空间:
rm -rf /tmp/vsftpd_config_backup.tar.gz /tmp/ftpdata_backup.tar.gz
rm -rf /tmp/ftp_backup_check/
使用top、htop或vsftpd日志(/var/log/vsftpd.log)监控服务器负载及文件传输情况,确保稳定运行。
setsebool -P ftpd_full_access on);ufw或iptables)开放FTP端口(21)及被动模式端口范围;/var/log/vsftpd.log查看详细错误信息。