在 Debian 上使用 FileZilla 进行加密传输
一 加密方式与端口
- 使用 FTPS(FTP over SSL/TLS):支持两种模式
- 显式 TLS(Explicit):默认端口 21,连接后升级为加密。
- 隐式 TLS(Implicit):默认端口 990,建立连接即加密。
- 使用 SFTP(SSH File Transfer Protocol):基于 SSH,默认端口 22,通过 SSH 通道加密传输。
- 原则:避免使用明文 FTP(端口 21 且不加密),优先选择 SFTP 或 FTPS。
二 作为客户端连接时的配置
- 安装 FileZilla 客户端(Debian 仓库或官网包均可):
- 仓库安装:
sudo apt update && sudo apt install filezilla
- 新建站点并配置加密:
- 打开 文件 > 站点管理器 > 新建站点。
- 若连接 SFTP:协议选 SFTP - SSH File Transfer Protocol,主机填服务器 IP/域名,端口 22,登录类型可选 正常/密钥文件。
- 若连接 FTPS:协议选 FTP - File Transfer Protocol,在 传输设置 > 加密 中选择:
- 要求显式 FTP over TLS(常用,端口 21)
- 或 要求隐式 FTP over TLS(端口 990)
- 首次连接会弹出服务器证书,确认指纹无误后选择 始终信任此证书 再连接。
- 传输模式建议:在 编辑 > 设置 > 传输 > 文件类型 保持 自动,在站点管理器的 传输设置 里按需选择 主动/被动;出现 425 Can’t open data connection 时,可临时切换到 主动模式 排查防火墙/NAT 问题。
三 作为服务器提供加密传输
- 安装 FileZilla Server(Debian 10+/amd64 可直接下载 .deb 包安装):
- 示例:
wget https://dl3.cdn.filezilla-project.org/server/FileZilla_Server_1.7.3_x86_64-linux-gnu.deb && sudo dpkg -i FileZilla_Server_1.7.3_x86_64-linux-gnu.deb
- 启动与状态:
sudo systemctl start filezilla-server && sudo systemctl status filezilla-server
- 启用 FTPS:
- 打开 FileZilla Server Interface → Edit > Settings
- 在 General 设置监听端口(如 14147)
- 在 Passive Mode Settings 设置被动端口范围(如 14140–14146)
- 在 Security/SSL/TLS Settings 中 生成新证书,并勾选 启用 FTP over SSL/TLS 支持;必要时勾选 Use SSL/TLS for passive connections
- 防火墙放行:
- 放行控制端口(示例 14147)、被动端口范围(示例 14140–14146)以及 990/21(若同时提供隐式/显式 FTPS)
- UFW 示例:
sudo ufw allow 21/tcp、sudo ufw allow 990/tcp、sudo ufw allow 14147/tcp、sudo ufw allow 14140:14146/tcp
- 用户侧强制加密(可选):在用户权限中设置 Force SSL for user login,确保用户只能加密登录。
四 防火墙与被动模式要点
- 使用 SFTP 时,放行 SSH 端口 22:
sudo ufw allow 22/tcp
- 使用 FTPS 时,除控制端口外,务必放行 被动端口范围,否则数据通道会失败;被动端口范围需在服务器端与防火墙保持一致。
- 客户端与服务器所处网络存在 NAT/云安全组 时,优先使用 被动模式 并在服务器端正确配置被动地址与端口范围。
五 常见问题与排查
- 首次连接证书不受信任:核对 颁发者/指纹,确认后选择 始终信任 再连接。
- 数据连接失败(如 425):在站点管理器将 传输设置 切换 主动/被动 测试;检查服务器被动端口范围与防火墙是否放行。
- 协议/端口混淆:
- SFTP ≠ FTPS;SFTP 走 SSH 22,FTPS 走 990/21 + 证书。
- 隐式 FTPS 使用 990,无需再手动“升级”加密;显式 FTPS 使用 21 并在握手后加密。
- 服务器配置变更后未生效:重启 FileZilla Server 服务,并复核防火墙规则是否覆盖新端口。