Debian上FileZilla的防火墙设置
一、先确认你的使用场景
- 使用**FileZilla Server(服务端)**在Debian上提供FTP/SFTP服务,需要在服务器放行相应端口与协议。
- 使用**FileZilla Client(客户端)**从Debian连接外部FTP/SFTP服务器,只需确保本机可访问目标端口(一般出站默认允许,无需额外放行)。
二、使用UFW快速放行(推荐)
- 安装与启用
- 安装:sudo apt update && sudo apt install ufw
- 默认策略:sudo ufw default deny incoming;sudo ufw default allow outgoing
- 启用:sudo ufw enable
- 放行FTP(主动模式)
- 控制通道:sudo ufw allow 21/tcp
- 主动数据通道:sudo ufw allow 20/tcp
- 放行FTP(被动模式,需在FileZilla Server设置被动端口范围)
- 例如范围:sudo ufw allow 40000:40009/tcp(示例范围,可自定义)
- 放行SFTP(基于SSH)
- 端口:sudo ufw allow 22/tcp(或 sudo ufw allow ssh)
- 可选:仅允许指定来源IP
- 例如:sudo ufw allow from 203.0.113.10/32 to any port 21,40000:40009
- 使配置生效与检查
- 重载:sudo ufw reload
- 状态:sudo ufw status verbose
说明:UFW适合大多数场景,命令简洁,便于审计与回滚。
三、使用iptables放行(更灵活)
- 主动模式
- 控制通道:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
- 主动数据通道:sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
- 被动模式(示例范围)
- 数据通道:sudo iptables -A INPUT -p tcp --dport 40000:40009 -j ACCEPT
- 保存与持久化
- 保存:sudo iptables-save | sudo tee /etc/iptables/rules.v4
- 开机恢复:在 /etc/rc.local 或 systemd 服务中执行 iptables-restore < /etc/iptables/rules.v4
说明:iptables规则更细粒度,适合需要复杂策略或云厂商自定义网络环境。
四、FileZilla Server被动模式与TLS设置要点
- 设置被动端口范围
- 打开FileZilla Server Interface → Edit → Settings → Passive Mode Settings → 勾选“Use custom port range”,例如:40000–40009
- 同时在防火墙放行该范围(见上文UFW/iptables示例)
- 启用TLS/SSL
- 在Server Interface → Edit → Settings → Security → 勾选“Use SSL/TLS for passive connections”
- 点击“Generate new certificate”生成证书,客户端连接时选择“FTP over TLS”
- 管理端口(可选)
- 默认管理端口:14148;如需远程管理,请放行该端口(UFW:sudo ufw allow 14148/tcp)
说明:被动端口范围与TLS是生产环境的基本安全与连通性配置。
五、连通性测试与常见问题排查
- 端口连通性
- 本机测试:nc -vz localhost 21 或 telnet localhost 21
- 远程测试:nc -vz 服务器IP 21
- 服务状态
- 确认FileZilla Server已启动:sudo systemctl status filezilla-server.service
- 防火墙状态
- UFW:sudo ufw status verbose
- iptables:sudo iptables -L -n -v
- 常见原因
- 未放行被动端口范围(被动模式必现)
- 云服务器安全组/外部防火墙未放行相应端口
- 客户端协议/端口填写错误(SFTP应为22,FTP为21)
说明:按“控制通道 → 数据通道 → 被动端口范围 → 加密设置”的顺序排查,可快速定位问题。