掌握Ubuntu nftables命令(Linux新一代防火墙配置入门指南)

来源:这里教程网 时间:2026-03-28 20:46:33 作者:

在现代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,实现以下功能:

允许本地回环(lo)接口通信 允许已建立的连接返回 开放 SSH(端口22)和 HTTP(端口80) 默认拒绝其他入站连接

#!/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网络安全设置 是系统稳定运行的第一道防线。

安全无小事,从配置好你的第一道防火墙开始!

相关推荐

热文推荐