用(大概)最可靠的办法连接无屏主机

最近调试网络设备老是导致我连不上我的小主机,通过局域网 ssh 连接说实话挺不靠谱的。

我的小主机是个 D525 工控机,上面有一堆 COM 口。正好我电脑上也有一个 COM 口,所以用串口终端就很可靠了。想法很好,就是中间有点坑。但这个坑可以简单地规避,那就是买 rs232 交叉线

在网络中也有交叉线的概念,最早的网线也分直通线和交叉线。直通线顾名思义就是不同脚直接接在一起,而交叉线就是数据发送和数据接收接在一起。所以,人们就说电脑和网络设备接直通线、电脑和电脑接交叉线。

为什么现在买网线的时候不告诉你他是直通还是交叉的呢?因为它们都是直通的。有千兆以太网了以后,网卡厂商研发出了 Auto-MDIX 技术,即网卡自动判断介质类型和是否需要反转数据输入输出。现在这项技术在大多数千兆网卡中都有。

回到 COM 口,它是相当底层的。根据维基百科,旧电脑的串口由 CPU 处理,现代电脑的串口由 UART 电路处理。所以它远远没有网卡那样智能,不存在 Auto-MDIX 之类的功能。

好巧不巧,我买的是直通线。因为是设备和设备之间连接,所以需要手动把 TXD 和 RXD 翻转过来。方法是把线从中间剪短暴露出九根不同颜色线的线头,使用万用表的通断档在两截线的其中一截测试。(你的万用表的探针可能伸不进去,这个时候需要一节回形针)观察你的的串口接口,上面每个孔都应该写了数字,需要找到的是 2、3 孔对应的线。我最后测试的结果是白和橙分别对应2和3。(不同的线颜色不一定相同)

RS232串口线接线方法示意图(转自绿联)
RS232串口线接线方法示意图(转自绿联)

把它们俩交叉连接,其它颜色原样连接就没问题了。在封上之前可以先用万用表在两接头处测量通断。

确认无误后就可以连到电脑上了。在终端所在的电脑这样配置:systemctl enable serial-getty@ttyS? 然后重启或者启动服务即可。

在另一台电脑上可以使用 screen 连接到终端:screen /dev/ttyS? 115200。按回车如果没反应则可能因为波特率不对,可以换到 9600 试试或者按下 C-a C-b 发送。如果再不行就需要修改/lib/systemd/system/serial-getty@.dervice文件了。把里面的 --keep-baud xxxxxxx 替换成想要的波特率(比如 115200)如果再不行呢?检查一下串口线和串口对应的 tty 编号吧。

2 Replies to “用(大概)最可靠的办法连接无屏主机”

  1. 我最近也有类似问题,因为NPS/FRP等内网穿透服务长时间运行稳定性不佳。我的最终解决方案是直接通过IPv6连接。(但是这就不得不使用移动数据网络来完成这一操作,我很希望能有个廉价的,带宽在100mbps以上的4G/5G无线网卡作为远程运维的网络接口。)

Comments are closed.