一、概述
SOL(Serial over LAN)是基于 IPMI 的远程串口重定向技术,可用于远程查看服务器 BIOS、自启动信息和登录界面。使用 ipmitool sol activate
命令即可建立远程串口会话。
本手册用于排查当使用 SOL 时没有显示、断开连接、无响应等常见问题。
二、控制端配置要求(运行 ipmitool 的设备)
控制端只需满足以下条件:
项目 | 说明 |
ipmitool 工具 | 安装好即可 |
IPMI 网络连通 | 能 ping 通 BMC 的 IP |
正确的用户名/密码 | 权限为 OPERATOR 或 ADMIN |
防火墙未阻断 623 端口 | SOL 使用 UDP 623 端口,部分厂商也可能用 TCP |
三、被控端配置要求(目标服务器)
以下配置必须在 目标服务器的操作系统和 BIOS 中完成:
-
启动 serial-getty 服务
sudo systemctl enable --now serial-getty@ttyS0.service
确认状态:
systemctl status serial-getty@ttyS0.service
状态应为:active (running)
-
修改 grub 参数支持串口输出
编辑 /etc/default/grub
添加串口参数:
GRUB_CMDLINE_LINUX="console=ttyS0,115200 console=tty1"
更新 grub:
-
Ubuntu/Debian 系统:
sudo update-grub
-
CentOS/RHEL 系统:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
BIOS/UEFI 设置
-
启用 Serial Port Redirect / Console Redirection
-
设置波特率为 115200,与系统一致
-
串口登录权限确认
确认 /etc/securetty
包含 ttyS0
条目:
grep ttyS0 /etc/securetty
没有则手动添加:
echo ttyS0 | sudo tee -a /etc/securetty
-
波特率统一
确保以下配置中的串口速率一致,推荐设置为 115200
:
-
serial-getty@ttyS0.service
参数 -
grub 中
console=ttyS0,115200
-
BIOS 中串口速率
-
ipmitool 中看到的 SOL 配置
四、使用 ipmitool 启用 SOL
-
查看 SOL 配置
ipmitool -I lanplus -H <BMC-IP> -U ADMIN -P <PASSWORD> sol info
-
激活 SOL 会话
ipmitool -I lanplus -H <BMC-IP> -U ADMIN -P <PASSWORD> sol activate
成功后显示:
[SOL Session operational. Use ~? for help]
-
常用 escape 命令
在连接中输入 ~?
可查看帮助:
~. - 断开连接
~B - 发送 BREAK
~C - 命令行模式
~~ - 发送 ~ 字符
五、常见问题及排查方法
问题 | 原因 | 解决方法 |
无输出 | 没有启动 serial-getty 服务 | 启动服务并设置为开机启动 |
无输出 | grub 未配置 console=ttyS0 | 修改 grub 并 update |
无输出 | BIOS 未启用串口重定向 | 检查 BIOS 设置 |
登录不了 | /etc/securetty 中无 ttyS0 | 添加 ttyS0 到该文件 |
会话中断 | BMC 断开连接或权限不足 | 检查网络、防火墙或使用 ADMIN 权限 |
提示已连接 | SOL 已在其他会话中被激活 | 使用 deactivate 命令或重启 BMC |
六、附录命令
-
关闭已存在的 SOL 会话
ipmitool -I lanplus -H <BMC-IP> -U ADMIN -P <PASSWORD> sol deactivate
-
检查 dmesg 是否识别串口
dmesg | grep tty
-
查看当前使用的串口设备
ls -l /dev/ttyS*
七、推荐串口配置参数示例(完整)
/etc/default/grub
GRUB_CMDLINE_LINUX="console=ttyS0,115200 console=tty1"
/etc/securetty
ttyS0
serial-getty
自动启动
sudo systemctl enable --now serial-getty@ttyS0.service