命令选项告诉 iptables 来执行一个特定的行动。每个 iptables 命令只允许使用一个命令选项。除了帮助命令,其它所有命令都使用大写字符。
iptables 命令包括:
-A — 在指定 chain 的最后添加规则。与下面介绍的 -I 选项不同,它不接受整数参数。它总在指定 chain 的最后添加规则。
-C — 在把一个特定的规则添加到用户定义的 chain 前检查它。这个命令可以通过要求您输入额外的参数和选项来创建复杂的 iptables 规则。
-D <integer> | <rule> — 根据所提供的号码(如 5 代表一个 chain 中的第5个规则)或规则的内容来删除一个特定 chain 中的一条规则。规则的内容必须与一条存在的规则完全匹配。
-E — 重新命名一个用户定义的 chain。用户定义的 chain 是指除默认的和预存在的 chain 以外的 chain。(请参阅下面介绍的 -N 选项来获得如何创建用户定义的 chain 的信息。)这只是形式上的变化,它并不影响规则表的结构。
如果您试图重新命名默认的 chain,系统将产生 Match not found 错误。您无法重新命名默认的 chain。
-F — 删除指定 chain 中的所有规则。如果没有指定 chain,它会删除所有 chain 中的规则。
-h — 提供命令结构的一个列表,以及命令参数和选项的一个简单介绍。
-I [<integer>] — 根据用户指定的一个整数参数来在一个特定的 chain 中的指定位置插入规则。如果没有指定参数,规则会被插入到 chain 的最前面。
我们在前面已经提到,一个 chain 中的规则的顺序决定了数据包将使用哪条规则。因此,您需要根据不同的情况选择使用 -A 或 -I 选项。
这一点在使用 -I 和一个整数参数添加规则时尤其重要。如果您在向一个 chain 添加一条规则时指定了一个存在的数值,iptables 将把新的规则添加到存在的规则 之前(上面)。
-L — 列出在命令后面指定的 chain 的所有规则。要列出默认的 filter 规则表中的所有 chain 中的所有规则,请不要指定任何 chain 或规则表。否则的话,使用以下的语法来列出特定规则表中的特定 chain 中的规则:
iptables -L <chain-name> -t <table-name>
-L 命令的其它选项(它们可以提供规则号以及更详细的规则描述)在 第 3.4.3.6 节 “列出选项” 中被介绍。
-N — 使用一个用户定义的名称来创建一个新的 chain。这个新 chain 的名称必须是唯一的,否则将会出现一个错误信息。
-P — 为特定的 chain 设置默认的政策,当整个 chain 中都没有匹配的规则时,数据包被发送到特定的 target,如 ACCEPT 或 DROP。
-R — 替换指定 chain 中的一个规则。这个规则的号必须在 chain 名的后面被指定。chain 中的第一条规则与规则 1 相对应,以此类推。
-X — 删除一个用户指定的 chain。您不能删除一个内建的 chain。
-Z — 把一个规则表中的所有 chain 中的字节和数据包计数器设置为零。