在 Ubuntu 上迁移 vsftpd(FTP 服务)通常指把 配置、用户、数据、权限 从一台服务器迁移到另一台,或重装系统后恢复。下面按最常见场景给你一套完整做法。
sudo systemctl stop vsftpd
vsftpd 主要配置:
/etc/vsftpd.conf
/etc/vsftpd/
备份:
sudo tar czf vsftpd-conf.tar.gz /etc/vsftpd.conf /etc/vsftpd
# 用户信息
sudo getent passwd | grep ftp > users.txt
sudo getent shadow | grep ftp >> users.txt
# 或者直接备份相关用户
sudo cp /etc/passwd /etc/shadow /etc/group ./user-backup/
常见文件:
/etc/vsftpd/virtual_users.txt
/etc/vsftpd/virtual_users.db
/etc/pam.d/vsftpd
sudo tar czf vsftpd-virtual.tar.gz /etc/vsftpd
例如:
/var/ftp
/home/ftpuser
/srv/ftp
sudo tar czf ftpdata.tar.gz /var/ftp
sudo netstat -tulnp | grep ftp
sudo ufw status
sudo apt update
sudo apt install vsftpd
sudo tar xzf vsftpd-conf.tar.gz -C /
sudo tar xzf vsftpd-virtual.tar.gz -C /
sudo systemctl restart vsftpd
手动建用户并同步 UID:
sudo useradd -u 1001 -d /home/ftpuser ftpuser
或恢复:
/etc/passwd
/etc/shadow
/etc/group
sudo tar xzf ftpdata.tar.gz -C /
sudo chown -R ftpuser:ftpuser /var/ftp
sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
# 被动端口(如配置中有)
sudo ufw allow 30000:31000/tcp
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
测试:
ftp localhost
或:
lftp ftp://user@ip
/etc/pam.d/vsftpdwrite_enable=YES
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
✅ 配置 + 数据分离备份
✅ 用 rsync 同步数据
rsync -avz /var/ftp/ user@new:/var/ftp/
如果你能告诉我:
我可以给你更精确的迁移命令。