gpt4 book ai didi

linux - 如何使本地终止的 tcp 连接通过预路由和后路由?

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:33 24 4
gpt4 key购买 nike

我正在开发一个使用 netfilter 队列过滤和破坏数据包的应用程序。它相当复杂并且需要表现良好,所以我想自动化一些严格的测试。为此,我需要能够通过我的系统路由一些 TCP 连接,但是,我不想依赖另外两台机器充当客户端和服务器。我更愿意运行发送数据的本地客户端和检查损坏结果的本地服务器。

问题是我的应用程序需要在 PREROUTING 阶段拦截数据包,因此本地客户端生成的数据包不能直接路由到环回接口(interface)。

所以我需要一些方法在预路由阶段之前注入(inject)数据包并在后路由阶段拦截它们。如果我能以某种方式使用流套接字来发送和接收数据,那就太好了!

最佳答案

我能想到的最直接的方法是使用 tun设备。 tun 设备允许您从用户空间注入(inject)数据包,这些数据包似乎是通过 tun 接口(interface)到达的。您可以自己编写代码来创建和操作 tun 接口(interface),也可以使用像 OpenVPN 这样的应用程序。已经这样做了。使用 OpenVPN 会很容易:没有特殊的原始套接字或任何东西:您只需向它发送封装在 UDP 中的 IP 数据包,它将使它们通过 tun 接口(interface)到达。

关于linux - 如何使本地终止的 tcp 连接通过预路由和后路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8952698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com