远程访问

远程访问方案选型

两个问题决定选型:客户端能否直达现场,以及是否需要远程改串口参数。

本页内容

远程访问方案选型

远程操作一个串口设备有三条路径。它们解决的不是同一个问题,选错的代价通常是"连得上但改不了参数"或者"网络根本不通"。

  • RFC 2217——把串口连同参数控制一起送到远端。客户端可以改波特率、校验位和 DTR/RTS。
  • 透明 TCP 转发——只把字节从串口搬到网络。参数由现场那一端决定,远端改不了。
  • Cloud Console(Web 远程调试)——通过云端中转,浏览器直接操作现场端口。不需要客户端能直达现场网络。

三条路径的拓扑差别

三张图只看两处:箭头由哪一端发起,决定网络通不通;下方那条横线,决定远端能不能改串口参数。

RFC 2217 拓扑:远程电脑主动连接现场电脑的 TCP 6000 端口,现场电脑运行 RFC 2217 服务端并用串口线接到串口设备。下方一条贯穿全链路的双向箭头标注数据加串口参数控制(波特率、校验位、DTR 与 RTS),脚注说明客户端需能直达现场 IP 和端口
RFC 2217:连接由远端发起,串口参数跟着数据一起过去,所以波特率和 DTR/RTS 都能在远端改。
透明 TCP 转发拓扑:远程电脑用任意 TCP 程序连接现场电脑,现场电脑做透明桥接并用串口线接到串口设备。下方贯穿全链路的双向箭头只标注只有数据字节双向透传,脚注说明串口参数由现场这一端设定、远端改不了
透明 TCP 转发:网络路径和 RFC 2217 一模一样,差别只在那条横线——过去的只有数据字节。
Cloud Console 拓扑:浏览器从任意地点出站连接 Alithon 云端;虚线框标出的现场网络在 NAT 后、没有公网地址,框内的现场电脑同样向云端出站发送心跳,并用串口线接到串口设备。下方双向箭头标注数据加串口参数控制,每项能力需在桌面端单独授权
Cloud Console:箭头方向反了——两端都向云端出站,所以现场在 NAT 后面、没有公网地址也能用。

三者对比

RFC 2217 透明 TCP 转发 Cloud Console
网络前提 客户端能直达现场 IP 和端口 客户端能直达现场 IP 和端口 现场能访问互联网即可,无需入站端口
远程修改串口参数 可以 不可以 可以
远程控制 DTR/RTS 可以 不可以 可以
客户端是什么 本软件、支持 RFC 2217 的虚拟串口、pyserial、设备管理软件 任意 TCP 程序 浏览器
现场需要做什么 物理串口 + TCP Server + RFC 2217 服务端桥接 物理串口 + TCP Server + 透明桥接 登录账号并开启远程
加密与认证 无,依赖局域网或 VPN 无,依赖局域网或 VPN 有,走账号与云端链路
额外成本 占用流量配额
配置入口 RFC 2217 服务端 / RFC 2217 客户端 TCP 与 UDP 调试 Web 远程调试

怎么选

先回答第一个问题:客户端能不能直接访问现场的 IP 和端口?

  • 不能(现场在 NAT 后面、没有公网地址、也没有 VPN)——只能用 Cloud Console。为此在现场开放入站端口或做端口映射,是把一台调试机暴露到公网,代价远大于收益。
  • ,再问第二个问题:远端需要改串口参数吗?
  • 需要改波特率、校验位、停止位或控制线——用 RFC 2217,两端都必须是 RFC 2217,只有一端是不行的。
  • 只需要把字节搬过去,参数在现场就已经定好——用透明 TCP 转发,客户端可以是任意 TCP 程序,不必支持 RFC 2217。

几个常见的错配:

  • 现场桥接选了 透明转发,客户端却按 RFC 2217 连接——TCP 能建立,但不会出现"远端已接受串口参数设置",参数下发全部无效。
  • 客户端用普通 TCP Socket 连接一个 RFC 2217 服务端——协商字节会混进数据流,表现为开头几个字节是乱码。
  • 在公网上直接暴露 RFC 2217 端口——它没有加密也没有认证,任何能连上的人都可以改你的串口参数。需要跨公网就用 VPN 或 Cloud Console。

三条路径不互斥。现场常见的做法是:日常在局域网内用 RFC 2217,出差或跨地区时用 Cloud Console,两者共用同一个物理串口连接。

端到端的完整配置示例,见 通过 RFC 2217 直连远端串口随时随地通过 Web 调试串口

这篇文档是否有帮助?