在Debian上使用FileZilla进行SSL加密传输
一 概念与协议选择
- 使用**FTPS(FTP over SSL/TLS)**实现SSL加密,支持两种模式:显式 TLS(Explicit,常用端口 21)与隐式 TLS(Implicit,常用端口 990)。
- 若服务器实际提供的是SFTP(SSH File Transfer Protocol),则并非SSL/TLS,而是在站点管理器中将协议选为SFTP并使用密钥或密码认证。
- 客户端与服务器需就加密方式达成一致:服务器启用SSL/TLS后,客户端在站点管理器里选择“显式/隐式”与之匹配。
二 作为服务器在Debian上启用FTPS
- 安装FileZilla Server(Debian 10/11/12 常见做法):
- 下载适用于Debian的服务器安装包(.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 status filezilla-server.service
- 生成证书并启用SSL/TLS:
- 打开管理界面(FileZilla Server Interface),进入 Edit → Settings → SSL/TLS Settings。
- 点击 Generate new certificate 生成自签名证书(填写国家、组织、域名等),保存。
- 勾选 Enable FTP over SSL/TLS support,并根据需要设置“要求显式/隐式”与端口。
- 被动模式与防火墙:
- 在 Edit → Settings → Passive Mode Settings 中设置被动端口范围(如:14140–14146)。
- 放行防火墙端口:
- 显式 FTPS:放行21与被动端口范围(如14140–14146)。
- 隐式 FTPS:放行990与被动端口范围(如14140–14146)。
- 如使用 UFW:sudo ufw allow 21/tcp;sudo ufw allow 990/tcp;sudo ufw allow 14140:14146/tcp
- 可选:强制加密
- 在用户设置中可勾选Force SSL for user login,要求用户登录即使用加密。
三 作为客户端在Debian上连接FTPS
- 安装FileZilla客户端:
- sudo apt update && sudo apt install filezilla
- 站点管理器配置(File → Site Manager → New Site):
- 协议:选择 FTP,加密选择:
- 显式 TLS/SSL(端口 21):常规连接,首次会弹出证书指纹确认。
- 隐式 TLS/SSL(端口 990):连接到 990 端口时自动启用加密。
- 填写主机、端口、用户名、密码,点击 Connect。
- 连接问题排查:
- 若出现 425 Can’t open data connection,在“传输设置/传输模式”中尝试切换主动模式与被动模式后重试。
四 常见问题与排错要点
- 证书信任:首次连接会提示信任新证书,确认指纹无误后勾选“总是信任未来连线的凭证”再连接。
- 数据通道失败:遇到425错误,切换主动/被动模式;同时确保被动端口范围已在服务器与防火墙放行。
- 协议混淆:服务器若仅支持SFTP(基于SSH),在客户端站点管理器中需将协议改为SFTP而非FTP/FTPS。
- 端口与模式匹配:服务器启用隐式时,客户端需连接990并选择隐式;服务器启用显式时,客户端用21并选择显式。