Socksifying Java ServerSocket - 如何处理
Posted
技术标签:
【中文标题】Socksifying Java ServerSocket - 如何处理【英文标题】:Socksifying a Java ServerSocket - how to approach 【发布时间】:2010-06-10 12:19:09 【问题描述】:我想让一个在网络 A 上运行的 Java 程序通过代理在另一个网络 B 上运行一个 ServerSocket。我玩过 SOCKS5 代理(它可以工作),但似乎 Java 中的所有代理工具都只适用于客户端连接,而不适用于 ServerSockets(没有构造函数采用 Proxy 参数)。向 Google 询问会得到很多干草和很少的针。
我应该采取什么方法来运行它?
如果特定客户端比通用 SOCKS 或 Web 代理更好,那很好,但它需要是 Java(不包括 sshd)。
目标 JVM 最好是 Java 5,然后是 Java 6。
【问题讨论】:
【参考方案1】:为什么不直接设置一个stunnel 来处理将流量从一个网络转发到另一个网络?正如 ZZ Coder 提到的,这不是服务器问题,因此解决方案应该存在于您的 Java 应用程序代码库恕我直言之外。
【讨论】:
正如我在问题中提到的,sshd 不是一个选项。【参考方案2】:代理是客户端问题,服务器不应该关心。例如,网络 B 上的服务器与任何其他服务器没有什么不同。客户端和代理负责从其他网络连接到它。
在服务器端,您可能唯一关心的就是找出客户端的原始 IP 地址。到服务器,连接来自代理。
【讨论】:
除非网络 B 上的代理做 ServerSocket,否则应用程序无法访问网络 A 上的服务器代码,这是我需要的。 您有 2 个选项可以跨网络。您可以将服务器设为多宿主(具有 2 个 IP 地址,每个网络上一个),如果您未指定 IP,ServerSocket 将同时侦听这两个地址。或者您通过 SOCKS 代理连接,该代理将数据包从 A 转发到 B。无论哪种方式,您都不需要服务器代理设置,而且您找不到。以上是关于Socksifying Java ServerSocket - 如何处理的主要内容,如果未能解决你的问题,请参考以下文章