我正在学习 nftables,目标是根据 IP 和端口目标过滤数据包。它们必须被排队到用户空间,我的脚本将在那里更改有效负载字段并将数据包发送到目的地。
以下规则将数据包入队:
% nft add filter input counter queue
我尝试添加 ip 和端口,但命令返回语法错误(意外的 daddr):
% nft add filter input udp daddr 192.168.1.111 dport 10100 counter queue
下一步是将脚本连接到队列以处理数据包。我安装了 libnetfilter-queue-dev,但不清楚如何使用它。
答案1
您的参数顺序错误。请尝试以下操作:
nft add filter input ip daddr 192.168.1.111 udp dport 10100 counter queue
daddr
属于 IP 数据包匹配器,而dport
属于 UDP 数据包匹配器。因此匹配器需要位于相关协议的旁边。