转发端口

我有一个简单的要求,即基于套接字的通信的软件级端口转发/隧道。

  • 我有一个使用套接字的源服务器和端口。 这是一个java程序,可以在windows和linux中运行,这是无关紧要的。
  • 我有设备继续向此端口发送数据。 可能存在双向通信
  • 我想将此数据重定向到另一个远程服务器和端口。 因此,对于客户,每当我移动我的应用服务器时,他们都不必担心更改IP地址。

是否有任何工具/ deamon /服务程序可用于配置和执行此操作?

我试过SSH,但根据我的理解,这需要一个支持SSH协议的服务器。 就我而言,这不适用。 我也尝试过使用JSch,但这又是java格式的SSH实现。

有人会抛出一些指针吗? 是否可以在linux中使用iptables NAT?

你可以尝试netcatsocat (它比netcat更强大)

socat使用tcp4转发端口80的示例:

 socat tcp4-listen:80,fork tcp4:{another server}:{another port} 

并参考http://en.wikipedia.org/wiki/Netcat#Port_Forwarding_or_Port_Mapping for netcat

两者都不是与Java相关的。

code.google.com有一个名为portforward的TCP / IP端口转发实用程序。 它完全用Java编写。

如果你已经在你的系统上运行xinetd ,它提供了一个简单的端口转发机制 ,如果你还没有运行IPTables,它可能会很有用。

如果您正在运行IPTables,Server Fault有一个非常简短的问题,其目标非常相似 。 虽然我发现它有点简洁,但更详细的文档可用 。