如何在 VMware 虚拟机中使用串口

你可能需要在 VMware 虚拟机中访问串口,用于配置、日志通信或调试目的。只要满足前提条件,在 VMware Workstation Pro 中添加新的串口(无论是物理的还是远程的)都很容易。

然而,要在虚拟环境中后续访问并使用它们则是另一回事。而这正是 Serial Port Redirector 发挥作用的地方。

在这篇文章中,我们将向你展示如何在 VMware 虚拟机中添加串口,解释不同的连接类型,并演示如何在 VM 中访问它。

在 VMware Workstation 中配置串行端口

将串行端口(或 COM 端口)添加到虚拟机(VM)可让你在 VM 环境中与串行设备(如路由器或开发板)进行交互。你可以通过多种方式连接虚拟串行端口,包括连接到物理端口、文件、命名管道和网络。

虚拟机最多可拥有 32 个 COM 端口。但是,在创建 VM 时,你实际上也可以选择完全不包含任何端口。如果你选择这种方式,来宾操作系统(在 VM 内运行的 OS)将不会看到任何可用的串行端口。

要求

在添加虚拟串行端口之前,请确保您的虚拟机已处于关闭状态。

请确保您了解与端口配置相关的正确介质类型和 vSPC 连接详细信息。vSPC(虚拟串行端口集中器)是一种基于网络的服务,允许虚拟机远程访问串行端口。您还需要授予 Virtual machine.Config.Add or remove device(虚拟机 > 配置 > 添加或移除设备)权限才能继续。

特定的连接类型也有各自独特的前提条件。例如,如果您希望通过网络使用串行端口,则需要以下防火墙规则集:

  1. VM 串口连接到 vSPC。启用“使用虚拟串口集中器”选项,以便仅传递来自主机计算机的出站信号。

2. 通过网络连接的 VM 串行端口。这基本上与第一组规则相同,只是它不使用虚拟串行端口集中器(vSPC)

在此基础上,下面介绍如何配置 VMware 虚拟串口。

添加 VMware 虚拟串行端口

  1. 在清单中,右键单击您选择的虚拟机并选择“编辑设置”切换到“硬件”选项卡并点击“添加

2. 展开下拉菜单并选择“串行端口”一个新的串行端口将出现在您的设备列表中。

3. 打开“新建串口”下拉菜单并选择你偏好的连接类型(物理端口、文件、命名管道或网络)然后,点击“确定”完成。

新串行端口

选择正确的虚拟串口连接类型

根据你想要实现的数据处理类型,你需要为虚拟串口选择特定的连接类型。下面快速概述你可以使用的四种不同连接方法:

  • 物理串口:这是最常见的设置,使虚拟机能够与调制解调器等物理设备交互。
  • 主机计算机上的文件:通过虚拟端口发送的数据会写入主机计算机上的文件。这使你能够记录虚拟机中运行的某些进程的信息,这对记录通信日志很有用。
  • 主机端命名管道:这会在虚拟机与主机上的应用程序或另一台虚拟机之间创建用于数据交换的直接连接。可以把它想象成用串口线连接两台独立的机器,只不过它们位于同一台计算机上。这是远程调试中常用的方法。
  • 网络端口或 vSPC URI:这使用虚拟串口集中器(vSPC)通过网络建立连接。换句话说,你可以使用此模式在虚拟串口与远程设备之间进行通信。

 

配置输出到命名管道

  1. 选择命名管道连接:

    ○ 在“新建串口”下拉菜单中,选择命名管道

2. 指定管道名称:

