适用于 Windows 的 Azure 串行控制台

适用于:✔️ Windows VM

注意

本文有帮助吗? 你的输入对我们很重要。 请使用此页上的 “反馈 ”按钮告诉我们本文为你工作得有多好,或者我们如何改进它。

使用 Azure 门户中的串行控制台可以访问适用于 Azure 虚拟机 (VM) 和虚拟机规模集实例的基于文本的控制台。 此串行连接连接到 VM 或虚拟机规模集实例的 COM1 串行端口,为用户提供访问权限,而不管它的网络或操作系统状态如何。 串行控制台只能通过使用 Azure 门户来访问,并且仅供具有参与者访问角色或高于 VM 或虚拟机规模集的用户使用。

串行控制台的工作方式与 VM 和虚拟机规模集实例的工作方式相同。 在本文档中,除非另有说明,否则所有对 VM 的提及都将隐式包含虚拟机规模集实例。

串行控制台在全局 Azure 区域和 Azure 政府 的公共预览版中正式发布。 它在 Azure 中国云中尚不可用。

有关适用于 Linux 的串行控制台文档,请参阅适用于 Linux 的 Azure 串行控制台

注意

串行控制台与托管启动诊断存储帐户兼容。

先决条件

  • VM 或虚拟机规模集实例必须使用资源管理器部署模型。 不支持经典部署。

  • 使用串行控制台的 Azure 帐户必须对 VM 和启动诊断存储帐户拥有虚拟机参与者角色

  • VM 或虚拟机规模集实例必须具有基于密码的用户。 可以使用 VM 访问扩展的重置密码功能创建一个帐户。 从“帮助”部分选择“重置密码”。

  • 适用于虚拟机规模集实例的 VM 必须启用启动诊断

    诊断设置下的“启动诊断”选项的屏幕截图。

为 Windows Server 启用串行控制台功能

注意

如果在串行控制台中没有看到任何内容,请确保在 VM 或虚拟机规模集上启用了启动诊断。

在自定义或更低版本的映像中启用串行控制台

Azure 上较新的 Windows Server 映像默认情况下已启用特殊管理控制台 (SAC)。 SAC 在服务器版本的 Windows 上受支持,但在客户端版本(例如 Windows 10、Windows 8 或 Windows 7)上不可用。

对于较旧的 Windows Server 映像(在 2018 年 2 月之前创建),可以通过 Azure 门户的运行命令功能自动启用串行控制台。 在 Azure 门户中,选择“运行命令”,然后从列表中选择名为“EnableEMS”的命令

Azure 门户的“运行”命令页的屏幕截图,其中突出显示了 EnableEMS 命令。

或者,若要为 2018 年 2 月之前创建的 Windows VM/虚拟机规模集手动启用串行控制台,请执行以下步骤:

  1. 通过使用远程桌面连接到 Windows 虚拟机

  2. 从管理命令提示符运行以下命令:

    • 如果使用的是 PowerShell,请运行 bcdedit /ems {current} onbcdedit /ems '{current}' on
    • bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. 重新启动系统以启用 SAC 控制台。

    动画 GIF 显示重新启动系统并启用 SAC 控制台的过程。

如果需要,也可以使 SAC 脱机:

  1. 将想要为其配置 SAC 的 Windows 磁盘作为数据磁盘附加到现有 VM。

  2. 从管理命令提示符运行以下命令:

    • bcdedit /store <mountedvolume>\boot\bcd /ems {default} on
    • bcdedit /store <mountedvolume>\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200

如何知道是否已启用 SAC?

如果未启用 SAC,则串行控制台将不会显示 SAC 提示符。 在某些情况下,会显示 VM 运行状况信息,而在其他情况下则为空白。 如果使用的是 2018 年 2 月之前创建的 Windows Server 映像,则可能无法启用 SAC。

在串行控制台中启用 Windows 启动菜单

