Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过我的程序路由所有数据包?_Java_Python_Networking_Tcp_Tunnel - Fatal编程技术网

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

Java 通过我的程序路由所有数据包?,java,python,networking,tcp,tunnel,Java,Python,Networking,Tcp,Tunnel,我想构建一个通过我的应用程序路由所有网络流量(不仅仅是HTTP)的应用程序。基本上,我想要的是提供给我的应用程序的所有流量(它们永远不会到达实际目标,我的应用程序应该处理这个问题),这些流量将被转发到服务器;输入也一样,只是颠倒过来(服务器->应用程序->需要答案的程序)。是否有任何库(或类似的东西)可以使创建应用程序更容易?我正在寻找可以从Python或Java中使用的东西,但如果真的需要,我可以学习另一种语言。看一看。您想要使用的是一个数据包捕获库,您可以使用我们或其在Java或Java中的

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

看一看。

您想要使用的是一个数据包捕获库,您可以使用我们或其在Java或Java中的实现或绑定

然而,像这样的事情通常是在低级别实现的,理想情况下使用C, 这里有一个教程

编辑:根据您的评论,您肯定想看看netfilter挂钩


如果只想路由tcp流量实际上是一种简单的使用线程和套接字的方法,那么您可能还想看看。 对于要访问的每台服务器,您应该在不同的端口侦听。在Java或Python中,您必须为每个要侦听的端口创建一个“套接字”


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

< P>如果您在Linux上这样做,则应该考虑使用Tun/TAP设备,这是一个非常方便的工具,用于截取网络流量以进行自定义处理。如果您不熟悉

,这里有一个基本教程,那就是带过滤器的防火墙。这不是你想自己实现的东西。@Bogdacutu:这将是一个非常复杂的多年项目,如果没有安全漏洞、bug或漏洞,你不可能创建它both@Daenyth当前位置这些都不是不尝试自己实施某项任务的理由。“别尝试!这会很难!”如果每个人都听从这个建议,文明会在哪里?@maerics-坐在篝火旁仰望星空?@Rob:我希望如此!但说真的,我不认为在这个社区里阻止其他开发者尝试某件事情是一个好主意;指出挑战和陷阱是完全正确的,这只是为了捕捉;我的应用程序需要像“网关”一样工作。