○ 在“管道名称”字段中,为管道输入一个名称(例如:\\.\pipe\namedpipe

○ 如果您使用的是 Windows 主机,您可以保留默认的管道名称。

○ 确保服务器和客户端两端使用相同的管道名称

3. 定义管道端点:

○ 从可用的下拉菜单中,选择管道的近端远端以完成配置。

网络连接的服务器模式与客户端模式

如果您选择网络连接类型,还可以选择将串行端口设置为客户端或服务器连接。

服务器连接模式
如果您选择服务器连接,您将获得对连接到串行端口的虚拟机的控制权。它会使您的 VM 像服务器一样运行,等待来自主机的传入连接。这非常适合您只需偶尔控制 VM 的场景,例如在调试或配置期间。

客户端连接模式
同时,如果您希望将虚拟机用作客户端,请选择客户端连接。换句话说,VM 会在启动时主动向指定程序发起连接。这在日志记录应用中很常见,您可以自动将数据发送到另一个系统。

创建不带身份验证参数的串行端口网络连接

服务器连接示例
要将您的 VM 配置为使用 telnet://:11111 URI(统一资源标识符)的串口服务器连接,请运行以下命令。

telnet yourESXiServerIPAddress 11111

客户端连接示例
同时,您也可以通过在 Linux 上的 11 端口运行 Telnet 服务器(telnet://yourLinuxBox:11)通过客户端连接来设置您的串口。使用以下命令。

telnet://yourLinuxBox:11

使用串口转以太网连接器将串口连接到 VMware

VMware 包含原生的串口直通功能,允许虚拟机与通过串口连接的设备进行通信。虽然这些内置选项适用于基本场景,但在需要远程访问、设备兼容性或稳定性能时,它们可能会受到限制。

Serial to Ethernet Connector 为 VMware 环境中的串口集成提供了一种更灵活的方法。它不再依赖将设备直接物理连接到主机,而是支持通过网络重定向串口。这使虚拟机能够远程访问串口设备,从而更便于应对分布式基础架构和现代虚拟化部署。

分步指南:

1. 要进行设置,请在共享串口的电脑上下载并安装 Serial to Ethernet Connector。

2. 在 Serial to Ethernet Connector 应用中,转到“服务器连接”选项卡并选择主机计算机的 COM 端口。然后,输入用于数字通信监控的 TCP 端口。

“服务器连接”选项卡

3. 点击“创建服务器连接”按钮。接下来,通过 VMware 将你的串口连接到虚拟机(如前所述)

“创建服务器连接”按钮

4. 转到你的来宾操作系统。打开 Serial to Ethernet Connector 应用并切换到“客户端连接”选项卡。进入后,输入相同的 TCP 端口详细信息,并指定主机计算机的 IP 地址。

5. 为您的虚拟机命名串行接口,然后点击“创建客户端连接”

Create a client connection

串口转以太网连接器如何解决常见的 VMware 串口问题

许多工业系统和旧式设备仍然依赖串行通信,这使得在虚拟环境中可靠的串口访问至关重要。然而,VMware 串口直通可能会带来一些挑战。

远程访问限制
在使用物理直通时,远程访问串口连接的硬件很困难,尤其是在云或数据中心环境中,直接硬件访问并不现实。Serial to Ethernet Connector 通过虚拟化串口并使其可通过网络访问来解决这一问题。

兼容性限制
某些串口设备需要特定的驱动程序或配置,这些可能无法在虚拟机内正常工作。通过在网络层重定向串行通信,Serial to Ethernet Connector 降低了对设备特定虚拟机配置的依赖。

性能和延迟问题
物理串口直通可能会引入延迟和不稳定性,尤其是在数据跨长距离传输或在多个系统之间传输时。基于网络的串口重定向有助于提供更一致的数据传输和更少的中断。

对旧式硬件的支持有限
虚拟化平台通常对较旧的串口设备提供的原生支持有限。Serial to Ethernet Connector 通过允许将旧式设备作为虚拟串口进行访问来扩展 VMware 的能力,即使原生集成不可用或不可靠。

结论

虚拟串口在调试或记录日志时非常方便。它们很容易通过 VMware Workstation Pro 添加,但在虚拟环境中访问它们仍然最容易通过 Serial to Ethernet Connector 来完成。

常见问题

如果你正在将 ESXi 主机上的物理串行端口用于虚拟机,则通过 USB 连接的串行端口不支持 VMware 串行端口直通。相反,你应该选择 USB 直通。请参阅《从 ESXi 主机到虚拟机的 USB 配置》

VMware ESXi 允许您使用多达 32 个串行端口。您可以轻松地将主板上的串行端口从 ESXi 主机重定向到虚拟机。