在 Debian 上“开 FTP 防火墙”通常有两层意思,我分开说明,你可以按需要来:
Debian 默认防火墙工具一般是 nftables(新版本)或 iptables(老版本),也可用 ufw 简化管理。
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw enable
如果你用的是 被动模式 FTP(PASV),还要放行被动端口范围(假设 30000–31000):
sudo ufw allow 30000:31000/tcp
并在 FTP 服务(如 vsftpd)中配置:
pasv_min_port=30000
pasv_max_port=31000
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
保存规则(Debian):
apt install iptables-persistent
netfilter-persistent save
nft add rule inet filter input tcp dport {20,21,30000-31000} accept
保存:
nft list ruleset > /etc/nftables.conf
systemctl restart nftables
| 模式 | 端口 | 防火墙注意 |
|---|---|---|
| 主动模式 | 21 + 20 | 服务器连客户端,易被客户端防火墙拦 |
| 被动模式 | 21 + 随机端口 | 必须放行 PASV 端口范围 |
✅ 生产环境建议用被动模式
sudo apt install vsftpd
sudo systemctl enable --now vsftpd
检查监听:
ss -tlnp | grep 21
如果你能告诉我:
我可以给你精确命令。