在 Ubuntu 上为 FileZilla 配置防火墙规则
前置说明
- FileZilla 是传输工具,本身不提供防火墙配置功能;需要在 Ubuntu 上使用系统防火墙放行相应端口。
- 先确认你使用的是 SFTP(端口 22) 还是 FTP(端口 21 + 被动模式端口段),两者的放行方式不同。
- 常见防火墙工具:UFW(Ubuntu 默认)、firewalld、iptables。
快速选择
- 使用 SFTP(推荐):放行 22/TCP 即可,简单且穿透 NAT/防火墙更友好。
- 使用 FTP:放行 21/TCP(控制通道),并在服务器端配置并放行一段 被动模式数据端口范围(如 50100–52100/TCP),客户端需与之匹配。
使用 UFW 放行端口
- 安装并启用 UFW(如未启用):
- sudo apt update
- sudo apt install ufw
- sudo ufw enable
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
- 放行规则:
- SFTP:sudo ufw allow 22/tcp
- FTP:sudo ufw allow 21/tcp
- 验证:sudo ufw status(应看到 22/tcp 或 21/tcp 为 ALLOW)。
使用 firewalld 放行端口
- 启动并持久化 firewalld:
- sudo systemctl start firewalld
- sudo systemctl enable firewalld
- 放行规则:
- SFTP:sudo firewall-cmd --permanent --add-port=22/tcp
- FTP:sudo firewall-cmd --permanent --add-port=21/tcp
- 使配置生效:sudo firewall-cmd --reload
- 验证:sudo firewall-cmd --list-all(应列出 22/tcp 或 21/tcp)。
使用 iptables 放行端口
- 放行规则:
- SFTP:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
- FTP:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
- 保存规则(持久化,路径因发行版而异):sudo iptables-save > /etc/iptables/rules.v4
- 验证:sudo iptables -L(应看到对应 ACCEPT 规则)。
FTP 被动模式与服务器配置要点
- 若使用 FTP 被动模式(PASV),需在服务器端(如 vsftpd)设置被动端口范围,并在防火墙放行该范围;客户端(FileZilla)站点设置中的被动端口范围需与服务器一致。
- 示例(服务器端常见做法):放行 21/tcp 与 50100–52100/tcp,并在 vsftpd 配置中设置 pasv_min_port/pasv_max_port 为该范围;重启 vsftpd 后,防火墙规则与客户端设置匹配即可正常传输。