温馨提示×

如何迁移ubuntu ftpserver

小樊
45
2026-08-17 15:51:18
栏目: 智能运维

迁移 Ubuntu 上的 FTP 服务器(通常指 vsftpd,也可能是 ProFTPDPure-FTPd),一般包含 配置、用户、数据、权限 四部分的迁移。下面以 vsftpd 为例,给你一套完整、可操作的迁移流程


一、迁移前准备

1️⃣ 确认当前 FTP 服务类型

dpkg -l | grep ftp

常见:

  • vsftpd
  • proftpd
  • pure-ftpd

本文以 vsftpd 为主。


二、在源服务器上操作(旧服务器)

1️⃣ 备份 FTP 配置

cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
tar czvf vsftpd-config.tar.gz /etc/vsftpd.conf

2️⃣ 备份用户和系统相关配置

FTP 用户通常为 系统用户,需迁移:

# 用户和组
tar czvf ftp-users.tar.gz /etc/passwd /etc/shadow /etc/group

⚠️ 注意

  • 如用户较多,建议只迁移 FTP 相关用户
  • 或在新服务器手动重建用户

3️⃣ 备份 FTP 数据目录

假设 FTP 根目录为 /srv/ftp/home/ftp

tar czvf ftp-data.tar.gz /srv/ftp

或:

rsync -avz /srv/ftp/ root@new_server:/srv/ftp/

三、在新服务器上操作(目标服务器)

1️⃣ 安装 vsftpd

sudo apt update
sudo apt install vsftpd -y

2️⃣ 恢复配置文件

tar xzvf vsftpd-config.tar.gz -C /

或手动复制:

cp vsftpd.conf /etc/vsftpd.conf

3️⃣ 恢复用户(谨慎操作)

⚠️ 不建议直接覆盖 /etc/passwd,推荐方式:

方式一(推荐):只迁移 FTP 用户

# 在新服务器创建相同用户
useradd -m ftpuser
passwd ftpuser

方式二:同步 UID/GID 避免权限问题:

useradd -u 1001 -g 1001 ftpuser

4️⃣ 恢复 FTP 数据

tar xzvf ftp-data.tar.gz -C /

或:

rsync -avz /srv/ftp/ root@new_server:/srv/ftp/

设置权限:

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

四、调整 vsftpd 配置(重点)

编辑:

vim /etc/vsftpd.conf

常见关键项:

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=30000
pasv_max_port=31000

防火墙放行:

ufw allow 20/tcp
ufw allow 21/tcp
ufw allow 30000:31000/tcp

五、重启并测试

systemctl restart vsftpd
systemctl enable vsftpd

测试连接:

ftp new_server_ip

或使用 FileZilla / lftp。


六、常见问题排查

问题 解决
530 Login incorrect PAM 问题,检查 /etc/pam.d/vsftpd
无法写入 权限 / write_enable=YES
被动模式失败 防火墙 / pasv 端口
chroot 报错 allow_writeable_chroot=YES

七、如果你用的是其他 FTP 服务

服务 配置路径
ProFTPD /etc/proftpd/
Pure-FTPd /etc/pure-ftpd/

我可以 按你实际使用的 FTP 服务 给你定制迁移方案。


八、我可以继续帮你

你可以直接告诉我:

  1. FTP 服务类型(vsftpd / proftpd / pure-ftpd)
  2. 是否使用虚拟用户
  3. 是否跨公网 / 云服务器
  4. 是否使用 SSL/TLS(FTPS)

我可以给你 精确到命令级别的迁移方案

0