
想用 nftables 管理 Linux 防火墙,不需要从头写复杂脚本。掌握几个核心步骤,就能完成日常配置:装好工具、建好规则容器、加几条实用规则、再保存生效。
安装与服务启用
nftables 是用户态工具,内核支持通常已就绪(现代发行版默认启用),重点是装对命令行程序:
- Debian/Ubuntu:sudo apt update && sudo apt install nftables
- CentOS/RHEL/Fedora:sudo dnf install nftables 或 sudo yum install nftables
装完立即启用服务并开机自启:
- sudo systemctl start nftables
- sudo systemctl enable nftables
服务启动后会自动加载 /etc/nftables.conf 中的规则——这是持久化配置的关键位置。
理解三层结构:表 → 链 → 规则
nftables 不预设规则,所有组件都需显式创建,逻辑清晰:
强大、易用的CuuMall发布新版本了,CuuMall网上商城系统是使用PHP开发的一套免费的开源商城系统,CuuMall最新版本v2.3在CuuMall v2.2稳定版本的基础上做了三十多项大小功能的升级及改进,此次更新进一步完善了CuuMall商城系统,使得2.3版本的CuuMall免费商城系统更加稳定,速度更快,上手更容易! CuuMall商城秉承简单易用的理念,将购物流程、开店流程尽量的简
- 表(Table):按协议族分组,常用 inet(同时处理 IPv4 和 IPv6);ip(仅 IPv4)、ip6(仅 IPv6)也支持
- 链(Chain):挂载在某个钩子(hook)上,比如 input(进本机)、output(出本机)、forward(转发);需指定类型(如 filter)和优先级(如 priority 0)
- 规则(Rule):写在链里,格式为“匹配条件 + 动作”,例如 tcp dport 22 accept 表示放行 SSH
快速搭建基础防火墙
以保护一台普通服务器为例,执行以下命令(需 root 权限):
- 新建表:sudo nft add table inet filter
- 添加 INPUT 链:sudo nft add chain inet filter input { type filter hook input priority 0 \; }
- 允许回环:sudo nft add rule inet filter input iifname "lo" accept
- 允许已建立连接:sudo nft add rule inet filter input ct state established,related accept
- 放行 SSH:sudo nft add rule inet filter input tcp dport 22 accept
- 默认拒绝其他入站:sudo nft add rule inet filter input drop
执行完后,用 sudo nft list ruleset 查看是否生效。若确认无误,保存到配置文件:sudo nft list ruleset > /etc/nftables.conf,再执行 sudo nft -f /etc/nftables.conf 确保重启后规则仍有效。
常用管理命令速查
临时调试或维护时,这些命令最常用:
- 查看全部规则:sudo nft list ruleset
- 清空某张表:sudo nft flush table inet filter
- 删除某条规则(按 handle):sudo nft delete rule inet filter input handle 5(先用 list 命令查 handle 编号)
- 删除整条链:sudo nft delete chain inet filter input
- 删除整个表:sudo nft delete table inet filter
注意:所有 nft 命令只影响当前运行时,不写入 /etc/nftables.conf 就不会持久化。









