如何发送未触及的 tun 数据包?

How to send untouched tun packets?

我有一个软件,它使用 TUN 设备读取数据包,对其进行处理并发送出去。现在我问自己,如果可能的话,发送 "tun packets" 而不触及它们。 通过 TUN 设备我得到 IP 数据包,但通过 RAW 套接字我只能发送自定义传输层数据包...... 是否有可能只从 TUN 设备中取出此数据包并通过网卡将其发送出去?

您没有在 RAW 套接字上启用 IP_HDRINCL 套接字选项? 如果启用IP_HDRINCL选项,则可以发送自定义网络层数据包。

如果有人对该主题感兴趣,我写了一篇白皮书来总结使用 RAW 套接字所需的所有信息:http://tuprints.ulb.tu-darmstadt.de/6243/1/TR-18.pdf