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