我正在使用 libipq 来修改网络中传入数据包中的一些数据。这是我的设置:我在同一台机器上运行客户端程序和嗅探器(使用 libipq)程序。我在另一台机器上有一个服务器程序。两台机器都在网络上。我的目标是更改从服务器收到的某些数据包中的某些数据。我能够成功更改数据,但这个更改的数据包似乎没有到达客户端。我还在wireshark中看到服务器正在重新传输我刚刚修改的数据包(因为它期待其早期数据包的确认并且客户端从未收到它,因此无法发送确认)。我正在使用以下语句在更改一部分后接受数据包。在这里,我没有改变数据包的长度。
ipq_set_verdict (h, m->packet_id, NF_ACCEPT, m->data_len, m->payload);
我想要一些关于如何使修改后的数据包到达客户端的建议。所有未修改的数据包都可以毫无问题地到达客户端。