如果需要让 Windows 启动加载程序提示显示在串行控制台中,可以将以下附加选项添加到启动配置数据中。 有关详细信息,请参阅 bcdedit

  1. 通过使用远程桌面连接到 Windows VM 或虚拟机规模集实例。

  2. 从管理命令提示符运行以下命令:

    • bcdedit /set {bootmgr} displaybootmenu yes
    • bcdedit /set {bootmgr} timeout 10
    • bcdedit /set {bootmgr} bootems yes
  3. 重新启动系统以启用启动菜单

注意

为显示的启动管理器菜单所设置的超时值会影响 OS 启动时间。 如果你认为 10 秒的超时值太短或过长,请将其设置为其他值。

使用串行控制台

在串行控制台中使用 CMD 或 PowerShell

  1. 连接到串行控制台。 如果成功连接,提示为 SAC>

    用于连接到串行控制台的命令输出的屏幕截图,其中提示 SAC>。

  2. 输入 cmd 以创建具有 CMD 实例的通道。

  3. 输入 ch -si 1 或按 <esc>+<tab> 快捷键切换到运行 CMD 实例的通道。

  4. 按 Enter,然后输入具有管理权限的登录凭据

  5. 输入有效凭据后,CMD 实例随即打开。

  6. 要启动 PowerShell 实例,请在 CMD 实例中输入 PowerShell,然后按 Enter

    启动 PowerShell 命令的输出的屏幕截图。

使用串行控制台进行 NMI 调用

不可屏蔽的中断 (NMI) 旨在创建虚拟机上的软件不会忽略的信号。 过去,NMI 用来监视要求实现特定响应时间的系统上的硬件问题。 现在,程序员和系统管理员通常使用 NMI 作为用来对未响应的系统进行调试或故障排除的机制。

可以使用命令栏上的键盘图标通过串行控制台向 Azure 虚拟机发送 NMI。 传送 NMI 后,虚拟机配置将控制系统的响应方式。 可以将 Windows 配置为在收到 NMI 时崩溃并创建内存转储文件。

命令栏中的“发送不可屏蔽中断”按钮的屏幕截图。

有关配置 Windows 在收到 NMI 时创建故障转储文件的信息,请参阅如何使用 NMI 生成故障转储文件

在串行控制台中使用函数密钥

针对 Windows VM 中的串行控制台的使用情况,将启用函数密钥。 利用串行控制台下拉列表中的 F8 可以很方便地进入高级启动设置菜单,但串行控制台与所有其他功能键兼容。 可能需要在键盘上按 Fn + F1(或 F2、F3 等),具体取决于所使用的串行控制台的计算机

在串行控制台中使用 WSL

针对 Windows Server 2019 或更高版本,已启用 Windows Subsystem for Linux (WSL),因此如果运行 Windows Server 2019 或更高版本,也可以启用 WSL 以用于串行控制台。 这对于熟悉 Linux 命令的用户可能有所帮助。 有关为 Windows Server 启用 WSL 的说明,请参阅安装指南

在串行控制台中重启 Windows VM/虚拟机规模集实例

可以通过在串行控制台中导航到电源按钮并单击“重启 VM”来重启 VM。 这将发起 VM 重启,你将在 Azure 门户中看到有关重启的通知。

如果希望在不离开串行控制台体验的情况下访问启动菜单,这是非常有用的。

动画 GIF 显示在串行控制台中重启 VM 的过程。

禁用串行控制台

默认情况下,所有订阅都启用了串行控制台访问。 可以在订阅级别或 VM/虚拟机规模集级别禁用串行控制台。 有关详细说明,请访问启用和禁用 Azure 串行控制台

串行控制台安全性

将串行控制台与启用自定义启动诊断存储帐户防火墙配合使用

