如果数据包包含例如字符串,我需要将目标端口 15000 的所有 UDP 数据包重定向到端口 15001 test。我有这两个简单的规则:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 15000 -m string --string 'test' --algo bm -j LOG --log-prefix='[netfilter] '
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 15000 -m string --string 'test' --algo bm -j REDIRECT --to-ports 15001
Run Code Online (Sandbox Code Playgroud)
奇怪的行为:
test数据包进行重定向
;test,则即使后续数据包包含 ,也永远不会进行重定向test但是,所有匹配规则的数据包都会被正确记录。
我尝试将曲目信息添加到规则中:
-m state --state NEW,ESTABLISHED
Run Code Online (Sandbox Code Playgroud)
但行为是一样的。一些想法?
这是完整的iptables规则集:
过滤表:
Chain INPUT (policy ACCEPT)
target prot opt source …Run Code Online (Sandbox Code Playgroud)