在 Ubuntu 上迁移 FTP 服务器,通常分为同一台机器重建配置和不同服务器之间迁移两种情况。下面以最常见的 vsftpd(Ubuntu 默认常用 FTP 服务)为例说明,如果是 ProFTPD / Pure-FTPd 也可以类比。
dpkg -l | grep ftp
常见:
vsftpdproftpdpure-ftpdsudo cp -r /etc/vsftpd /etc/vsftpd.bak
sudo tar czf vsftpd-conf.tar.gz /etc/vsftpd.conf /etc/vsftpd/
sudo cp /etc/passwd /etc/passwd.bak
sudo cp /etc/shadow /etc/shadow.bak
sudo cp /etc/group /etc/group.bak
sudo cp -r /etc/vsftpd /etc/vsftpd.bak
sudo tar czf vsftpd-virtual.tar.gz /etc/vsftpd
sudo tar czf ftpdata.tar.gz /srv/ftp
# 或
sudo rsync -avz /home/ftpuser/ target_server:/home/ftpuser/
sudo apt update
sudo apt install vsftpd
sudo tar xzf vsftpd-conf.tar.gz -C /
sudo systemctl restart vsftpd
sudo cp /etc/passwd.bak /etc/passwd
sudo cp /etc/shadow.bak /etc/shadow
sudo cp /etc/group.bak /etc/group
⚠️ 建议只提取 FTP 用户条目,避免覆盖系统用户
sudo tar xzf vsftpd-virtual.tar.gz -C /
sudo systemctl restart vsftpd
sudo tar xzf ftpdata.tar.gz -C /
sudo chown -R ftpuser:ftpuser /srv/ftp
如果两台服务器都能联网:
rsync -avz --delete /srv/ftp/ user@newserver:/srv/ftp/
rsync -avz /etc/vsftpd/ user@newserver:/etc/vsftpd/
sudo systemctl status vsftpd
sudo netstat -tulnp | grep 21
ftp localhost
检查:
/etc/ssl/private/vsftpd.pem
如果你能告诉我:
我可以给你一份精确迁移命令清单。