Debian FTPServer 迁移到新服务器的实操指南
一 迁移总览与准备
- 明确范围:迁移对象包括配置文件、数据目录、用户与权限、以及可选的TLS/SSL证书与日志。
- 选择方案:优先使用rsync 增量同步(断点续传、效率高);若跨公网或无法直连 SSH,可先打包为tar.gz再传输,或临时用lftp/ftp上传。
- 保持一致:尽量保持用户 UID/GID、目录属主/权限、FTP 根目录路径一致,避免权限错乱。
- 窗口与回退:选择低峰时段操作,保留旧服务器只读或停机窗口,准备回滚方案。
- 工具预装:新服务器先安装所需服务与工具(如 vsftpd/proftpd、rsync、lftp)。
二 备份与迁移步骤
- 步骤1 备份配置与数据
- 备份 vsftpd 配置与数据(路径以实际为准):
sudo tar -czvf vsftpd_conf_backup.tar.gz /etc/vsftpd/
sudo tar -czvf vsftpd_data_backup.tar.gz /var/lib/vsftpd/
- 如使用 ProFTPD:
sudo tar -czvf proftpd_data_backup.tar.gz /var/spool/proftpd
- 如有日志需留存:
sudo tar -czvf vsftpd_logs_backup.tar.gz /var/log/vsftpd/
- 步骤2 迁移到新服务器
- 推荐 rsync 直连(保持权限与时间戳):
rsync -avz --delete -e ssh /var/lib/vsftpd/ user@new_ip:/var/lib/vsftpd/
rsync -avz --delete -e ssh /etc/vsftpd/ user@new_ip:/etc/vsftpd/
- 无法直连 SSH 时,先打包再传:
tar -czvf ftp_backup.tar.gz /var/lib/vsftpd /etc/vsftpd
scp ftp_backup.tar.gz user@new_ip:/tmp/
在目标机解压:tar -xzvf /tmp/ftp_backup.tar.gz -C /
- 如需通过 FTP/FTPS 上传(示例用 lftp,支持 FTP/FTPS):
lftp -c “open -u ftp_user,ftp_pass ftps://new_ftp_host; mirror -R /local/ftp/ /remote/ftp/”
- 步骤3 同步系统账号与权限(避免 UID/GID 不一致)
- 同步关键账户文件:
sudo rsync -avz /etc/passwd /etc/shadow /etc/group /etc/gshadow user@new_ip:/etc/
- 仅新增不覆盖目标已有账户时,可先比对差异再合并。
- 步骤4 安装并恢复服务
- 新机安装服务:sudo apt-get update && sudo apt-get install vsftpd(或 proftpd)。
- 恢复配置后启动:sudo systemctl enable --now vsftpd(或 proftpd)。
- 步骤5 防火墙与端口
- 放行控制端口(主动/显式 FTPS 常用 21/TCP):
sudo ufw allow 21/tcp
- 若使用被动模式,还需放行被动端口段(在 vsftpd.conf 中配置 pasv_min_port/pasv_max_port,并在防火墙放行对应范围)。
三 不同 FTP 服务的目录与要点
| 项目 |
vsftpd |
ProFTPD |
| 配置文件 |
/etc/vsftpd/ |
常见为 /etc/proftpd/(以实际为准) |
| 数据目录 |
常见 /var/lib/vsftpd/ |
常见 /var/spool/proftpd/ |
| 日志目录 |
常见 /var/log/vsftpd/ |
常见 /var/log/proftpd/ |
| 迁移关键 |
保持 UID/GID 与目录权限一致 |
同上,注意 虚拟用户/SQL 认证配置迁移 |
| 说明:不同发行版或安装方式路径可能不同,请以本机实际路径为准。 |
|
|
四 验证与切换上线
- 连通与加密:用 FileZilla/命令行测试 AUTH TLS/FTPS 是否正常,确认证书有效且链完整。
- 权限与功能:验证上传/下载/删除/重命名、配额/速率限制、被动端口范围、以及日志写入是否正常。
- 用户映射:抽查若干账号的家目录、属主与权限是否正确。
- 切换策略:建议先并行运行新旧服务,完成回归测试后再切换 DNS/CNAME 或客户端配置到新服务器;保留旧机只读或短期回滚窗口以便应急。
五 常见问题与排错
- 权限错乱:多由 UID/GID 不一致导致,按第二部分同步 /etc/passwd、/etc/group 等文件,再校正目录属主。
- 被动模式失败:检查 pasv_address/pasv_min_port/pasv_max_port 配置与云安全组/防火墙放行是否一致。
- 配置不生效:确认新机服务已重启(如 systemctl restart vsftpd),并核对配置文件路径与语法。
- 传输中断:优先使用 rsync 的断点续传与校验能力;大文件可分片或分批迁移。
- 日志定位:查看 /var/log/vsftpd.log 或 journalctl -u vsftpd,根据错误提示调整证书、端口或权限。