我正在攻读 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 端口吗?我真的很想能够运行某种脚本,只需单击一下即可启动所有八个会话。
答案1
前段时间,我能够使用以下方法实现这种串行到网络重定向剩余序列:
通过网络访问 RS232 设备。
连接设备(如数据采集设备)的串口电脑运行remserial程序:
remserial -d -p 23000 -s "9600 raw" /dev/ttyS0 &
这将以守护进程模式启动程序,使其在后台运行,等待端口 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
从本地网络上的任何计算机,使用 telnet 程序连接到相应端口上的控制服务器:
telnet control-server-name 23002
这将通过相关串行端口连接到所需服务器的控制台。此示例随后将允许用户控制台访问第三台服务器。
精心编写的脚本(例如使用 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
这将自动 telnet 到主机登录并将您带到提示符。