温馨提示×

ubuntu ftpserver怎么迁居

小樊
35
2026-09-20 19:59:25
栏目: 智能运维

你说的“迁居”一般就是指 把 Ubuntu 上的 FTP 服务器迁移到另一台机器(或另一块磁盘/目录)。下面按最常见场景给你一个完整思路,假设你是用的 vsftpd(Ubuntu 最常见的 FTP 服务)。


一、确认当前 FTP 服务情况

1. 查看 FTP 服务类型

systemctl status vsftpd
# 或
ps aux | grep ftp

常见 FTP 服务:

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

下面以 vsftpd 为例。


二、迁移前准备(老服务器)

1. 停止 FTP 服务

sudo systemctl stop vsftpd

2. 备份配置文件

sudo cp -r /etc/vsftpd /etc/vsftpd.bak
# 或
sudo tar czf vsftpd-conf.tar.gz /etc/vsftpd.conf

3. 备份用户数据(重点)

FTP 用户数据通常在这几个地方:

  • /home/ftpuser
  • /srv/ftp
  • 自定义目录(看 local_root

打包:

sudo tar czf ftpdata.tar.gz /home/ftpuser

4. 备份系统用户(如果用系统用户登录 FTP)

sudo getent passwd | grep ftp
sudo getent shadow | grep ftp

或用:

sudo tar czf ftpusers.tar.gz /etc/passwd /etc/shadow /etc/group

三、传输到新服务器

scp vsftpd-conf.tar.gz ftpdata.tar.gz user@newserver:/tmp

四、新服务器部署(新 Ubuntu)

1. 安装 vsftpd

sudo apt update
sudo apt install vsftpd

2. 恢复配置

sudo cp /tmp/vsftpd.conf /etc/vsftpd.conf
# 或解压备份

3. 恢复数据

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

4. 恢复用户(如有)

sudo useradd ftpuser
sudo passwd ftpuser
# 或直接恢复 passwd/shadow(不推荐新手)

5. 设置权限

sudo chown -R ftpuser:ftpuser /home/ftpuser

五、启动并测试

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

测试:

ftp localhost
# 或
ftp newserver_ip

六、常见问题

1. 登录失败

  • 检查 /etc/vsftpd.conf
  • local_enable=YES
  • write_enable=YES

2. passive 模式连不上

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

并开放防火墙:

sudo ufw allow 30000:31000/tcp

3. SELinux(Ubuntu 一般没有)


七、如果是“换磁盘 / 换目录”

不是换机器,只是迁数据:

sudo systemctl stop vsftpd
sudo mv /home/ftpuser /data/ftpuser
# 修改 vsftpd.conf
local_root=/data/ftpuser
sudo systemctl start vsftpd

如果你能告诉我:

  • 用的什么 FTP 软件
  • 换机器 / 换目录 / 换系统
  • 是否有虚拟用户

我可以直接给你精准命令版迁移方案

0