我使用 创建了一个 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
链中执行此操作。
还要注意,数据包标记不会自动应用于回复数据包;此规则只会标记一个单向流的数据包(双向连接有两个流)。要标记回复数据包,请使用连接标记模块。如果您需要数据包标记,例如,用于策略路由,您可以将连接标记复制到数据包标记,对此有一个特定的操作。