通过我的程序路由所有数据包?

我想构建一个应用程序,通过我的应用程序路由所有网络流量(不仅仅是HTTP)。 基本上,我想要的是给我的应用程序的所有流量(它们永远不应该达到实际目标,我的应用程序应该处理这个),然后将其转发到服务器; 同样适用于输入,只需反转(服务器 – >应用程序 – >想要答案的程序)。 是否有任何库(或类似的东西)可以使创建应用程序更容易? 我正在寻找可以从Python或Java中使用的东西,但如果真的需要,我可以学习另一种语言。

您想要使用的是数据包捕获库,您可以使用python或java中的pcap或其实现或绑定。

然而,像这样的东西通常使用C在低级别实现,这是一个教程教程

编辑:根据您的意见,你肯定想看看netfilter钩子

当你在这里时,你也可能想看看netfilter钩子

看看Jpcap 。

如果你只想路由tcp流量,实际上使用线程和套接字很简单。 您应该在每个要访问的服务器的不同端口中进行侦听。 无论是在Java还是Python中,您都必须为要监听的每个端口创建一个“套接字”。

对于每个新连接,您创建一个到服务器的新连接并创建两个新线程来处理该连接,一个线程将从客户端读取所有内容并将其发送到服务器。 另一个将从服务器读取所有内容并将其发送到客户端。 当连接的任何一端关闭它时,关闭另一端并结束两个线程。

如果你在Linux上这样做,你应该考虑使用TUN / TAP设备,这是一个非常方便的工具,用于拦截自定义处理的网络流量。 如果您不熟悉,这是一个基本的教程http://backreference.org/2010/03/26/tuntap-interface-tutorial/