据我所知,iptables --set-mark
不会在数据包“上”添加标记。目标MARK
是将标记与内核数据结构中的数据包相关联。数据包本身没有被修改。但是有没有办法查看数据包及其相关标记呢?
我们可以从 中看到ctmark
(使用目标设置的连接标记CONNMARK
)/proc/net/nf_conntrack
。我正在寻找类似的内容以供查看nfmark
(数据包标记)。
我们可以这样查看ctmark
。
iptables -I OUTPUT 1 -t mangle -j CONNMARK --restore-mark
iptables -I OUTPUT 2 -t mangle -m conntrack --ctorigdst 172.30.138.151 -m mark --mark 0 -j MARK --set-mark 2
iptables -A POSTROUTING -t mangle -j CONNMARK --save-mark
Run Code Online (Sandbox Code Playgroud)
然后我们就可以在文件中看到连接标记/proc/net/nf_conntrack
。标记=2
ipv4 2 icmp 1 18 src=157.43.150.253 dst=172.30.138.151 type=8 code=0 id=54809 packets=4 bytes=336 src=172.30.138.151 dst=157.43.150.253 type=0 code=0 id=54809 packets=4 bytes=336 mark=2 zone=0 use=2 …
Run Code Online (Sandbox Code Playgroud)