如何标记来自设备的所有数据包?

如何标记来自设备的所有数据包?

我使用 创建了一个 tun 设备ip tuntap add dev tun0 mode tun,然后我想使用 为来自 tun0 的所有数据包设置标记iptables -t mangle -A OUTPUT -o tun0 -j MARK --set-mark 1。但是当我使用 检查匹配的规则时iptables -t mangle -nvL,没有匹配的数据包。有人能帮我吗?

实际上,我尝试了其他过滤器,但一无所获。这与 tun0 配置有关吗?

答案1

-o tun0是一个输出设备过滤器,因此您的 mangle 规则会匹配通过 离开系统的数据包tun0。要标记来自 的数据包tun0,请使用-i tun0,最好在PREROUTING链中执行此操作。

还要注意,数据包标记不会自动应用于回复数据包;此规则只会标记一个单向流的数据包(双向连接有两个流)。要标记回复数据包,请使用连接标记模块。如果您需要数据包标记,例如,用于策略路由,您可以将连接标记复制到数据包标记,对此有一个特定的操作。

相关内容