在 Debian 系统中设置防火墙,最常用、推荐的方式是使用 UFW(Uncomplicated Firewall),它是对 iptables/nftables 的简化封装,适合大多数用户。如果你需要更底层控制,也可以直接使用 nftables(Debian 10 以后默认)。
下面按 从简单到高级 介绍几种方式。
sudo apt update
sudo apt install ufw
sudo ufw status
sudo ufw enable
⚠️ 启用前建议先允许 SSH,否则可能断连。
sudo ufw allow ssh
# 或
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw deny 23/tcp
sudo ufw delete allow 80/tcp
sudo ufw disable
sudo ufw default deny incoming
sudo ufw default allow outgoing
含义:
sudo ufw allow from 192.168.1.100
允许某 IP 访问某端口:
sudo ufw allow from 192.168.1.100 to any port 22
Debian 10(Buster)之后,nftables 已取代 iptables 成为默认防火墙框架。
sudo apt install nftables
sudo systemctl enable nftables
sudo systemctl start nftables
sudo nft list ruleset
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; }
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport 22 accept
sudo nft add rule inet filter input drop
⚠️
nftables配置重启会丢失,需写入配置文件:
sudo nano /etc/nftables.conf
Debian 新版本中 iptables 实际是 nftables 的兼容层。
示例:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP
保存规则(需安装 iptables-persistent):
sudo apt install iptables-persistent
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
如果你愿意,可以告诉我:
我可以帮你定制一套精确的防火墙规则 ✅