Menu Close
Settings Close

Language and Page Formatting Options

2.3.7. 在 nftables 链的特定位置插入一条规则

本节介绍了如何在 nftables 链中现有规则的前和后插入规则。这样,您可以将新规则放在正确的位置上。

先决条件

  • 您要添加规则的链存在。

步骤

  1. 使用 nft -a list ruleset 命令显示 example_table 中的所有的链及其规则,包括它们的句柄:

    # nft -a list table inet example_table
    table inet example_table { # handle 1
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport 22 accept # handle 2
        tcp dport 443 accept # handle 3
        tcp dport 389 accept # handle 4
      }
    }

    使用 -a 显示句柄。您需要此信息才能在后续步骤中定位新规则。

  2. example_tableexample_chain 链中插入新规则 :

    • 要在句柄 3 前插入一条允许端口 636 上TCP 流量的规则,请输入:

      # nft insert rule inet example_table example_chain position 3 tcp dport 636 accept
    • 要在句柄 3 后添加一条允许端口 80 上 TCP 流量的规则,请输入:

      # nft add rule inet example_table example_chain position 3 tcp dport 80 accept
  3. 另外,还可在 example_table 中显示所有的链及其规则:

    # nft -a list table inet example_table
    table inet example_table { # handle 1
      chain example_chain { # handle 1
        type filter hook input priority filter; policy accept;
        tcp dport 22 accept # handle 2
        tcp dport 636 accept # handle 5
        tcp dport 443 accept # handle 3
        tcp dport 80 accept # handle 6
        tcp dport 389 accept # handle 4
      }
    }

其他资源

  • nft(8) 手册页中的 Address families 部分
  • nft(8) 手册页中的 Rules 部分