如果数据包包含例如字符串,我需要将目标端口 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)