nftables 常用命令合集

本文介绍了NFTables的基本命令,包括查看规则集、添加和删除规则,以及管理表、链和规则统计信息,同时提到了加载和保存配置文件的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是一些常用的 nftables 命令:

  1. 查看规则集:

    sudo nft list ruleset
    
  2. 添加规则:

    sudo nft add rule <table> <chain> <rule>
    
  3. 删除规则:

    sudo nft delete rule <table> <chain> <rule>
    
  4. 查看规则统计信息:

    sudo nft list ruleset -a
    
  5. 查看表信息:

    sudo nft list table <table>
    
  6. 查看链信息:

    sudo nft list chain <table> <chain>
    
  7. 清空规则集:

    sudo nft flush ruleset
    
  8. 加载配置文件:

    sudo nft -f /path/to/config/file
    
  9. 保存当前规则集到配置文件:

    sudo nft list ruleset > /path/to/config/file
    

这些是一些基本的 nftables 命令,您可以根据需要使用不同的选项和参数来定制规则。

<think>好的,我需要帮助用户了解如何使用nftables查看当前配置的策略。首先,用户之前询问了如何临时允许特定IP访问Docker端口,现在他们可能想确认这些规则是否生效,或者想更全面地了解他们的nftables配置。 我应该从基础命令开始,比如列出所有规则集。记得提到`nft list ruleset`这个核心命令,这会显示所有表、链和规则。用户可能需要知道如何过滤特定的表或链,例如过滤INPUT链或者DOCKER-USER链,这时候可以用`nft list chain`命令,并举例说明。 接下来,用户可能需要查看计数器信息,了解规则被匹配的次数,所以需要说明`-a`选项的作用,以及如何通过`nft reset counters`重置计数器。此外,统计流量数据也很重要,要提到`nft list ruleset`中的counter部分。 然后,用户可能想知道如何处理规则句柄,因为删除规则时需要用到。这里需要解释如何用`--handle`选项显示句柄ID,并给出示例命令。 对于不同的协议族,比如IPv4、IPv6或者inet,需要提醒用户注意,不同的表可能属于不同的协议族,所以查看时要指定正确的协议族。例如,`nft list table ip filter`和`nft list table ip6 filter`的区别。 监控实时流量可能也是用户需要的,所以介绍`nft monitor`命令,并说明如何过滤特定的事件类型,比如trace、rule等。 最后,应该给出一些查看策略的示例,比如查看所有规则、特定链、带计数器、带句柄,以及实时监控。同时,提醒用户关于Docker相关的链,如DOCKER-USER,因为用户之前的问题涉及Docker端口访问,这部分需要特别强调。 需要确保语言简洁明了,步骤清晰,命令示例正确,并且覆盖用户可能需要的各个方面。同时,注意使用中文,避免专业术语过多,必要时进行解释。</think>以下是使用nftables查看防火墙策略的详细方法: --- ### 一、基础查看命令 1. **查看完整规则集** ```bash sudo nft list ruleset ``` 输出包含所有表(table)、链(chain)、规则(rule)的完整配置 2. **查看指定表** ```bash # 查看filter表(最常用) sudo nft list table inet filter # 查看nat表 sudo nft list table ip nat ``` 3. **查看特定链** ```bash # 查看INPUT链 sudo nft list chain inet filter INPUT # 查看Docker专用链 sudo nft list chain inet filter DOCKER-USER ``` --- ### 二、高级查看技巧 1. **显示规则计数器** ```bash sudo nft list ruleset -a ``` 输出示例: ``` chain INPUT { ... ip saddr 192.168.1.100 tcp dport 32771 counter packets 12 bytes 840 accept ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ packets字段显示匹配次数,bytes显示总流量 } ``` 2. **查看规则句柄ID** ```bash sudo nft --handle --numeric list ruleset ``` 输出示例: ``` table inet filter { # handle 1 chain INPUT { # handle 2 ip saddr 192.168.1.100 tcp dport 32771 accept # handle 5 } } ``` `handle 5`表示该规则的唯一标识符,删除规则时需要 --- ### 三、流量统计查看 1. **重置计数器** ```bash sudo nft reset counters ``` 重置所有规则的packets/bytes统计 2. **查看流量排名** ```bash sudo nft list ruleset -a | grep counter | sort -k5 -nr ``` 按packets数量降序排列规则 --- ### 四、策略监控技巧 1. **实时流量监控** ```bash sudo nft monitor ``` 输出实时事件: ``` trace id 3e4813e5 inet filter INPUT packet: iif "eth0" ip saddr 192.168.1.100 tcp dport 32771 trace id 3e4813e5 inet filter INPUT rule ip saddr 192.168.1.100 tcp dport 32771 accept (verdict accept) ``` 2. **过滤监控类型** ```bash # 只看规则匹配 sudo nft monitor rule # 看连接跟踪 sudo nft monitor conntrack ``` --- ### 五、查看策略示例 ```bash # 查看Docker相关规则 sudo nft list chain inet filter DOCKER-USER -a # 查看NAT配置 sudo nft list table ip nat -a # 带编号显示INPUT链规则 sudo nft --handle --numeric list chain inet filter INPUT ``` --- ### 关键提示 1. **Docker特殊处理**:Docker默认会自动生成`DOCKER-USER`链,这是官方推荐放置自定义规则的位置 2. **配置持久化**:通过`nft list ruleset > /etc/nftables.conf`可保存当前配置 3. **策略验证顺序**:规则从上到下逐条匹配,可通过`--handle`显示的编号确认顺序 4. **日志定位**:结合`log`语句和`dmesg`查看规则触发记录: ```bash sudo nft add rule inet filter INPUT tcp dport 22 log prefix "SSH_ACCESS: " ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值