FTP 与 SFTP 远程文件服务器同步配置
FTP vs SFTP
FTP(File Transfer Protocol)是最古老的文件传输协议之一,仍然广泛存在。GoodSync 同时支持 FTP 和 SFTP:
| 对比项 | FTP | SFTP |
|---|---|---|
| 传输加密 | 无(明文) | SSH 隧道加密 |
| 端口 | 21(默认) | 22(默认) |
| 认证方式 | 用户名 + 密码 | 用户名 + 密码 / SSH 密钥 |
| 安全性 | 极低(密码和数据都明文) | 高(全程加密) |
| GoodSync 推荐 | 仅在有 GoodSync 额外加密时使用 | 推荐 |
安全警告:FTP 协议本身不加密,所有传输内容(包括用户名和密码)都是明文。除非 GoodSync 作业中额外开启了应用层 AES-256 加密,否则不要在公网环境下使用 FTP。SFTP 是同等场景下的安全替代。
在 GoodSync 中配置 FTP 端点
- 端点类型选择「FTP」
- 填写服务器信息:
主机:ftp.example.com
端口:21(或服务器指定的端口)
用户名:syncuser
密码:********
远程路径:/home/syncuser/backup
被动模式:开启(默认,适合大多数防火墙环境)
- 点击「Connect」测试连接
- 连接成功后可以浏览服务器目录
被动模式 vs 主动模式
FTP 有两种数据连接模式:
| 模式 | 数据连接方向 | 防火墙兼容性 |
|---|---|---|
| 被动模式(Passive) | 客户端连接到服务器指定端口 | 好——客户端只需要出站权限 |
| 主动模式(Active) | 服务器连接到客户端指定端口 | 差——服务器需要入站权限(大多数家庭/公司防火墙不允许) |
GoodSync 默认使用被动模式,推荐保持默认。只有在被动模式无法连接(极端防火墙环境)时才尝试切换到主动模式。
FTP 的额外加密
因为 FTP 本身不加密,GoodSync 提供了额外的应用层加密选项:
强烈推荐在 FTP 端点的作业中开启 AES-256 应用层加密(作业 Options → General → Encryption)。这可以弥补 FTP 的安全缺陷——数据在 GoodSync 客户端先加密再传输,服务器端看到的是加密后的文件。
配置 SFTP 端点
SFTP(SSH File Transfer Protocol)基于 SSH 协议,比 FTP 安全得多。
密码认证方式
主机:server.example.com
端口:22(默认)
用户名:backupuser
密码:********
远程路径:/var/backup/data
SSH 密钥认证方式
对于安全要求更高的环境,推荐用 SSH 密钥替代密码:
- 在客户端生成密钥对(如果还没有):
# Windows: 在 Git Bash 或 WSL 中
ssh-keygen -t rsa -b 4096 -f ~/.ssh/goodsync_key
# 这会生成 goodsync_key(私钥)和 goodsync_key.pub(公钥)
- 把公钥上传到服务器:
# 在本地执行,把公钥追加到服务器的 authorized_keys
ssh-copy-id -i ~/.ssh/goodsync_key.pub backupuser@server.example.com
- 在 GoodSync SFTP 端点配置中:
- 认证方式选择「SSH Key」
- 私钥文件路径:
C:\Users\你的用户名\.ssh\goodsync_key - 私钥 Passphrase(如果生成密钥时设置了)
FTP/SFTP 端点的常见问题
连接超时
- 确认主机名和端口是否正确
- 检查网络能否访问该服务器(
telnet ftp.example.com 21或telnet server.example.com 22) - 如果服务器在内网,确认 VPN 是否已连接
中文文件名乱码
FTP 的字符编码历史上存在兼容性问题。GoodSync 在 FTP 端点配置中提供了字符集选项:
- 尝试把默认的 UTF-8 切换为 GB2312 / GBK(中文 Windows FTP 服务器常用)
- SFTP 通常没有这个问题(SSH 协议默认 UTF-8)
被动模式数据连接失败
如果被动模式无法连接,可能是 FTP 服务器没有正确配置被动模式端口范围。联系服务器管理员在服务器端指定一个被动端口范围(如 40000-40100),并在防火墙中开放这些端口。
目录权限问题
GoodSync 使用的 FTP/SFTP 用户需要在远程路径上有正确的权限:
- 读取权限:
r(分析和下载需要) - 写入权限:
w(上传和修改需要) - 执行权限:
x(进入目录需要)
Linux 服务器上:
# 创建同步专用用户
useradd -s /sbin/nologin syncuser
# 设置目录权限
chown -R syncuser:syncuser /home/syncuser/backup
chmod -R u+rwX /home/syncuser/backup
典型场景
场景一:Web 服务器内容备份
本地网站目录 → FTP/SFTP → Web 服务器的备份目录
把本地网站自动备份到远程服务器,防止本地硬件损坏。
场景二:远程日志收集
远程服务器 → SFTP → 本地归档存储
定期把远程服务器的日志文件拉取到本地做归档和分析。
场景三:旧系统数据迁移
旧系统(FTP 可用) → GoodSync 中转 → 新存储(S3 / NAS / GoodSync Connect)
用 GoodSync 作为中间桥梁,把旧系统上的数据迁移到新架构中,利用 GoodSync 的断点续传和校验保证完整性。