Linux 下使用 FileZilla 通过 SSL 加密传输
一 客户端连接 FTPS 步骤
- 安装 FileZilla 客户端(Linux 发行版仓库或官网包均可)。
- 打开菜单:文件 → 站点管理器 → 新建站点,填写:
- 协议:FTP - 文件传输协议
- 加密:优先选择仅使用显式 FTP over TLS(推荐);若服务器要求隐式,则选使用 FTPS(隐式 TLS)
- 主机:服务器地址;端口:显式默认21,隐式默认990
- 登录类型:正常,输入用户名与密码
- 首次连接会弹出证书指纹,确认后勾选“总是信任此证书”再连接。
- 连接成功的标志:底部状态栏显示“已连接到服务器”,传输日志出现类似“TLS 握手成功”的信息。
二 作为服务器启用 SSL 加密 FileZilla Server
- 安装并启动 FileZilla Server(Linux 版),通过管理界面连接。
- 全局设置:
- 常规:设置控制通道监听端口(默认21)
- 被动模式:勾选“使用自定义端口范围”,如50000–50020
- 安全/TLS:勾选“启用 FTP over TLS 支持”,点击“生成新证书”,填写国家/组织等信息保存
- 可选加固:勾选“禁止明文 FTP”,并启用“强制 PROT P 加密数据通道”“要求数据通道 TLS 会话恢复”
- 防火墙放行:控制通道(21/TCP)、被动端口范围(如50000–50020/TCP);若启用隐式 FTPS,还需放行990/TCP。
三 防火墙与端口配置要点
- 显式 FTPS(推荐):放行21/TCP(控制通道)+ 被动端口范围(如50000–50020/TCP,按服务器配置为准)。
- 隐式 FTPS:放行990/TCP(控制通道)+ 被动端口范围(同上)。
- 示例(firewalld):firewall-cmd --permanent --add-port=21/tcp;firewall-cmd --permanent --add-port=990/tcp;firewall-cmd --permanent --add-port=50000-50020/tcp;firewall-cmd --reload
- 云服务器还需在安全组中放行对应端口。
四 常见问题与排查
- 出现“425 Can’t open data connection”:在站点管理器的“传输设置”中尝试切换主动/被动模式;同时核对被动端口范围已在防火墙放行。
- 证书不受信任:首次连接手动确认并勾选“总是信任此证书”;生产环境建议使用CA 签发证书以避免安全警告。
- 协议不匹配:确认服务器是显式(FTPES,端口 21)还是隐式(FTPS,端口 990),客户端加密选项需与之对应。
五 替代方案与安全建议
- 若服务器支持,优先使用 SFTP(SSH 文件传输协议):在站点管理器中将协议切换为SFTP,端口通常为22,无需 FTPS 证书,且传输全程加密。
- 安全加固建议:
- 仅开放必要端口,限制被动端口范围并严格放行
- 使用有效证书(非自签名)或企业 CA
- 启用“禁止明文 FTP”“强制 PROT P”“TLS 会话恢复”
- 开启日志并定期更新 FileZilla 客户端/服务器版本。