转发端口
我有一个简单的要求,即基于套接字的通信的软件级端口转发/隧道。
- 我有一个使用套接字的源服务器和端口。 这是一个java程序,可以在windows和linux中运行,这是无关紧要的。
- 我有设备继续向此端口发送数据。 可能存在双向通信
- 我想将此数据重定向到另一个远程服务器和端口。 因此,对于客户,每当我移动我的应用服务器时,他们都不必担心更改IP地址。
是否有任何工具/ deamon /服务程序可用于配置和执行此操作?
我试过SSH,但根据我的理解,这需要一个支持SSH协议的服务器。 就我而言,这不适用。 我也尝试过使用JSch,但这又是java格式的SSH实现。
有人会抛出一些指针吗? 是否可以在linux中使用iptables NAT?
你可以尝试netcat
或socat
(它比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有一个非常简短的问题,其目标非常相似 。 虽然我发现它有点简洁,但更详细的文档可用 。