sol是ipmi 2.0标准下将服务器主板串口(如ttys0)信号经bmc重定向至网络的远程串行控制技术,需bmc支持、bios启用串口、操作系统配置console参数并用ipmitool sol activate连接。

服务器远程管理卡(如iDRAC、iLO、IPMI BMC)本身不提供物理串口,但能通过Serial over LAN(SOL)把本地串口(通常是ttyS0或COM1)的数据重定向到网络上,让你像插着串口线一样调试。关键不是“管理卡连本地串口”,而是“管理卡接管并转发服务器主板的串口信号”。
确认硬件与固件支持
不是所有服务器都默认启用SOL。需满足三项基础条件:
- BMC芯片支持IPMI 2.0及以上,并开启SOL功能(Dell iDRAC6+、HPE iLO4+、Supermicro IPMI均原生支持)
- 服务器主板BIOS中已启用串口(Serial Port),通常设为“On”并指定端口为COM1/ttyS0
- 串口引脚实际连接到BMC——多数现代服务器在设计时已将主串口(UART)直连BMC,无需额外接线;个别老机型可能需检查主板手册确认跳线或排针连接
在BIOS/UEFI和BMC界面中开启SOL
两处配置缺一不可:
- 进入服务器开机时的BIOS/UEFI设置(常按Del/F2/F10),找到“Serial Communication”或“Console Redirection”,启用并设置:波特率(通常115200)、数据位(8)、停止位(1)、校验位(None)、重定向目标为“Serial Port Console”或“Always Enable”
- 登录BMC Web界面(如https://192.168.0.120),进入“Remote Console”或“Serial Over LAN”设置页,勾选“Enable SOL”;部分型号(如Intel AMT)还需在MEBx界面(开机按Ctrl+P)中打开“SOL/IDER”和“Network Access”
操作系统侧配合:确保串口控制台就绪
SOL看到的是串口输出流,如果系统没把控制台输出到该串口,你就只能看到黑屏或BIOS之后的空白。以主流Linux为例:
- 内核启动参数中加入
console=ttyS0,115200n8(对应BIOS设置的波特率),并确保earlyprintk=serial(用于捕获早期内核日志) - 启用串口登录服务:
sudo systemctl enable --now serial-getty@ttyS0.service,验证状态为active (running) - 若用GRUB,编辑
/etc/default/grub,在GRUB_CMDLINE_LINUX追加console参数,再运行sudo update-grub(Ubuntu/Debian)或sudo grub2-mkconfig -o /boot/grub2/grub.cfg(RHEL/CentOS)
从本地发起SOL会话
用ipmitool最直接。假设BMC地址是192.168.1.100,用户名admin,密码password:
- 激活会话:
ipmitool -I lanplus -H 192.168.1.100 -U admin -P password sol activate - 此时终端即成为远程串口控制台——可看到BIOS自检、GRUB菜单、内核启动、登录提示符,甚至单用户模式救援
- 退出用
~.(波浪号+英文句点),或另起终端执行sol deactivate - 注意:SOL会话独占式占用串口,同一时间仅允许一个客户端激活;若被他人占用,需等待或由管理员强制释放










