Menu Close
Settings Close

Language and Page Formatting Options

2.2.4. 使用 nftables 脚本中的变量

要在 nftables 脚本中定义变量,请使用 define 关键字。您可以在变量中存储单个值和匿名集合。对于更复杂的场景,请使用 set 或 verdict 映射。

只有一个值的变量

以下示例定义了一个名为 INET_DEV 的变量,其值为 enp1s0

define INET_DEV = enp1s0

您可以在脚本中使用变量,方法是在 $ 符号后跟变量名:

...
add rule inet example_table example_chain iifname $INET_DEV tcp dport ssh accept
...
包含匿名集合的变量

以下示例定义了一个包含匿名集合的变量:

define DNS_SERVERS = { 192.0.2.1, 192.0.2.2 }

您可以在脚本中使用变量,方法是在 $ 符号后跟变量名:

add rule inet example_table example_chain ip daddr $DNS_SERVERS accept
注意

请注意,在规则中使用大括号时具有特殊的意义,因为它们表示变量代表一个集合。