我正在尝试重定向一些流量,所以当被问到1.1.1.1:2222本地机器而不是转到2.2.2.2:3333
使用java实现这一目标的最简单方法是什么?
祝你好运
Windows上的主机文件不是!一个选项
编辑: ip 1.1.1.1:2222是一个外部IP(我不拥有的服务器)。因此,我无法创建一个简单的套接字服务器来重定向流量。我必须以某种方式改变数据包方向
另请注意,我想重定向的是 OUTGOING 部分。一个简单的例子是,如果我要求www.google.dk我得到facebook
这必须从java。
完成答案 0 :(得分:1)
你不能在Java中做这种事情。实际上,你通常不能在用户空间应用程序中做这件事。
如果您使用的是Linux平台,则可能会将iptables
配置为拦截发往特定IP地址/端口的给定类型的传出数据包,并重写目标IP地址。但是,这确实是系统/网络管理问题,而不是编程问题。
您可以想象,如果非特权应用程序可能导致流量被重新路由,您可以执行各种令人讨厌的事情。您需要在Linux上使用root权限来更改iptables配置。
这必须从java。
完成
好吧,除非您询问应用程序重定向自己的请求,否则无法用Java / Java完成。
(在特殊情况下,您可以通过实现一个自定义套接字工厂来实现这一点,该工厂打开连接到应用程序代码的更高级别要求的不同位置。但是,我不认为这是什么你要的是。)
答案 1 :(得分:0)
我认为它可以很容易地用套接字实现,基本上是:
您有一个示例here