串行控制台使用在其连接工作流中为启动诊断配置的存储帐户。 在此存储帐户上启用防火墙时,必须将串行控制台服务 IP 添加为排除项。 为此,请按照下列步骤进行操作:

  1. 导航到已启用的自定义启动诊断存储帐户防火墙的设置。

    注意

    若要确定为 VM 启用哪个存储帐户,请从“支持 + 故障排除”部分选择“启动诊断>设置”。

  2. 根据 VM 的地理位置将串行控制台服务 IP 添加为防火墙排除项。

    下表列出了需要根据 VM 所在的区域或地理位置作为防火墙排除项的 IP。 这是 SerialConsole 服务标记中使用的串行控制台 IP 地址的完整列表的子集。 可以通过 SerialConsole 服务标记限制对启动诊断存储帐户的访问。 服务标记没有区域分隔。 服务标记上的流量仅为入站流量,串行控制台不会生成到客户可控目标的流量。 尽管 Azure 存储帐户防火墙目前不支持服务标记, 但可以通过编程方式使用 SerialConsole 服务标记来确定 IP 列表。 有关服务标记的详细信息,请参阅虚拟网络服务标记

    注意

    只有一个区域(例如意大利北部)的 VM 不支持串行控制台的存储帐户防火墙。

    IP 地址 区域 地区
    20.205.69.28 东亚、东南亚 AsiaPacific
    20.195.85.180 东亚、东南亚 AsiaPacific
    20.53.53.224 澳大利亚中部、澳大利亚中部 2、澳大利亚东部、澳大利亚东南部 澳大利亚
    20.70.222.112 澳大利亚中部、澳大利亚中部 2、澳大利亚东部、澳大利亚东南部 澳大利亚
    191.234.136.63 巴西南部、巴西东南部 巴西
    20.206.0.194 巴西南部、巴西东南部 巴西
    52.228.86.177 加拿大中部、加拿大东部 加拿大
    52.242.40.90 加拿大中部、加拿大东部 加拿大
    20.45.242.18 Canary (EUAP)
    20.51.21.252 Canary (EUAP)
    52.146.139.220 欧洲北部、欧洲西部 欧洲
    20.105.209.72 欧洲北部、欧洲西部 欧洲
    20.111.0.244 法国中部、法国南部 法国
    52.136.191.10 法国中部、法国南部 法国
    51.116.75.88 德国北部、德国中西部 德国
    20.52.95.48 德国北部、德国中西部 德国
    20.192.168.150 印度中部、印度南部、印度西部 印度
    20.192.153.104 印度中部、印度南部、印度西部 印度
    20.43.70.205 日本东部、日本西部 日本
    20.189.228.222 日本东部、日本西部 日本
    20.200.196.96 韩国中部、韩国南部 韩国
    52.147.119.29 韩国中部、韩国南部 韩国
    20.100.1.184 挪威西部、挪威东部 挪威
    51.13.138.76 挪威西部、挪威东部 挪威
    20.208.4.98 瑞士北部、瑞士西部 瑞士
    51.107.251.190 瑞士北部、瑞士西部 瑞士
    20.45.95.66 阿拉伯联合酋长国中部、阿拉伯联合酋长国北部 阿拉伯联合酋长国
    20.38.141.5 阿拉伯联合酋长国中部、阿拉伯联合酋长国北部 阿拉伯联合酋长国
    20.90.132.144 英国南部、英国西部 UnitedKingdom
    20.58.68.62 英国南部、英国西部 UnitedKingdom
    51.12.72.223 瑞典中部、瑞典南部 瑞典
    51.12.22.174 瑞典中部、瑞典南部 瑞典
    20.98.146.84 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部、美国西部 美国
    20.98.194.64 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部、美国西部 美国
    20.69.5.162 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部、美国西部 美国
    20.83.222.102 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部、美国西部 美国
    20.83.222.100 美国中部、美国东部 2、美国东部、美国中北部、美国中南部、美国西部 2、美国西部 3、美国中西部、美国西部、美国西部 美国
    20.141.10.131 所有美国政府云区域 UsGov
    52.235.252.253 所有美国政府云区域 UsGov
    143.64.47.39 中国北部 3 中国
    163.228.70.115 中国东部 3 中国

    重要

    • 需要允许的 IP 特定于 VM 所在的区域。 例如,部署在北欧区域的虚拟机需要向欧洲地理位置的存储帐户防火墙添加以下 IP 排除项:52.146.139.220 和 20.105.209.72。 查看上表,查找区域和地理位置的正确 IP。
    • 在当前的串行控制台操作中,Web 套接字将打开到终结点,例如 <region>.gateway.serialconsole.azure.com。 确保允许组织中的浏览器客户端使用终结点 serialconsole.azure.com 。 在美国政府(Fairfax)云中,终结点后缀为 serialconsole.azure.us

    有关如何将 IP 添加到存储帐户防火墙的详细信息,请参阅配置Azure 存储防火墙和虚拟网络:管理 IP 网络规则

