ufw:面向新手的简化管理
ufw(Uncomplicated Firewall)是对 iptables/nftables 的简化封装,适合快速配置基础规则。
sudo apt install ufw
# 默认策略:拒绝入站,允许出站
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 放行必要端口
sudo ufw allow 22022/tcp # SSH(对应自定义端口)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 限制某端口的来源 IP 段
sudo ufw allow from 192.168.1.0/24 to any port 8000
sudo ufw enable
sudo ufw status verbose
nftables:更细粒度的现代方案
nftables 是 iptables 的继任者,语法更统一,规则集也更易维护。
sudo apt install nftables
# /etc/nftables.conf
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif lo accept
tcp dport 22022 accept
tcp dport { 80, 443 } accept
# 限制单 IP 新建连接速率,缓解简单的连接洪泛
tcp dport 22022 ct state new limit rate 10/minute accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
sudo nft -f /etc/nftables.conf
sudo systemctl enable --now nftables
场景示例:仅内网可访问的 AI 推理服务
将 vLLM 等服务监听在内网接口,或通过防火墙限制外部访问:
sudo ufw allow from 10.0.0.0/8 to any port 8000
sudo ufw deny 8000
规则顺序在 ufw 中很重要,更具体的规则应放在通用拒绝规则之前生效。
验证规则是否生效
sudo ufw status numbered
sudo nft list ruleset
小结
对于单机小型部署,ufw 已经足够;如果需要更复杂的流量整形、NAT 或多接口策略,建议直接使用 nftables 原生语法以获得更好的可维护性。