温馨提示×

怎么迁移Debian FTPServer

小樊
37
2026-07-23 10:33:28
栏目: 智能运维

下面给你一个从旧服务器迁移 Debian FTP 服务器到新服务器的完整思路,按最常用、最稳妥的方式来讲。你可以根据自己使用的 FTP 软件(vsftpd / pure-ftpd / proftpd)选择对应部分。


一、确认当前 FTP 服务类型

先确认你用的是哪种 FTP 服务:

dpkg -l | grep -E 'vsftpd|pure-ftpd|proftpd'

或:

systemctl status vsftpd pure-ftpd proftpd

常见组合:

  • vsftpd(最常见)
  • pure-ftpd
  • proftpd

下面以 vsftpd(最常见) 为主示例,其他会单独说明。


二、迁移前准备

1️⃣ 在新服务器上安装相同 FTP 服务

sudo apt update
sudo apt install vsftpd

⚠️ 建议版本尽量一致,避免配置不兼容


2️⃣ 停止 FTP 服务(旧服务器)

sudo systemctl stop vsftpd

三、迁移配置文件

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 用户数据(重点)

1️⃣ 迁移用户目录(最常见)

假设 FTP 根目录是:

/srv/ftp
/home/ftpuser

使用 rsync(推荐)

旧服务器

rsync -avz --delete /srv/ftp/ user@new_server:/srv/ftp/

或:

rsync -avz /home/ftpuser/ new_server:/home/ftpuser/

-a 保留权限、时间、属主
✅ 大目录强烈推荐 rsync


2️⃣ 迁移系统用户(如果使用本地用户)

迁移用户和组

导出用户:

grep ftpuser /etc/passwd
grep ftpuser /etc/group
grep ftpuser /etc/shadow

新服务器 对应文件末尾追加。

⚠️ 或 直接创建相同用户(推荐)

sudo useradd -m ftpuser
sudo passwd ftpuser

3️⃣ 迁移虚拟用户(如使用 pure-ftpd / vsftpd 虚拟用户)

vsftpd 虚拟用户常见文件

/etc/vsftpd/virtual_users.txt
/etc/pam.d/vsftpd

pure-ftpd 虚拟用户

/etc/pure-ftpd/passwd/
/etc/pure-ftpd/auth/

✅ 直接复制这些目录并确保权限一致。


五、迁移权限与 SELinux / 文件权限

1️⃣ 确保目录权限正确

sudo chown -R ftpuser:ftpuser /srv/ftp
sudo chmod 755 /srv/ftp

2️⃣ Debian 默认不启用 SELinux,但检查 AppArmor

sudo systemctl status apparmor

必要时:

sudo aa-disable /etc/apparmor.d/usr.sbin.vsftpd

六、迁移防火墙规则

iptables

iptables -L -n

ufw(常见)

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

八、迁移后检查清单 ✅

  • [ ] FTP 服务正常启动
  • [ ] 用户可登录
  • [ ] 文件可读写
  • [ ] 被动模式正常
  • [ ] 防火墙放行
  • [ ] 日志无报错

查看日志:

journalctl -u vsftpd
tail -f /var/log/vsftpd.log

九、常见 vsftpd 配置示例(参考)

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

十、如果你愿意,我可以更精确帮你

你可以直接告诉我:

  1. Debian 版本(cat /etc/os-release
  2. 使用的 FTP 软件
  3. 是否使用虚拟用户
  4. 是否仅内网使用

我可以给你一步一步完全定制命令,避免出错。

0