在本指南中,您将了解如何通过 TCP/IP 网络重定向 COM 端口,以便您能够远程访问串行设备,就像它们直接连接到您的计算机一样。您将找到清晰的分步说明,用于设置服务器端和客户端连接,包括如何共享物理和虚拟 COM 端口,并在 Windows 和 Linux 系统之间转发它们。最后,您将理解串行端口转发的工作原理、如何扩展串行硬件的覆盖范围,以及这如何在网络化环境中简化远程访问和设备管理。
通过 TCP/IP 重定向 COM 端口(适用于 Windows 和 Linux 操作系统)
在许多情况下,您可能会使用专用的COM Port Redirector软件(Linux 和 Windows 操作系统)来远程访问串口设备。一个例子可能是,当 PC 之间无法直接连接时,通过网络将 RS232 端口重定向到远程计算机。
当您需要使用支持 Telnet 协议(RFC 2217)的串行设备,但该设备并未实际在您的 PC 附近时,您可以在专业串口重定向器的帮助下通过互联网或局域网将其共享后进行远程连接。
想知道如何将 COM 端口转发到 TCP/IP 吗?下面是一个简单的分步指南:
在您的本地(服务器)计算机上重定向 COM 端口:
1. 安装 并启动 COM Port Redirector 应用程序。在主菜单中选择 Connection > New server connection,或在 Home 窗口中点击 Server connection。
2. 为您的连接选择一个名称。
3. 选择需要与远程客户端 PC 共享的 COM 端口。
4. 在网络设置中:
- 指定将用于监听客户端连接的 TCP 端口。
- 确保该端口被你的防火墙允许,且未被任何其他应用程序占用。
- 选择用于重定向 COM 数据的协议。它可以是原始数据传输协议或带有 RFC 2217 扩展的 Telnet 协议。
5. 点击创建按钮!
6. 一旦你完成了此操作,串口就可以通过 TCP/IP 网络供远程客户端连接使用。
在远程(客户端)计算机上重定向 COM 端口:
1. 启动程序,并在主菜单中选择“连接 > 新建客户端连接”
2. 指定您创建的连接名称。
3. 选择将用于连接的本地 COM 端口。
4. 启用“Create as virtual port”选项,以便在您的系统中创建一个虚拟 COM 端口。该端口将模拟真实 COM 接口的行为,并将在客户端用于与远程服务器端口交换数据。
注意: 如果您决定使用虚拟串口,我们建议您启用Strict baudrate emulation选项,以防在与真实串行接口通信时发生潜在的数据丢失。
5. 选择数据传输协议。
6. 输入你要连接的服务器的计算机名或 IP 地址,以及在创建服务器连接时选择的 TCP 端口。
7. 点击创建!
就是这样!现在客户端计算机已通过 TCP/IP 通道连接到服务器 PC。这意味着无论你将什么串行设备连接到服务器上共享的 COM 端口,它都会在客户端计算机上显示,就好像该外设直接连接到那台机器一样。因此,COM 端口重定向器将为你的远程机器添加串行端口。
如何使用 ser2net 在 Linux 上重定向 COM 端口
还有一种方法是使用仓库中已提供的免费开源 ser2net 在两台 Linux 机器之间转发 COM 端口。这种方法要稍微复杂一些。
- 先在接收设备上安装 ser2net
apt install ser2net - 通过在
/etc/ser2net.conf中添加这一行来配置 ser2net。
指定接收端口。另外,/dev/ttyS0” 可替换为任何需要的串口。<receiver port>:raw:400:/dev/ttyS0:57600 8DATABITS NONE 1STOPBIT - 现在,你可以不带参数启动 ser2net,然后在发送端计算机上开始操作。安装 socat:
apt install socat - 创建一个目录来存放将与接收端链接的虚拟设备:
mkdir ~/dev/ttyV0 - 使用以下参数运行 socat:
socat pty,link=$HOME/dev/ttyV0,waitslave tcp:<receiver IP address>:<receiver port> - 可以使用 minicom 测试连接:
minicom $HOME/dev/ttyV0 - 打开后,minicom 将像控制台一样工作,并将文本发送到远程设备。
有多种方式可以使用远程串口。一种选择是在 Linux 机器上映射 COM 端口,并使用 Serial to Ethernet Connector 通过网络对其进行重定向。如前所述,Electronic Team 的 COM 端口重定向软件可在 Windows 和 Linux 上使用,使用过程中不会有任何问题。因此,对于日常使用来说,它是一个更好且更简单的选择。