现代 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 安装的。是这样吗?

是的,正如 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

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