温馨提示×

ubuntu ftpserver怎么迁移

小樊
45
2026-07-07 08:53:16
栏目: 智能运维

在 Ubuntu 上迁移 FTP 服务器,通常分为 同机迁移跨服务器迁移 两种场景。下面我按最常见、最稳妥的方式给你一个完整流程,适用于 vsftpd(Ubuntu 上最常用的 FTP 服务)。


一、迁移前准备

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

dpkg -l | grep ftp

常见:

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

下面以 vsftpd 为例。


2️⃣ 记录当前配置

cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

查看关键配置:

grep -E "local_root|chroot|anonymous|listen|ssl" /etc/vsftpd.conf

二、迁移 FTP 数据(最重要)

1️⃣ 停止 FTP 服务(源服务器)

sudo systemctl stop vsftpd

2️⃣ 打包 FTP 数据目录

假设 FTP 数据目录是 /home/ftpdata/srv/ftp

sudo tar czvf ftpdata.tar.gz /home/ftpdata

3️⃣ 传输到新服务器

scp ftpdata.tar.gz user@new_server_ip:/tmp/

4️⃣ 在新服务器解压

sudo tar xzvf /tmp/ftpdata.tar.gz -C /

⚠️ 注意目录结构要一致,否则权限容易出问题。


三、迁移 FTP 用户和权限

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

# 源服务器
sudo cat /etc/passwd | grep ftp
sudo cat /etc/shadow | grep ftp
sudo cat /etc/group | grep ftp

推荐方式(更安全)
直接在新服务器重新创建用户,避免 UID 冲突:

sudo useradd -m -s /usr/sbin/nologin ftpuser
sudo passwd ftpuser

2️⃣ 修复目录权限

sudo chown -R ftpuser:ftpuser /home/ftpdata
sudo chmod 755 /home/ftpdata

四、迁移 vsftpd 配置

1️⃣ 在新服务器安装 vsftpd

sudo apt update
sudo apt install vsftpd

2️⃣ 复制配置文件

sudo cp /etc/vsftpd.conf.bak /etc/vsftpd.conf

或手动同步关键配置:

listen=YES
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_root=/home/ftpdata

五、如果启用了 SSL(FTPS)

1️⃣ 迁移证书

scp /etc/ssl/private/vsftpd.pem new_server:/etc/ssl/private/

2️⃣ 配置中确认

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES

六、启动并验证

1️⃣ 启动服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

2️⃣ 检查端口

ss -antp | grep 21

3️⃣ 测试连接

ftp new_server_ip

或使用 FileZilla 测试 FTP / FTPS


七、常见问题排查

❌ 530 Login incorrect

  • 用户不存在
  • /etc/shells 缺少 nologin
  • PAM 限制
echo "/usr/sbin/nologin" | sudo tee -a /etc/shells

❌ 500 OOPS: chroot

allow_writeable_chroot=YES

八、迁移检查清单 ✅

项目 是否完成
数据目录迁移
用户/权限
vsftpd.conf
SSL 证书
服务启动
客户端测试

九、如果你愿意,我可以帮你:

  • ✅ 根据你 当前 vsftpd.conf 给出精确迁移方案
  • ✅ 写成 自动化迁移脚本
  • ✅ 换成 SFTP(更推荐)

你可以直接贴出:

cat /etc/vsftpd.conf

0