如何在两个接口之间隧道传输Telnet连接?

时间:2012-05-07 20:40:47

标签: linux networking network-programming telnet tunnel

我有以下网络:

PC1 --|¯¯¯¯¯¯¯¯¯|                            |¯¯¯¯¯¯¯¯¯|-- board2
PC2 --| gateway |-- (eth0) [server] (eth1) --| gateway |
PC3 --|_________|                            |_________|-- board1

如您所见,服务器(运行Linux)有2个接口,因此PC和嵌入式主板不在同一子网中。

我想开发一个简单的应用程序(或使用现有的应用程序),它将eth0(使用特定端口)的Telnet连接通过eth1传输到电路板。

在服务器上没有root权限,但我有一个普通的Unix帐户。我不希望PC真正“登录”到服务器;我只是希望他们通过它连接到电路板。服务器安装了Python,PHP和Perl。

我想支持多个连接。端口号可用于将连接转发到右侧板(假设我有10个板,然后隧道侦听端口3000到3009)。

我可以想象一个简单的Web应用程序来做这件事,但我想要一个支持CTRL + C和所有这些东西的本机Telnet连接,并允许你在PC上使用任何终端模拟器(即PuTTY或其他),运行Windows。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

听起来您正在寻找TCP 代理。代理接受一个端口上的连接,连接到另一个IP /端口,然后来回传递流量。

如果您的系统上有xinetd,那么您已经拥有了所需的内容。服务的redirect指令使xinetd打开与另一个主机/端口的连接并充当代理。有关示例,请参阅this document

balance是另一种非常简单的代理工具,可以满足您的需求。这可能更容易作为非root用户运行,特别是因为它完全在命令行上配置。

由于您的服务器上不是root,因此您需要在端口上运行这些> 1024,但你应该全部设置。