Debian上FileZilla的防火墙设置
先明确角色与总体思路
- FileZilla是客户端,本身不提供防火墙配置功能;需要配置的是操作系统防火墙(如 UFW、iptables)以允许与远端FTP/SFTP服务器的通信。若你在Debian上部署了 FileZilla Server,则需为服务器开放相应端口。FTP为明文协议,建议优先使用 SFTP(基于SSH,端口22);如使用FTP,需同时处理控制连接与被动模式数据端口。
方案一 使用UFW快速放行(适合桌面或简单服务器)
- 安装与启用
- 安装:sudo apt update && sudo apt install ufw
- 默认策略:sudo ufw default deny incoming;sudo ufw default allow outgoing
- 启用:sudo ufw enable
- 常用放行
- SFTP(推荐):sudo ufw allow 22/tcp
- FTP(主动/被动均需放行控制端口):sudo ufw allow 21/tcp
- 若使用FTP被动模式,需在服务器端配置并放行一段数据端口范围(示例):sudo ufw allow 50100:52100/tcp
- 按需放行SSH以便管理:sudo ufw allow ssh(或 sudo ufw allow 22/tcp)
- 查看状态:sudo ufw status
- 提示:UFW规则立即生效,修改前建议先允许SSH避免被锁。
方案二 使用iptables精细控制(适合服务器/需要保存规则)
- 安装与查看
- 安装:sudo apt-get update && sudo apt-get install iptables
- 查看:sudo iptables -L
- 放行规则示例
- SFTP:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- FTP控制连接:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
- FTP被动模式数据端口范围(示例):sudo iptables -A INPUT -p tcp --dport 50100:52100 -j ACCEPT
- 保存与持久化
- 保存:sudo iptables-save | sudo tee /etc/iptables/rules.v4
- 启用持久化服务(如已安装 iptables-persistent):sudo systemctl enable --now iptables-persistent
- 提示:FTP数据连接涉及主动/被动模式与端口协商,若仅放行21端口,被动模式通常会失败,需放行服务器配置的被动端口范围。
在FileZilla Server端的关键配置(若你在Debian上运行服务器)
- 安装与启动
- 下载安装包(.deb)后执行:sudo dpkg -i filezilla-server-*.deb
- 启动服务:sudo systemctl start filezilla-server.service;开机自启:sudo systemctl enable filezilla-server.service
- 被动模式端口范围
- 打开管理界面:Edit → Settings → Passive mode settings
- 勾选“Use custom port range”,设置如 50100–52100
- 在防火墙中放行同一端口范围(见上文UFW/iptables示例)
- 加密与证书
- 在设置中启用 FTP over TLS(FTPS),生成新证书,提升传输安全性
- 连接测试
- 使用FileZilla客户端新建站点,协议选 FTP 或 SFTP,输入主机、端口、用户名与密码测试。
连接失败排查要点
- 协议与端口匹配:SFTP用 22/tcp;FTP用 21/tcp 且被动模式需开放服务器配置的端口范围
- 服务状态:确认远端 SSH/FTP服务 正在运行(SFTP可检查:sudo systemctl status ssh)
- 防火墙与云安全组:同时检查本机防火墙与云厂商安全组/NACL规则
- 日志与报错:查看FileZilla“消息日志”获取具体错误(如超时、拒绝、TLS握手失败等),按提示调整端口或加密设置。