Serial Console

Serial Console 和 Terminal 工具支持通过串口与设备直接通信,用于初始或恢复配置,最多可支持 132 台设备。本页讲解用于硬件流控的 null-modem 线缆配置,包括无握手以及具备部分或完全握手能力的选项。

Serial Console(串行控制台)

Serial Console 和 Serial Terminal 是用于与通过串口互连的设备和其他系统通信的工具。串行终端用于监控和配置许多设备——包括调制解调器、网络设备(包括 MikroTik 路由器),以及任何可以连接到串行(异步)端口的设备。

Serial Console 功能用于配置直接访问配置设施(显示器/键盘和串口),它们主要用于初始或恢复配置。连接两台主机(如两台 PC,或两台路由器;不是调制解调器)需要一根特殊的 null-modem 线缆。从另一台计算机访问串行控制台需要一个终端仿真程序(例如 Windows 上的 HyperTerminal 或 Linux 上的 minicom)。路由器串口的默认设置为 115200 bits/s(x86 默认为 9600 bits/s)、8 个数据位、1 个停止位、无校验、硬件 (RTS/CTS) 流控。

Serial Terminal(管理侧)功能在以下情况下很有用:

  • 在山顶上,MikroTik 无线安装位置旁边是无法通过带内方式(通过 IP 网络的 telnet)管理的设备(包括交换机和 Cisco 路由器)。
  • 通过串口监控气象报告设备。
  • 连接到需要通过串行连接进行监控和管理的高速微波调制解调器。

MikroTik 的 serial-terminal 功能最多可以监控和控制 132 台(甚至更多)设备。

Serial Console 连接

设备之间的串行通信使用 RS232。它是计算机世界中最古老、最广泛使用的通信方法之一。它曾用于与调制解调器或其他外设 DTE/DCE 通信。在现代,串行通信的主要用途是 DTE/DTE 通信(数据终端设备),例如通过使用 null-modem 线缆。null modem 线缆有多种类型,其中一些可能根本无法与 RouterBoard 配合使用。

无握手的 Null Modem

这种线缆完全不使用握手引脚:

Side1 (DB9f)Side2 (DB9f)功能
23Rx ← Tx
32Tx → Rx
55GND

它允许在交叉连接的 Rx/Tx 线路上进行纯数据传输。使用这种线缆无法进行硬件流控。进行流控的唯一方式是使用 XOFF 和 XON 字符进行软件流控。

带回环握手的 Null Modem

无握手线缆的问题在于,当连接到启用了硬件流控的设备时,软件在检查调制解调器信号线时可能会挂起。

带回环握手的 Null modem 线缆解决了这个问题;它的主要目的是让定义良好的软件误以为有可用的握手:

Side1 (DB9f)Side2 (DB9f)功能
23Rx ← Tx
32Tx → Rx
55GND
1+4+6-DTR → CD + DSR
-1+4+6DTR → CD + DSR
7+8-RTS → CTS
-7+8RTS → CTS

使用这种线缆无法进行硬件流控。此外,如果远程软件不向 DTR 输出发送自己的就绪信号,通信会挂起。

带部分握手的 Null Modem

当启用流控同时又需要与最初 DTE/DCE 通信使用流控的方式保持兼容时,可以使用这种线缆。

不建议将此类型线缆与 RouterOS 配合使用。

Side1 (DB9f)Side2 (DB9f)功能
17+8RTS2 → CTS2 + CD1
23Rx ← Tx
32Tx → Rx
46DTR → DSR
55GND
64DSR ← DTR
7+81RTS1 → CTS1 + CD2

带完全握手的 Null Modem

与特殊软件配合使用,不应与 RouterOS 一起使用。

Side1 (DB9f)Side2 (DB9f)功能
23Rx ← Tx
32Tx → Rx
46DTR → DSR
55GND
64DSR ← DTR
78RTS → CTS
87CTS ← RTS

Null Modem 兼容性

以下汇总表可帮助你为应用选择合适的线缆。

无握手回环握手部分握手完全握手
端口功能有限的 RouterBoardYYN*N
功能完整的 RouterBoardYYYN

* - 可能仅在禁用硬件流控时才能工作

无握手回环握手部分握手完全握手
仅软件流控YY*Y**Y**
低速 DTE/DCE 兼容硬件流控NYY*N
高速 DTE/DCE 兼容硬件流控NYY**N
通过特殊软件进行高速通信NNY*Y

* - 作为替代方案可用

** - 可用但不推荐

RJ45 类型串口

这种类型的端口用于 RouterBOARD 2011、3011、4011、CCR1072、CCR1036 r2、CCR2xxx 和 CRS 系列设备,有时称为 "Cisco style" 串口。

RJ45 转 DB9 线缆引脚定义

信号Console 端口 (DTE) RJ-45RJ-45 交叉线缆 RJ-45 引脚适配器 DB-9 引脚适配器 DB-25 引脚信号
RTS1885CTS
DTR2766DSR
TxD3623RxD
Ground4557Ground
Ground5457Ground
RxD6332TxD
DSR72420DTR
CTS8174RTS

RB M33G 额外串行排针

对于 RBM33G,可以在 GPIO 引脚 U3_RXD、GND、U3_TXD 和 3V3 上附加一个额外的串行排针。

CCR 串行排针

Cloud Core Router 系列设备在 PCB 板上有一个串行排针,称为 J402 或 100

以下是该连接器的引脚定义:

Serial Terminal 用法

