使用screen命令连接交换机首次正常后续终端乱码如何解决
Allied Telesis交换机串口二次连接乱码解决方案
出现该问题通常是串口进程残留、参数被异常修改、流控不匹配导致的,可按以下步骤排查解决:
- 优先清理残留的串口占用进程
大部分乱码问题都是上次screen会话未正常退出,后台进程锁住串口设备导致的:- 执行
ps aux | grep screen查询存活的screen进程,执行kill -9 进程ID杀掉残留进程 - 执行
fuser -k /dev/ttyS0强制释放所有占用串口的进程 - 后续退出screen时不要直接关闭终端窗口,按
Ctrl+A再按k确认杀死会话,或者按Ctrl+A再按\正常退出所有会话,避免进程残留
- 执行
- 每次连接前重置串口参数
异常断开会导致串口参数被篡改,下次连接前先重置参数再发起连接:# 重置串口为默认 sane 状态 stty -F /dev/ttyS0 sane # 配置交换机匹配参数,额外关闭软硬件流控适配Allied Telesis设备默认配置 stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb -ixoff -ixon -crtscts # 再发起screen连接 screen /dev/ttyS0 - 更换专用串口调试工具
screen并非专门的串口调试工具,对串口异常场景适配较差,推荐使用minicom做持久化配置:- 安装minicom:
sudo apt install minicom(Debian/Ubuntu)或sudo dnf install minicom(RHEL/CentOS/Fedora) - 执行
sudo minicom -s进入设置界面,选择「Serial port setup」,按对应键修改参数:- Serial Device:
/dev/ttyS0 - Bps/Par/Bits:
9600 8N1 - 关闭Hardware Flow Control、Software Flow Control
- Serial Device:
- 选择「Save setup as dfl」保存为默认配置,后续直接输入
minicom即可连接,异常断开后重连不会出现乱码问题
- 安装minicom:
- 可选:确认交换机侧串口配置
如果以上操作无效,首次正常连接时执行show line console查看交换机控制台参数,确认波特率、校验位、停止位和本地配置完全匹配,部分高端Allied Telesis交换机默认控制台波特率为115200,需要对应修改本地参数。
乱码现象参考:
内容的提问来源于stack exchange,提问作者Osama Abuhamdan
相关产品推荐
相关产品推荐

