在下面的例子中
iptables -A FORWARD -i eth0 -p tcp --syn -m mark --mark 0x3 -j REJECT --reject-with tcp-reset
场的意义是什么-m mark --mark
?
当我尝试添加此规则时出现以下错误。
iptables: Protocol wrong type for socket ?
谢谢。
答案1
我已经将内核从 2.6.24 版升级到 2.6.32 版,但 iptables 并未升级,仍停留在 1.3.6 版。如果我想使用 MARK,会出现错误消息“iptables:套接字的协议类型错误”。将 iptables 升级到 1.4.8 版后,一切正常。
答案2
标记匹配被 netfilter 用于匹配在 mangle 表中标记的数据包。由于不知道具体情况,我猜想要么是你的内核已经过时/你的内核编译错误,要么是你的 netfilter 包可能需要查看。
-iptables 手册页 -
标记 该模块匹配与数据包相关的 netfilter 标记字段(可以使用下面的 MARK 目标进行设置)。
[!] --mark value[/mask]
Matches packets with the given unsigned mark value (if a mask is specified, this is logically ANDed with the mask before the comparison).