【问题标题】:Redirecting to a local port in Java重定向到 Java 中的本地端口
【发布时间】:2015-12-07 02:04:11
【问题描述】:

我正在尝试使用 ServerSocket 编写一个简单的 Java 程序来监听我服务器上的 4000 端口。当客户端连接到端口 4000 时,我希望程序将客户端“重定向”到端口 5000,另一个不相关的程序正在侦听该端口。理想情况下,客户端不会意识到此重定向。

有没有一种简单的方法可以在 Java 中实现这一点?

【问题讨论】:

标签: java sockets network-programming


【解决方案1】:

你可以用java做一个简单的代理服务器,这是我找到的一个例子。 http://www.java2s.com/Code/Java/Network-Protocol/Asimpleproxyserver.htm 它与 minecraft BugeeCord 服务器用于将流量动态重新路由到不同端口的概念相同。

如果您在目标服务器上运行 ubuntu,一个简单的方法是使用 iptables 重定向端口。

如果您认为这可以解决您的问题,您可以在此处查看如何设置它https://askubuntu.com/questions/444729/redirect-port-80-to-8080-and-make-it-work-on-local-machine

【讨论】:

  • 谢谢。在您的第一个解决方案中,客户端和端口 5000 上的程序之间的所有数据都将通过代理,对吗?有没有办法让客户端直接在端口 5000 与程序通信?我的服务器正在运行 Ubuntu,但我不确定 iptables 方法是否有效,因为如果我将端口 4000 路由到 5000,并且我的 Java 程序在 4000 上侦听,它将永远不会收到连接?
猜你喜欢
  • 2018-10-31
  • 1970-01-01
  • 2013-01-19
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
  • 1970-01-01
相关资源
最近更新 更多