成功将 IP 地址添加到存储帐户防火墙后,请重试与 VM 的串行控制台连接。 如果仍存在连接问题,请验证 VM 区域的存储帐户防火墙中是否排除了正确的 IP 地址。

访问安全性

只允许对虚拟机拥有虚拟机参与者或更高权限访问角色的用户访问串行控制台。 如果Microsoft Entra 租户需要多重身份验证(MFA),则访问串行控制台也需要 MFA,因为串行控制台的访问是通过Azure 门户

通道安全性

使用 TLS 1.2 或更高版本在传输中加密发送的所有数据。

数据存储和加密

Azure 串行控制台不会查看、检查或存储传入和传出虚拟机串行端口的任何数据。 因此,没有静态加密的数据。

若要确保对运行 Azure 串行控制台的虚拟机分页到磁盘的任何内存中数据进行加密,请使用基于主机的 加密。 默认情况下,为所有 Azure 串行控制台连接启用基于主机的加密。

数据驻留

Azure 门户或 Azure CLI 充当虚拟机串行端口的远程终端。 由于这些终端无法直接连接到通过网络托管虚拟机的服务器,因此中间服务网关用于代理终端流量。 Azure 串行控制台不会存储或处理此客户数据。 传输数据的中间服务网关将驻留在虚拟机的地理位置中。

审核日志

对串行控制台的所有访问目前都会记录在虚拟机的启动诊断日志中。 Azure 虚拟机管理员拥有并可控制这些日志的访问权限。

注意

不会记录控制台的访问密码。 但是,如果在控制台中运行的命令包含或输出密码、机密、用户名或其他任何形式的个人身份信息 (PII),则这些信息将写入到 VM 启动诊断日志。 这些信息是在实现串行控制台的回滚功能过程中连同其他所有可见文本一起写入的。 这些日志不断循环,只有对诊断存储帐户拥有读取权限的个人才能访问它们。 但是,我们建议遵循有关将远程桌面用于涉及机密和/或 PII 的任何操作的最佳做法。

并发使用

如果某个用户已连接到串行控制台,而另一个用户已成功请求访问同一个虚拟机,则第一个用户将断开连接,第二用户此时已连接到同一会话。

注意

这意味着不会注销已断开连接的用户。断开连接时强制注销(使用 SIGHUP 或类似机制)的功能仍在路线图中。 对于 Windows,SAC 中会启用自动超时;对于 Linux,可以配置终端超时设置。

辅助功能

可访问性是 Azure 串行控制台的重点。 为此,我们已确保有视力障碍或听力障碍的用户以及可能无法使用鼠标的用户能够访问串行控制台。

键盘导航

使用键盘上的 Tab 键在 Azure 门户中的串行控制台界面上导航。 屏幕上会突出显示你的位置。 若要使焦点离开串行控制台窗口,请在键盘上按 Ctrl+F6

结合使用串行控制台与屏幕阅读器

串行控制台内置了屏幕阅读器支持。 在打开屏幕阅读器的情况下导航,屏幕阅读器可大声读出当前所选按钮的替换文字。

要访问串行控制台的常见场景

