转发端口

时间:2011-12-04 08:05:29

标签: java sockets nat tunneling

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

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

我可以使用任何工具/ deamon /服务程序来配置和执行此操作吗?

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

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

3 个答案:

答案 0 :(得分:4)

您可以尝试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了解netcat

两者都不是与Java相关的。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

如果您已在系统上运行xinetd,则会提供一个简单的port forwarding mechanism,如果您尚未运行IPTable,则可能会非常有用。

如果您正在运行IPTables,则服务器故障优秀,short question with a very similar goal。虽然我发现它有点简洁more detailed documentation is available