标签: linux networking
我想让程序在一个网络接口上接收数据包进行一些处理并将其转发到不同的接口。什么是在Linux上最有效的方法?我想以最小的延迟转发数据包
答案 0 :(得分:2)
使用libnetfilter_queue。
libnetfilter_queue
iptables <....> -j NFQUEUE --queue-num <queue number>
然后编写自己的程序并与libnetfilter_queue链接。经过一些非常简单的操作后,您将能够使用recv来接收数据包,并使用nfq_set_verdict来决定如何处理数据包。
recv
nfq_set_verdict