场景 串行控制台中的操作
错误的防火墙规则 访问串行控制台,并修复 Windows 防火墙规则。
文件系统损坏/检查 访问串行控制台并恢复文件系统。
RDP 配置问题 访问串行控制台并更改设置。 有关详细信息,请参阅 RDP 文档
网络锁定系统 通过 Azure 门户访问串行控制台以管理系统。 Windows 命令:CMD 和 PowerShell中列出了一些网络命令。
与引导加载程序交互 通过串行控制台访问 BCD。 有关详细信息,请参阅在串行控制台中启用 Windows 启动菜单

已知问题

我们注意到,串行控制台和 VM 的操作系统存在一些问题。 下面是这些问题和 Windows VM 的缓解措施的列表。 这些问题和缓解措施既适用于 VM,又适用于虚拟机规模集实例。 如果这些错误与你看到的错误不匹配,请参阅常见串行控制台错误处的常见串行控制台服务错误。

问题 缓解操作
在出现连接标题后按 Enter 不会显示登录提示。 如果运行的自定义 VM、强化设备或启动配置导致 Windows 无法正确连接到串行端口的启动配置,则可能会发生此错误。 如果运行的是 Windows 10 VM,也会发生此错误,因为只有 Windows Server VM 配置为启用 EMS。
连接到 Windows VM 时,仅显示运行状况信息 如果尚未为 Windows 映像启用特殊管理控制台,则会发生此错误。 有关如何在 Windows VM 上手动启用 SAC 的说明,请参阅在自定义或更低版本的映像中启用串行控制台
SAC 不会占用浏览器中的整个串行控制台区域 这是 Windows 和终端模拟器的已知问题。 我们正在与两个团队跟踪此问题,但目前没有缓解措施。
如果已启用内核调试,则无法在 SAC 提示符下键入内容。 通过 RDP 连接到 VM,并从权限提升的命令提示符运行 bcdedit /debug {current} off。 如果无法建立 RDP 连接,可将 OS 磁盘附加到另一个 Azure VM,并且在该磁盘附加为数据磁盘时通过运行 bcdedit /store <drive letter of data disk>:\boot\bcd /debug <identifier> off 对其进行修改,然后换回磁盘。
如果原始内容具有重复的字符,则粘贴到 SAC 结果中的 PowerShell 将产生第三个字符。 解决方法是运行 Remove-Module PSReadLine 以从当前会话中卸载 PSReadLine 模块。 此操作不会删除或卸载该模块。
某些键盘输入会生成奇怪的 SAC 输出(例如 [A、[3~) SAC 提示符不支持 VT100 转义序列。
无法粘贴长字符串。 串行控制台将粘贴到终端的字符串长度限制为 2048 个字符,以防止串行端口带宽过载。

常见问题解答

问: 如何发送反馈?

A. 可以通过在 https://aka.ms/serialconsolefeedback 中创建 GitHub 问题来提供反馈。 也可以通过 azserialhelp@microsoft.com,或者 https://feedback.azure.com 上的虚拟机类别发送反馈(不太建议)。

问: 串行控制台是否支持复制/粘贴?

A. 是的。 可以使用 Ctrl+Shift+CCtrl+Shift+V 复制并粘贴到终端。

问: 谁可以为我的订阅启用或禁用串行控制台?

A. 若要在订阅范围级别启用或禁用串行控制台,必须拥有订阅的写入权限。 拥有写入权限的角色包括管理员或所有者角色。 自定义角色也可能具有写入权限。

问: 谁可以访问 VM 的串行控制台?

A. 必须拥有 VM 的“虚拟机参与者”或更高的角色才能访问该 VM 的串行控制台。

问: 我的串口控制台未显示任何内容,该怎么办?

A. 你的映像可能配置错误,无法进行串行控制台访问。 有关配置映像以启用串行控制台的详细信息,请参阅在自定义或更低版本的映像中启用串行控制台

问: 串行控制台是否可用于虚拟机规模集?

A. 是的! 请参阅 串行控制台入门。

后续步骤

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区