Linux 服务器通过串口控制台进行管理的全面指南
1. 调制解调器的选择
在为 Linux 服务器选择调制解调器时,硬件控制器调制解调器是更好的选择,尽管它们比 Winmodems/软调制解调器更贵。使用硬件控制器调制解调器的优点很多,比如无需为驱动程序烦恼,能直接使用。外部调制解调器有闪烁的指示灯,便于故障排查,而且具有便携性;内部调制解调器则能节省空间。另外,一个重要的特性是在停电后能保留设置,通常是通过非易失性随机存取存储器(NVRAM)实现。廉价调制解调器在断电重启后会丢失设置,导致拨号时无响应。
推荐 U.S. Robotics 调制解调器,价格在 80 美元到 300 美元之间。以下型号与 Linux 配合使用效果很好:
- USR5686 56K 外置传真调制解调器(支持 V.92)
- USR5610B 56K V.92 高性能专业调制解调器
- USR3453 Courier 56K 商务调制解调器(支持 V.Everything 和 V.92)
- USR5630 56K 外置传真调制解调器(支持 V.92)
- USR5631 56K 外置传真调制解调器(支持 V.92)
- USR0839 Sportster 33.6 外置传真调制解调器
对于 Linux 串口控制台管理,低价型号就能满足需求,因为只需要基本的调制解调器功能,如接听电话、保持数据传输和挂断。高端型号(如 USR Courier)则具备有用的安全功能,如回拨、来电显示和授权来电列表,可防止攻击者到达登录提示界面。
2. 使用 LILO 配置无头服务器
当服务器准备好无头运行,且使用 LILO 作为引导加载程序时,可按以下步骤配置以接受来自直接连接的串口控制台的登录,并在从控制台重启时显示引导菜单:
1.
设置默认运行级别
:编辑
/etc/inittab
,使系统以文本运行级别启动。若服务器未安装 X Windows,可跳过此步骤。示例如下:
# The default runlevel.
id:3:initdefault:
-
打开串口以接受登录
:同样在
/etc/inittab中进行操作。示例如下:
# Example how to put a getty on a serial line (for a terminal)
#
T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
取消要连接的行的注释(这里使用
ttyS0
),确保终端仿真为
vt100
或
vt102
,若不是则进行更改。保存更改后,重启
init
:
# init q
-
Fedora Linux 用户的额外步骤
:
-
编辑
/etc/sysconfig/init,禁用 ANSI 颜色和交互式启动:
-
编辑
BOOTUP=serial
PROMPT=no
- 禁用 Kudzu,因为它运行时会重置串口,导致断开连接。编辑 `/etc/sysconfig/kudzu`:
SAFE=yes
-
编辑服务器引导加载程序
:编辑
/etc/lilo.conf,告知内核将ttyS0(或使用的其他串口)设为默认串口控制台。示例如下:
## /etc/lilo.conf
#Global section
boot=/dev/hda
map=/boot/map
install=menu
prompt
timeout=100
serial=0,9600n8
menu-title=" Webserver 1 "
default="CentOS 5-serial"
#boot stanzas
image=/boot/vmlinuz-2.6.18.ELsmp
label="CentOS 5"
initrd=/boot/initrd-2.6.18.ELsmp.img
read-only
root=LABEL=/
image=/boot/vmlinuz-2.6.18.EL
label="CentOS 5- serial"
initrd=/boot/initrd-vmlinuz-2.6.18.ELsmp.img
read-only
root=LABEL=/
append="console=ttyS0,9600n8"
删除或注释掉提及的任何启动画面图像行,不要启用启动消息。
5.
写入主引导记录(MBR)
:
# /sbin/lilo -v
- 测试 :多次重启进行测试,在从远程串口控制台成功连接之前,不要断开显示器和键盘。
3. 使用 GRUB 配置无头服务器
若使用 GRUB 作为引导加载程序,配置步骤如下:
1.
设置默认运行级别
:编辑
/etc/inittab
,使系统以文本模式启动(Debian 用户可参考后续内容)。示例如下:
# The default runlevel.
id:3:initdefault:
-
打开串口以接受登录
:同样在
/etc/inittab中操作,取消要连接的行的注释(这里使用ttyS0),确保终端仿真为vt100或vt102,若不是则进行更改。保存更改后,重启init:
# init q
-
Fedora Linux 用户的额外步骤
:
-
编辑
/etc/sysconfig/init,禁用 ANSI 颜色和交互式启动:
-
编辑
BOOTUP=serial
PROMPT=no
- 禁用 Kudzu,编辑 `/etc/sysconfig/kudzu`:
SAFE=yes
-
编辑 GRUB 配置文件
:编辑
/boot/grub/grub.conf,告知内核将ttyS0(或使用的其他串口)设为默认系统控制台。示例如下:
#/boot/grub/grub.conf
#Global section
default 1
timeout 10
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 serial
#boot stanzas
title Debian-Sarge
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-16 root=/dev/hda2 ro
initrd /boot/initrd.img-2.6.20-16
title Debian-Sarge, serial
root (hd0,0)
kernel /boot/vmlinuz-2.6.20-16 root=/dev/hda2 ro console=ttyS0,9600n8
initrd /boot/initrd.img-2.6.20-16
删除或注释掉提及的任何启动画面图像行。
5.
测试
:多次重启进行测试,在从远程串口控制台成功连接之前,不要断开显示器和键盘。
4. Debian 系统启动到文本模式
Debian 系统默认会自动启动 X Windows,若要配置为启动到纯文本会话,可按以下步骤操作:
1.
确定显示管理器
:使用以下命令查看正在运行的显示管理器:
$ ps ax | grep dm
示例输出显示 Gnome 显示管理器(GDM)正在运行。
2.
从所有运行级别中移除显示管理器
:
# update-rc.d -f gdm remove
- 设置显示管理器的启动和停止运行级别 :让 GDM 在运行级别 5 启动,在其他级别停止:
# update-rc.d gdm start 99 5 . stop 01 0 1 2 3 4 6 .
-
设置默认运行级别
:编辑
/etc/inittab,使系统以文本模式启动。Debian 的默认运行级别是 2,可保持此传统:
# The default runlevel.
id:2:initdefault:
- 完成服务器设置 :参考前面使用 LILO 或 GRUB 配置无头服务器的步骤完成设置。
5. 设置串口控制台
当有一台 Linux 笔记本电脑或工作站准备用作串口控制台时,可按以下步骤进行配置和使用通信软件,以直接连接到无头服务器:
1.
准备所需物品
:
- DB9 串口(很多笔记本电脑没有串口,可使用 USB 转串口连接器)
- 零调制解调器电缆
- Minicom 串口通信程序
2.
配置 Minicom
:
- 启动 Minicom 并进入设置模式:
# minicom -s
- 选择 `Serial port setup`,从菜单中选择要更改的选项字母,按 `Return` 回到“Change which setting?”屏幕:
-------------------------------------------
| A - Serial Device : /dev/ttyS0
| B - Lockfile Location : /var/lock
| C - Callin Program :
| D - Callout Program :
| E - Bps/Par/Bits : 9600 8N1
| F - Hardware Flow Control : Yes
| G - Software Flow Control : No
|
| Change which setting?
-------------------------------------------
- 再次按 `Return` 回到主菜单,选择 `Modem and dialing` 选项,确保 `Init string` 和 `Reset string` 设置为空。
- 选择 `Save setup as dfl` 使此设置成为默认,然后退出 Minicom。
- 连接系统并启动 Minicom :使用零调制解调器电缆连接两台机器,然后启动 Minicom:
# minicom
登录到服务器即可开始操作。退出时,按
Ctrl - A
,
X
。
6. 串口速度和文件权限
-
串口速度
:Minicom 设置中
E - Bps/Par/Bits的默认波特率值在不同 Linux 发行版中可能为 9600 到 115200。使用零调制解调器电缆连接时,所有配置(引导加载程序、/etc/inittab和 Minicom)中的波特率设置必须一致。9600 是最安全的选择,也可尝试更高速度(如 38400,这是标准的 Linux 控制台速度;若不行,可尝试 19200)。使用setserial命令可显示 UART 的速度:
$ setserial -g /dev/ttyS0
可能的串口速度如下表所示:
| 速度(bps) |
| ---- |
| 110 |
| 300 |
| 1200 |
| 2400 |
| 4800 |
| 9600 |
| 19200 |
| 38400 |
| 57600 |
| 115200 |
-
文件权限
:
-
以 root 用户登录
:若服务器不允许以 root 用户登录,需在服务器的
/etc/securetty中添加条目:
-
以 root 用户登录
:若服务器不允许以 root 用户登录,需在服务器的
# /etc/securetty: list of terminals on which root is allowed to login.
# See securetty(5) and login(1).
console
# for people with serial port consoles
ttyS0
- **以非特权用户连接**:若无法以非特权用户连接,说明 `/dev/ttyS0` 仅限于 root 用户。可先检查权限和所有权:
$ ls -al /dev/ttyS0
若
/dev/ttyS0
属于
dialout
组,只需将授权用户添加到该组。不建议将
/dev/ttyS0
的模式设置为 777,因为这从安全角度来看不是好主意,将用户添加到组更安全。
以下是使用 mermaid 绘制的设置串口控制台的流程图:
graph LR
A[准备物品] --> B[配置 Minicom]
B --> C[连接系统]
C --> D[启动 Minicom]
D --> E[登录服务器]
通过以上步骤,可完成 Linux 服务器通过串口控制台的管理配置,实现对服务器的远程操作和管理。
Linux 服务器通过串口控制台进行管理的全面指南
7. 调制解调器的使用注意事项
在使用调制解调器时,除了前面提到的选择要点,还有一些使用过程中的注意事项。
-
驱动问题
:硬件控制器调制解调器的一大优势就是无需为驱动程序烦恼,但在实际使用中,仍可能遇到一些特殊情况。例如,在某些较新的 Linux 内核版本中,可能会出现兼容性问题。如果遇到调制解调器无法正常工作的情况,首先要检查系统日志,看是否有与驱动相关的错误信息。
-
电源管理
:具有保留设置功能(通常通过 NVRAM 实现)的调制解调器在电源管理方面表现更好。但在频繁停电或电源不稳定的环境中,即使有 NVRAM,也可能出现设置丢失的情况。因此,建议使用不间断电源(UPS)来保护调制解调器和服务器,确保设备的稳定运行。
-
性能测试
:在选择调制解调器后,建议进行性能测试。可以使用一些网络测试工具,如 iperf 等,来测试调制解调器的数据传输速度和稳定性。测试时,要注意选择合适的测试环境,避免其他网络干扰因素的影响。
8. 配置过程中的常见问题及解决方法
在配置 Linux 服务器通过串口控制台进行管理的过程中,可能会遇到一些常见问题,以下是一些问题及解决方法:
| 问题描述 | 可能原因 | 解决方法 |
| ---- | ---- | ---- |
| 无法通过串口登录服务器 | 串口配置错误、波特率不匹配、文件权限问题 | 检查
/etc/inittab
和引导加载程序的配置,确保波特率一致;检查
/etc/securetty
和
/dev/ttyS0
的权限 |
| 调制解调器无响应 | 调制解调器设置丢失、硬件故障 | 检查调制解调器的设置,确保在停电后设置没有丢失;检查硬件连接是否正常,尝试更换调制解调器 |
| Minicom 无法启动或无法连接到服务器 | Minicom 配置错误、串口设备不存在 | 检查 Minicom 的配置,确保串口设备和波特率设置正确;检查串口设备是否存在,可使用
ls /dev/ttyS*
命令查看 |
| 服务器启动时出现错误信息 | 引导加载程序配置错误、内核参数错误 | 检查
/etc/lilo.conf
或
/boot/grub/grub.conf
的配置,确保内核参数正确;参考系统日志,查找具体的错误信息 |
9. 远程管理的安全考虑
通过串口控制台进行远程管理时,安全问题至关重要。以下是一些安全建议:
-
使用强密码
:为服务器的所有用户账户设置强密码,包括 root 用户。强密码应包含字母、数字和特殊字符,长度不少于 8 位。
-
限制访问权限
:只允许授权用户通过串口控制台访问服务器。可以通过
/etc/securetty
和用户组管理来限制访问权限。
-
定期更新系统
:及时更新服务器的操作系统和软件包,以修复已知的安全漏洞。可以使用系统自带的更新工具,如
yum update
或
apt-get update
等。
-
使用加密连接
:如果可能,使用加密连接来保护串口通信。可以使用 SSH 隧道或其他加密协议来加密数据传输。
10. 扩展和优化
在完成基本的配置后,还可以对串口控制台管理进行扩展和优化:
-
多串口支持
:如果服务器有多个串口,可以配置多个串口控制台,以实现多用户同时访问或备用连接。配置方法与前面介绍的类似,只需在相应的配置文件中添加或修改串口设备信息。
-
自动化脚本
:编写自动化脚本可以简化管理过程。例如,可以编写一个脚本,在服务器启动时自动启动 Minicom 并连接到指定的串口。以下是一个简单的示例脚本:
#!/bin/bash
minicom -S /dev/ttyS0
将上述脚本保存为一个文件,如
start_minicom.sh
,并赋予执行权限:
chmod +x start_minicom.sh
然后可以将该脚本添加到系统的启动脚本中,使其在服务器启动时自动执行。
-
日志监控
:使用日志监控工具,如
logwatch
或
rsyslog
等,监控串口控制台的日志信息。可以及时发现异常登录或其他安全事件,并采取相应的措施。
以下是使用 mermaid 绘制的远程管理安全流程的流程图:
graph LR
A[设置强密码] --> B[限制访问权限]
B --> C[定期更新系统]
C --> D[使用加密连接]
D --> E[安全远程管理]
通过以上的扩展和优化,可以提高 Linux 服务器通过串口控制台管理的效率和安全性,满足不同场景下的管理需求。
超级会员免费看
11

被折叠的 条评论
为什么被折叠?



