现代 Linux 上的串行通信

使用 Linux 串行通信程序 Tio 连接到您的控制台进行故障排除。
123 位读者喜欢这篇文章。
computer servers processing data

Opensource.com

作为一名系统工程师,我花大量时间在数据中心配置服务器和其他计算机设备。我的工具包中保留的两件物品是 RS-232 串行转 USB 转换器和标准 DB-9 串行电缆。当您没有其他方式访问设备时,这些可能非常重要。您可能需要部署尚未为您的网络配置的新路由器。您可能需要排除通过 SSH 变得无法访问的防火墙设备故障。尤其是在“无人值守”环境中,新服务器可能需要初始化管理卡。串行连接为执行这些任务提供了直接访问控制台的路径。

在此示例中,我将使用 Netgate 设备。这些是防火墙,没有鼠标、键盘、显示器或其他 GUI 功能。它们通常被称为“无头”。

串行通信

要通过串行方式连接设备,您需要支持 RS-232 协议的硬件。这通常是一个九针 DB-9 串行端口,通常标记为 serial、comm 或 console。大多数旧计算机至少有一个。大多数服务器仍然有,但大多数笔记本电脑和台式电脑不再有。

查找串行端口

如果您的系统没有串行端口,您需要使用像我提到的那样的转换器。当您将 PL2303 转换器插入计算机的 USB 端口时,Linux 内核会将其注册为 USB TTY 设备。

您可以使用多个命令来查询系统的串行端口配置。以下是一些示例

# dmesg |grep tty
[252464.891372] usb 6-1: pl2303 converter now attached to ttyUSB0

# setserial -g /dev/ttyUSB[0123]
/dev/ttyUSB0, UART: 16654, Port: 0x0000, IRQ: 0

# ls /dev/serial/by-id/
usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0

在我的例子中,它将转换器检测为 pl2303 转换器(或 Prolific Technology USB 串行控制器)。

连接串行电缆

将串行电缆连接在转换器和设备上的串行端口之间。

使用 Tio 登录

多年来,我使用过不同的工具,例如 Minicom 和 Screen。Tio 是一个更新、更简单的工具,被描述为“一个简单的 TTY 终端 I/O 应用程序”。它在大多数 Linux 发行版、FreeBSD 和 OpenWRT 以及 Snap 包中都可用。我使用标准软件包工具将 1.32 版本安装到我的 Red Hat Enterprise Linux 8.1 服务器上

# dnf info tio
# dnf install tio

使用 tio 命令初始化连接。以我的经验来看,Tio 不需要任何预先配置;它开箱即用。请确保您有正确的设备路径,如上所示

# tio /dev/ttyUSB0

# tio /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0

您可以使用 Ctrl+t 命令序列与 Tio 交互。例如,Ctrl+t+? 将列出可用命令,Ctrl+t+q 将退出 Tio 并将您带回 Linux 命令提示符。

结论

我们现在很少考虑甚至使用串行通信,但它仍然很有用。数据中心人员仍然需要熟悉它。

数据中心可能很偏远,一旦进入内部,您需要确保拥有所有合适的工具。当然,除了优秀的 Linux 笔记本电脑外,我还建议使用上述物品在必要时管理那些支持串行的设备。

接下来阅读什么
Alan Formy-Duval Opensource.com Correspondent
Alan 拥有 20 年的 IT 经验,主要在政府和金融领域。他最初是一家增值经销商,之后转行成为系统工程师。Alan 的背景是高可用性集群应用程序。他在 Oracle Press/McGraw Hill 的《Oracle Solaris 11 系统管理》一书中撰写了“用户和组”以及“Apache 和 Web 堆栈”章节。

14 条评论

谢谢 Alan,
对于我来说,这是我在 Opensource.com 上过去三四年中读到的最好的技术信息文章之一。所有其他文章也很棒。

即使我现在退休了,但仍然很沮丧,因为无法像二十年前通过控制台那样将笔记本电脑连接到服务器进行配置或分析。
对我来说太晚了,但对于新的系统管理员,特别是那些来自纯 Windows 和 PC 环境的系统管理员来说,这是非常好的信息。

感谢您的好评,我很高兴您喜欢这篇文章。

回复 ,作者 W. Anderson (未验证)

感谢您的这篇文章。我一直在努力解决两种情况,希望您能提供一些有价值的意见。

1 在 Mac 上,您可以使用 iterm2,它使您可以使用按键发送文本,该按键在您配置时保存了密码。当您每天必须登录 20-50 个终端时,这将帮助您节省大量时间,因此我是此功能的忠实拥护者,但我也使用我的 Windows 机器,但我还没有在 Windows 环境中找到这样的选项。所以,如果您知道任何可能有帮助的终端,请告诉我。

2. 很多时候,由于 VFS 限制已达到,我无法连接到 Ubuntu 服务器,因此唯一的选择是重新启动,当您的服务器已经使用了多年时,重新启动会令人感到害怕,所以我想知道是否仍然有一种方法可以在不重新启动的情况下连接到它并增加限制。同样,当我无法 ssh 到服务器时,我希望能够以某种方式远程连接,即使我无法远程或本地 ssh。

感谢您对这两件事的投入。

谢谢
Tushar

只是为了确定“tio”在 Red Hat 存储库中不可用。我认为您是从 EPEL 安装的。是这样吗?

我可以确认我在 EPEL 中找到了它(使用 RHEL 8)。

回复 ,作者 John Call (未验证)

是的,正如 Seth 确认的那样。您需要为 Red Hat Enterprise Linux 启用 EPEL 仓库。但是,它在 Fedora(dnf install tio)和 Ubuntu(apt install tio)等发行版的标准仓库中可用。

回复 ,作者 John Call (未验证)

与像 Putty 这样的软件相比,tio 命令行有什么好处吗?多年来,我一直使用 Putty 来处理来自 telnet、ssh 或串行的任何连接,但始终对有趣的新软件应用程序持开放态度

Rob,我认为在很大程度上,这归结为个人喜好。Putty 提供了更全面的功能集,而 tio 非常专注。它安装速度快,大小仅约 36kb。但是,我认为这是用户的选择。

回复 ,作者 Rob C (未验证)

2020 年了,但我仍然不明白如何在日常生活中使用 Linux

Linux 是一种操作系统,因此您可以像使用任何计算机一样使用它。当然,这取决于您自己。

回复 ,作者 Mark Woodson

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.