RouterOS 允许使用 /system/serial-terminal 命令与通过串口连接到路由器的设备和其他系统通信。所有键盘输入都会转发到串口,来自端口的所有数据都会输出到连接的设备。

首先,你必须有一个空闲的串口。如果设备只有一个串口(如所有 RouterBoard、WRAP/ALIX 板等),你必须禁用该串口上的系统控制台,才能把它用作 Serial Terminal 来连接其他设备(例如交换机、调制解调器):

/system/console/disable 0

请确保只是禁用控制台而不是移除它,因为如果你真的移除它,RouterOS 会在下次重启后重新创建控制台。

危险

在把设备连接到 RouterBoard 上的串口时需要注意的注意事项:

  • 按前述方式重新配置 RouterBoard 上的 Serial0 端口后,你将失去对 RouterOS 的串行控制台访问。这意味着如果你无法通过网络访问 RouterBoard,可能需要重置整个配置才能重新获得访问。

  • 重启 RouterBoard 时,引导加载程序 (RouterBOOT) 总是使用串行控制台(RouterBoard 上的 Serial0)发送一些启动消息,并提供对 RouterBOOT 菜单的访问。

    串口向所连接设备输出文本可能会使你连接的设备感到困惑。此外,在标准配置中,你可以通过按任意键进入 RouterBOOT 菜单。因此,如果你的串行设备在启动期间向 RouterBoard 的串口发送任何字符,RouterBoard 会进入 RouterBOOT 菜单,并且不会启动 RouterOS,除非你手动干预!

    你可以重新配置 RouterBOOT,使其仅在收到 <kbd>Delete</kbd> 字符时才进入 RouterBOOT 菜单——使用此设置可以减少重启时路由器卡住的可能性!

    或者,对于较新版本,可以使用"静默启动"功能来抑制串行接口上的任何输出,包括移除启动声音。

接下来,你必须根据所连接设备的串口设置来配置你的串口。使用以下命令把你的串口设置为 19200 波特 8N1。你需要使用什么设置取决于你连接的设备:

/port/set serial0 baud-rate=19200 data-bits=8 parity=none stop-bits=1

你也可以尝试让 RouterOS 猜测所需的波特率,通过设置

/port/set serial0 baud-rate=auto

如果尚未连接设备,现在是连接的时候了。通常,你需要一根 null modem 线缆(与以太网交叉线相同)。现在你已准备好:

/system/serial-terminal serial0

这会让你访问连接到 Serial0 端口的设备。<kbd>Control</kbd>+<kbd>A</kbd> 是前缀键,意味着你会进入一个小型 "菜单"。如果你需要向远程设备发送 <kbd>Control</kbd>+<kbd>A</kbd> 字符,请按两次 <kbd>Control</kbd>+<kbd>A</kbd>。

如果你想退出与串行设备的连接,请按 <kbd>Control</kbd>+<kbd>A</kbd>,然后按 <kbd>Q</kbd>。这会让你回到 RouterOS 控制台。

危险

不要以错误的速度连接设备,并避免转储二进制数据。

Special Login(特殊登录)

Special login 可用于访问通过串行线缆连接的另一台设备(例如交换机),方式是打开一个 telnet/ssh 会话,直接把你带到该设备(无需先登录 RouterOS)。

本演示使用两台 RouterBoard 和一台 PC。

路由器 R1 和 R2 通过串行线缆连接,一台 PC 通过以太网连接到 R1。要从 PC 通过串行线缆访问路由器 R2,你必须在 R1 上设置一个串行接口代理。这通过一个称为 special-login 的功能完成。

信息

默认情况下 console 绑定到串口。 首先,通过禁用 /system/console 菜单中的条目来解除 console 与串口的绑定:

[admin@MikroTik] /system/console> print
Flags: X - disabled, U - used, F - free
 #   PORT                                                                    TERM
 0 X serial0                                                                 vt102

接下来,添加一个新用户,在本例中为 serial,并把它绑定到串口:

[admin@MikroTik] > /user/add name=serial group=full
[admin@MikroTik] > /special-login/add user=serial port=serial0 disabled=no
[admin@MikroTik] > /special-login/print
Flags: X - disabled
 #   USER                                                                    PORT
 0   serial                                                                  serial0

现在你可以从 PC 访问 R2。

maris@bumba:/$ ssh serial@10.1.101.146

[Ctrl-A is the prefix key]
R2 4.0beta4
R2 Login:

[admin@R2] >

要退出 special login 模式,请按 <kbd>Control</kbd>+<kbd>A</kbd> 和 <kbd>Q</kbd>:

[admin@MikroTik] >
[Q - quit connection]      [B - send break]
[A - send Ctrl-A prefix]   [R - autoconfigure rate]

Connection to 10.1.101.146 closed.

危险

路由器重启后,如果连接着串行线缆,路由器可能会卡在 Bootloader 主菜单。 要解决此问题,你需要把进入 bootloader 主菜单的按键从任意键改为 <kbd>Delete</kbd>:

  • 进入 bootloader 菜单。
  • 选择 k 进入 boot key 选项。
  • 选择 2 把按键改为 <kbd>Delete</kbd>。
What do you want to configure?
d - boot delay
k - boot key
s - serial console
n - silent boot
o - boot device
u - cpu mode
f - cpu frequency
r - reset booter configuration
e - format nand
g - upgrade firmware
i - board info
p - boot protocol
b - booter options
t - call debug code
l - erase license
x - exit setup
your choice: k - boot key

Select key which will enter setup on boot:
 * 1 - any key
   2 - <Delete> key only

your choice: 2