iptables
命令有许多参数,用于指定规则的行为和特性。以下是一些常用的参数:
-
-t, --table
<表名>
: 指定要操作的表,默认是filter
表。 -
-A, --append
<链名>
: 在指定链的末尾添加一条规则。 -
-D, --delete
<链名>
: 删除指定链中的一条规则。 -
-I, --insert
<链名>
<规则编号>
: 在指定链的指定位置插入一条规则。 -
-R, --replace
<链名>
<规则编号>
: 替换指定链中的指定规则编号的规则。 -
-L, --list
[<链名>]
: 列出指定链的规则,如果不指定链名,则列出所有链的规则。 -
-F, --flush
[<链名>]
: 清空指定链的规则,如果不指定链名,则清空所有链的规则。 -
-Z, --zero
[<链名>]
: 将指定链的规则的计数器清零,如果不指定链名,则清零所有链的计数器。 -
-N, --new-chain
<链名>
: 创建一个新的链。 -
-X, --delete-chain
[<链名>]
: 删除指定的链。 -
-P, --policy
<链名>
<策略>
: 设置指定链的默认策略。 -
-s, --source
<地址>
: 指定源地址。 -
-d, --destination
<地址>
: 指定目的地址。 -
-i, --in-interface
<接口名>
: 指定进入的网络接口。 -
-o, --out-interface
<接口名>
: 指定出去的网络接口。 -
-p, --protocol
<协议>
: 指定协议类型,如tcp
、udp
、icmp
等。 -
--dport
<端口>
: 指定目的端口。 -
--sport
<端口>
: 指定源端口。 -
-j, --jump
<目标>
: 指定规则匹配时执行的动作,如ACCEPT
、DROP
、REJECT
、LOG
等。 -
-m, --match
<模块名>
: 指定匹配模块,如tcp
、udp
、state
等。 -
!, --invert: 反转匹配条件。
-
-v, --verbose: 显示详细信息。
-
--line-numbers: 显示规则的行号。
-
--exact: 精确匹配。
-
--to-destination
<地址>
: 指定目的地址的跳转规则。 -
--to-source
<地址>
: 指定源地址的跳转规则。 -
--tcp-flags
<标志>
<掩码>
: 匹配 TCP 标志。
这些参数可以组合使用,以创建复杂的规则。例如,创建一条规则来拒绝从特定 IP 地址到特定端口的所有 TCP 连接,可以使用以下命令:
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j DROP
这将在 INPUT
链中添加一条规则,拒绝来自 192.168.1.100
的所有到端口 22
的 TCP 连接。