我正在使用 netfilter_queue 从内核中获取某些数据包并对它们进行一些处理。对于 netfilter 队列,我需要来自特定来源的所有数据包except UDP packets with src port 2152 & dst port 2152.
我尝试将 iptable 规则添加为
iptables -A OUTPUT ! s 192.168.0.3 ! -p udp ! --sport 2905 ! --dport 2905 -j NFQUEUE --queue-num 0
Run Code Online (Sandbox Code Playgroud)
iptables 抛出无效参数的错误。查询dmesg,看到如下错误打印
ip_tables: udp match: only valid for protocol 17
Run Code Online (Sandbox Code Playgroud)
我尝试了以下变体,但抛出了相同的错误。
iptables -A OUTPUT ! s 192.168.0.3 ! -p udp --sport 2905 --dport 2905 -j NFQUEUE --queue-num 0
Run Code Online (Sandbox Code Playgroud)
您能否就我的情况建议正确使用 iptables 命令。
如果您创建一个链,将所有内容发送到该链,并对您不希望该链处理的任何内容执行 RETURN,那么编写规则可能会容易得多。使用链,您可以稍后添加其他例外,而无需提出非常复杂的规则。
iptables -t filter -N out_queue
iptables -t filter -A OUTPUT -j out_queue
iptables -t filter -A out_queue -p udp --sport 2905 -j RETURN
iptables -t filter -A out_queue -p udp --dport 2905 -j RETURN
iptables -t filter -A out_queue -j NFQUEUE --queue-num 0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5777 次 |
最近记录: |