这些匹配选项对 TCP 协议 (-p tcp) 有效:
--dport — 设置数据包的目的端口。
要配置这个选项,使用网络服务名(如 www 或 smtp),端口号,或一个端口号范围。
要指定一个端口号范围,使用一个冒号 (:) 分隔两个端口号,如:-p tcp --dport 3000:3200。可被接受的最大端口范围是 0:65535。
在 --dport 选项后面使用 (!) 来匹配那些 不 使用那个网络服务或端口的数据包。
通过 /etc/services 文件可以查看使用的网络服务和端口号的名称或别名。
--destination-port 匹配选项与 --dport 相同。
--sport — 设置数据包的源地址端口,它使用和 --dport 相同的选项。--source-port 匹配选项与 --sport 完全相同。
--syn — 匹配所有用来初始网络通信的 TCP 数据包(通常被称为 SYN packets)。任何包括实际数据的数据包都不会被处理。
在 --syn 选项后面使用 (!) 来匹配所有非 SYN 的数据包。
--tcp-flags <tested flag list> <set flag list> — 允许有特定位(标识)的 TCP 数据包匹配一个规则。
--tcp-flags 匹配选项接受两个参数。第一个是掩码:一个由逗号分隔的、被数据包检查的标识。第二个参数是由逗号分隔的、必须为规则匹配设置的一组标识。
可能的标识是:
ACK
FIN
PSH
RST
SYN
URG
ALL
NONE
例如,一个 iptables 规则包括了以下内容,它只匹配有 SYN 标识,而 ACK 和 FIN 标识没有被设定的 TCP 数据包:
--tcp-flags ACK,FIN,SYN SYN
在 --tcp-flags 后面使用 (!) 来使匹配选项起相反的作用。
--tcp-option — 试图匹配可以在特定数据包中设置的 TCP 选项。这个选项也可以使用 (!) 来起到相反的效果。