在 Ubuntu 上迁移 vsftpd(vsftp)站点,通常是指把 FTP 服务、用户、配置和文件数据 从一台服务器迁移到另一台,或在同机重建。下面按常见场景给你一套可操作流程。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo tar czf vsftpd-conf.tar.gz /etc/vsftpd.conf /etc/vsftpd*
vsftpd 一般使用系统用户或虚拟用户:
# 用户列表
sudo cp /etc/passwd /etc/passwd.bak
sudo cp /etc/shadow /etc/shadow.bak
sudo cp /etc/group /etc/group.bak
常见文件:
/etc/pam.d/vsftpd
/etc/vsftpd/virtual_users.txt
/etc/vsftpd/virtual_users.db
备份:
sudo tar czf vsftpd-virtual.tar.gz /etc/vsftpd /etc/pam.d/vsftpd
假设 FTP 根目录是 /srv/ftp 或 /home/ftpuser:
sudo tar czf ftpdata.tar.gz /srv/ftp
sudo apt update
sudo apt install vsftpd
把老服务器的备份传到新服务器:
scp vsftpd-conf.tar.gz user@new-server:/tmp
新服务器恢复:
sudo tar xzf /tmp/vsftpd-conf.tar.gz -C /
检查配置:
sudo nano /etc/vsftpd.conf
常见注意点:
local_rootchroot_local_user=YESanonymous_enablelisten=YES / listen_ipv6在新服务器创建用户:
sudo useradd -m ftpuser
sudo passwd ftpuser
或直接恢复:
sudo useradd -m ftpuser
⚠️ 注意:直接复制 /etc/shadow 有风险,建议只同步用户名,密码重新设置。
sudo tar xzf /tmp/vsftpd-virtual.tar.gz -C /
sudo apt install db-util
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
重启服务:
sudo systemctl restart vsftpd
scp ftpdata.tar.gz user@new-server:/tmp
sudo tar xzf /tmp/ftpdata.tar.gz -C /
sudo chown -R ftpuser:ftpuser /srv/ftp
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
# 被动模式端口
sudo ufw allow 30000:31000/tcp
vsftpd 配置示例:
pasv_min_port=30000
pasv_max_port=31000
sudo systemctl restart vsftpd
sudo systemctl status vsftpd
测试连接:
ftp localhost
或用 FileZilla 测试被动模式。
❌ 登录 530
→ PAM / 虚拟用户配置错误
❌ 无法列出目录
→ 被动端口未开放
❌ 写不了文件
→ 目录权限或 write_enable=YES
如果你愿意,可以告诉我:
我可以给你精准配置示例。