在现代Linux系统中,nftables 正逐步取代传统的 iptables,成为新一代的包过滤框架。作为 Ubuntu 用户,掌握 Ubuntu nftables命令 不仅能提升系统安全性,还能让你更高效地管理网络流量。本文将手把手教你从零开始配置 nftables 防火墙,即使你是完全的小白也能轻松上手。
什么是 nftables?
nftables 是由 Netfilter 项目开发的新一代数据包分类框架,它整合了 iptables、ip6tables、arptables 和 ebtables 的功能,提供统一的语法和更高效的内核处理机制。相比旧工具,nftables 具有以下优势:
更简洁的规则语法 原子性规则更新(避免规则中断) 支持更复杂的匹配条件 更好的性能和可扩展性安装与启用 nftables
在大多数新版 Ubuntu 系统中,nftables 已默认安装。如果没有,可通过以下命令安装:
sudo apt updatesudo apt install nftables
安装完成后,建议禁用旧的 iptables 服务以避免冲突:
sudo systemctl mask iptablessudo systemctl mask ip6tables
基础概念:表、链、规则
nftables 使用三层结构组织规则:
表(Table):按地址族(如 inet、ip、ip6)分组 链(Chain):定义规则处理顺序,如 input、output、forward 规则(Rule):具体的匹配条件和动作(accept、drop 等)编写你的第一个 nftables 规则
我们创建一个基本的防火墙配置文件 /etc/nftables.conf,实现以下功能:
#!/usr/sbin/nft -fflush rulesettable inet filter { chain input { type filter hook input priority 0; policy drop; # 允许本地回环 iif "lo" accept # 允许已建立或相关连接 ct state established,related accept # 允许 ICMP(ping) ip protocol icmp accept # 开放 SSH 和 HTTP tcp dport { 22, 80 } accept } chain forward { type filter hook forward priority 0; policy drop; } chain output { type filter hook output priority 0; policy accept; }}
应用并测试配置
保存上述内容到
/etc/nftables.conf后,使用以下命令加载规则:
sudo nft -f /etc/nftables.conf
查看当前规则:
sudo nft list ruleset
设置开机自动加载规则:
sudo systemctl enable nftables
常见问题与调试技巧
如果你无法访问服务,请检查:
规则是否正确加载(使用nft list ruleset) 是否遗漏了必要的端口(如 HTTPS 的 443) 云服务器安全组是否也放行了相应端口
要临时清空所有规则(慎用!),可执行:
sudo nft flush ruleset
结语
通过本教程,你已经掌握了 nftables防火墙配置 的基础知识,并成功在 Ubuntu 上部署了一个安全的网络策略。随着你对 Linux新一代防火墙 的深入理解,可以逐步添加更复杂的规则,如速率限制、NAT 转发等。记住,良好的 Ubuntu网络安全设置 是系统稳定运行的第一道防线。
安全无小事,从配置好你的第一道防火墙开始!
