如何轻松设置多个 minicom / Cisco 控制台服务器会话?

A J*_*ton 5 ssh serial-port cisco telnet

我在我的 CCNA 上工作,有 4 个交换机和 4 个路由器组成了我的主要实验室。我买了两个四端口 USB 到串行(1 个 USB 到 4 个串行)适配器,我在它们的两端连接了 8 根串行翻转电缆。

这些 USB 插入 P4 Ubuntu 服务器,我可以成功地 ssh 进入该服务器并使用 minicom 管理任何设备,就像我在拨出组中一样。

我有一个 USB[0-7] 的 minicom 保存文件,并使用 ln 链接 SW1-4、R1-4,因此我可以“minicom R1”等。

使用我的双显示器,我可以打开所有 8 个终端会话 - 每个屏幕上 4 个。

不过,这是主要的事情:我必须在我的工作站上打开一个终端,通过 SSH 连接到访问服务器,然后运行 ​​minicom。我必须为每个设备执行一次。虽然这不是破坏性的,但我确定必须有一种更简单的方法来做到这一点 - 我可以告诉我的服务器将每个串行连接公开为 telnet 或 ssh 端口吗?我真的希望能够运行某种脚本,一键启动所有八个会话。

Eri*_*lho 2

不久前,我能够使用remserial进行这种串行到网络重定向:

允许通过网络访问 RS232 设备。

串口连接到设备(如数据采集设备)的计算机运行remserial程序:

remserial -d -p 23000 -s "9600 raw" /dev/ttyS0 &
Run Code Online (Sandbox Code Playgroud)

这将以守护程序模式启动程序,以便它在后台运行,等待端口 23000 上的连接,并将串行端口 /dev/ttyS0 设置为 9600 波特。然后,从任何计算机到端口 23000 的网络连接都可以读取和写入连接到串行端口的设备。

这可以从 /etc/rc.local 启动,或者作为 /etc/inittab 中的条目启动,或者使用 /etc/rc.init/ 中的文件设置为系统服务。

这就是您所需要的:

服务器场控制台控制。

假设多个 Linux 服务器(例如 Web 服务器)设置为使用串行端口作为控制台而不是显示器/键盘,则可以使用多端口串行板将它们的串行端口连接到控制服务器。在控制服务器上,为每个服务器运行 remserial 的副本:

remserial -d -p 23000 -s "115200 raw" /dev/ttyS0
remserial -d -p 23001 -s "115200 raw" /dev/ttyS1
remserial -d -p 23002 -s "115200 raw" /dev/ttyS2
remserial -d -p 23003 -s "115200 raw" /dev/ttyS3
Run Code Online (Sandbox Code Playgroud)

从本地网络上的任何计算机,使用 telnet 程序连接到相应端口上的控制服务器:

telnet control-server-name 23002
Run Code Online (Sandbox Code Playgroud)

这将通过关联的串行端口连接到所需服务器的控制台。然后,此示例将授予用户控制台对第三台服务器的访问权限。

仔细的脚本编写(例如使用 Linux“expect”程序)可以允许在每台服务器上运行批量命令。

在页面末尾,您将找到下载 i386(32 位)预编译二进制文件和源代码的链接(如果您运行的是 64 位操作系统或者更喜欢自己编译)。

编辑:要添加一点自动化,您可以安装expect并编写以下脚本:

#!/usr/bin/expect

spawn telnet 192.168.0.1
expect "Username:"
send "your-username\r"
expect "Password:"
send "your-password\r"
expect "#"            <----- prompt character ($ or #)
interact
Run Code Online (Sandbox Code Playgroud)

这将自动远程登录到主机登录名并将您带到提示符处。