下面给你一个从旧服务器迁移 Debian FTP 服务器到新服务器的完整思路,按最常用、最稳妥的方式来讲。你可以根据自己使用的 FTP 软件(vsftpd / pure-ftpd / proftpd)选择对应部分。
先确认你用的是哪种 FTP 服务:
dpkg -l | grep -E 'vsftpd|pure-ftpd|proftpd'
或:
systemctl status vsftpd pure-ftpd proftpd
常见组合:
下面以 vsftpd(最常见) 为主示例,其他会单独说明。
sudo apt update
sudo apt install vsftpd
⚠️ 建议版本尽量一致,避免配置不兼容
sudo systemctl stop vsftpd
/etc/vsftpd.conf
在 旧服务器:
scp /etc/vsftpd.conf user@new_server:/tmp/vsftpd.conf
在 新服务器:
sudo cp /tmp/vsftpd.conf /etc/vsftpd.conf
如果旧服务器有额外配置:
/etc/vsftpd/
/etc/pam.d/vsftpd
也可以一并迁移。
假设 FTP 根目录是:
/srv/ftp
/home/ftpuser
在 旧服务器:
rsync -avz --delete /srv/ftp/ user@new_server:/srv/ftp/
或:
rsync -avz /home/ftpuser/ new_server:/home/ftpuser/
✅
-a保留权限、时间、属主
✅ 大目录强烈推荐 rsync
导出用户:
grep ftpuser /etc/passwd
grep ftpuser /etc/group
grep ftpuser /etc/shadow
在 新服务器 对应文件末尾追加。
⚠️ 或 直接创建相同用户(推荐)
sudo useradd -m ftpuser
sudo passwd ftpuser
/etc/vsftpd/virtual_users.txt
/etc/pam.d/vsftpd
/etc/pure-ftpd/passwd/
/etc/pure-ftpd/auth/
✅ 直接复制这些目录并确保权限一致。
sudo chown -R ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp
sudo systemctl status apparmor
必要时:
sudo aa-disable /etc/apparmor.d/usr.sbin.vsftpd
iptables -L -n
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp # 被动模式端口
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
ftp new_server_ip
或:
ftp -p new_server_ip
查看日志:
journalctl -u vsftpd
tail -f /var/log/vsftpd.log
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
你可以直接告诉我:
cat /etc/os-release)我可以给你一步一步完全定制命令,避免出错。