适用于 Linux 的 Azure 串行控制台

注意

本文中引用的 CentOS 是 Linux 发行版, (EOL) 将达到生命周期结束。 相应地考虑使用和计划。 有关详细信息,请参阅 CentOS 生命周期终止指南

Azure 门户中的串行控制台提供对 Linux 虚拟机 (VM) 和虚拟机规模集实例的基于文本的控制台的访问权限。 此串行连接连接到 VM 或虚拟机规模集实例的 ttys0 串行端口,提供独立于网络或操作系统状态的访问。 只能使用 Azure 门户访问串行控制台,并且仅允许那些对 VM 或虚拟机规模集具有“参与者”或更高访问角色的用户。

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

串行控制台已在全球 Azure 区域正式发布,并在 Azure 政府 中以公共预览版提供。 Azure 中国云中尚不可用。

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

注意

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

先决条件

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

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

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

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

    Azure 门户中“诊断设置”页的屏幕截图。“启动诊断”选项已启用。

  • 有关特定于 Linux 分发的设置,请参阅 串行控制台 Linux 分发可用性

  • 必须在 上 ttys0为串行输出配置 VM 或虚拟机规模集实例。 这是 Azure 映像的默认值,但需要在自定义映像上加倍检查。 详细信息如下

注意

串行控制台需要具有配置的密码的本地用户。 仅使用 SSH 公钥配置的 VM 或虚拟机规模集将无法登录到串行控制台。 若要创建具有密码的本地用户,请使用 VMAccess 扩展(通过在Azure 门户中选择“重置密码”在门户中提供),并使用密码创建本地用户。 还可以 通过使用 GRUB 启动到单用户模式来重置帐户中的管理员密码。

串行控制台 Linux 分发可用性

若要使串行控制台正常工作,必须将来宾操作系统配置为将控制台消息读取和写入串行端口。 默认情况下 ,大多数认可的 Azure Linux 分发 版都配置了串行控制台。 在Azure 门户的“帮助”部分中选择“串行控制台”可访问串行控制台。

注意

如果在串行控制台中看不到任何内容,请确保在 VM 上启用了启动诊断。 按 Enter 通常可修复串行控制台中未显示任何内容的问题。

分布 串行控制台访问
Red Hat Enterprise Linux 默认情况下启用串行控制台访问。
Centos 默认情况下启用串行控制台访问。
Debian 默认情况下启用串行控制台访问。
Ubuntu 默认情况下启用串行控制台访问。
CoreOS 默认情况下启用串行控制台访问。
Suse Azure 上可用的 SLES 映像默认启用串行控制台访问。
Oracle Linux 默认情况下启用串行控制台访问。

自定义 Linux 映像

若要为自定义 Linux VM 映像启用串行控制台,请在 文件 /etc/inittab 中启用控制台访问,以便在 上运行 ttyS0终端。 例如:S0:12345:respawn:/sbin/agetty -L 115200 console vt102。 你可能还需要在 ttyS0 上生成 getty。 这可以通过 完成 systemctl start serial-getty@ttyS0.service

还需要添加 ttys0 作为串行输出的目标。 有关配置自定义映像以使用串行控制台的详细信息,请参阅 在 Azure 中创建和上传 Linux VHD 中的常规系统要求。

如果要生成自定义内核,请考虑启用以下内核标志: CONFIG_SERIAL_8250=yCONFIG_MAGIC_SYSRQ_SERIAL=y。 配置文件通常位于 /boot/ 路径中。

访问串行控制台的常见方案

应用场景 串行控制台中的操作
FSTAB 文件损坏 Enter 键继续,并使用文本编辑器修复 FSTAB 文件。 可能需要处于单用户模式才能执行此操作。 有关详细信息,请参阅如何修复 fstab 问题和使用串行控制台访问 GRUB 和单用户模式的串行控制台部分。
防火墙规则不正确 如果已将 iptable 配置为阻止 SSH 连接,则可以使用串行控制台与 VM 交互,而无需 SSH。 可以在 iptables 手册页中找到更多详细信息。
同样,如果防火墙阻止 SSH 访问,可以通过串行控制台访问 VM 并重新配置防火墙。 可以在 防火墙文档中找到更多详细信息。
文件系统损坏/检查 有关使用串行控制台排查损坏的文件系统的更多详细信息,请参阅 Azure Linux VM 无法启动的 串行控制台部分。
SSH 配置问题 访问串行控制台并更改设置。 无论 VM 的 SSH 配置如何,都可以使用串行控制台,因为它不需要 VM 具有网络连接即可工作。 排查与 Azure Linux VM 的 SSH 连接失败、出错或被拒绝的问题,请参阅故障排除指南。 有关连接到 Azure 中 Linux VM 的问题的详细 SSH 故障排除步骤,请参阅更多详细信息
与引导加载程序交互 从串行控制台边栏选项卡中重启 VM,以访问 Linux VM 上的 GRUB。 有关更多详细信息和特定于发行版的信息,请参阅 使用串行控制台访问 GRUB 和单用户模式

禁用串行控制台

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

串行控制台安全性

使用启用了自定义启动诊断存储帐户防火墙的串行控制台

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

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

    注意

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

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

    下表列出了需要根据 VM 所在的区域或地理位置允许作为防火墙排除的 IP。 这是正在处理以包含在 服务标记中的串行控制台 IP 地址的完整列表的子集。

    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 瑞士北部、瑞士西部 Switzerland(瑞士)
    51.107.251.190 瑞士北部、瑞士西部 Switzerland(瑞士)
    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.130 所有美国政府云区域 UsGov
    52.127.55.131 所有美国政府云区域 UsGov

    重要

    • 需要允许的 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 的数据或命令,建议使用 SSH,除非串行控制台绝对必要。

并发使用情况

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

警告

这意味着断开连接的用户不会注销。使用 SIGHUP 或类似机制) 在断开连接 (时强制注销的功能仍在路线图中。 对于 Windows,特殊管理控制台中启用了自动超时 (SAC) ;但是,对于 Linux,可以配置终端超时设置。 为此,请为用于登录控制台的用户添加 export TMOUT=600.bash_profile.profile 文件。 此设置将在 10 分钟后超时会话。

辅助功能

辅助功能是 Azure 串行控制台的重点。 为此,我们确保串行控制台是完全可访问的。

键盘导航

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

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

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

已知问题

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

问题 缓解
在连接横幅后按 Enter 不会导致显示登录提示。 可能无法正确配置 GRUB。 运行以下命令: grub2-mkconfig -o /etc/grub2-efi.cfg 和/或 grub2-mkconfig -o /etc/grub2.cfg。 如果运行的自定义 VM、强化设备或 GRUB 配置导致 Linux 无法连接到串行端口,则可能会出现此问题。
使用文本编辑器) 后,串行控制台文本通常只占用屏幕大小的一部分 (。 串行控制台不支持协商窗口大小 (RFC 1073) ,这意味着不会发送 SIGWINCH 信号来更新屏幕大小,并且 VM 不会知道终端的大小。 安装 xterm 或类似实用工具以提供 resize 命令,然后运行 resize
粘贴长字符串不起作用。 串行控制台将粘贴到终端的字符串长度限制为 2048 个字符,以防止串行端口带宽过载。
SLES BYOS 图像中的不稳定键盘输入。 仅偶尔识别键盘输入。 这是普利茅斯包的问题。 Plymouth 不应在 Azure 中运行,因为不需要初始屏幕,并且 Plymouth 会干扰平台使用串行控制台的能力。 使用 sudo zypper remove plymouth 删除 Plymouth,然后重新启动。 或者,通过将 追加 plymouth.enable=0 到行末尾来修改 GRUB 配置的内核行。 为此,可以在 启动时编辑启动项,或者编辑 中的 /etc/default/grubGRUB_CMDLINE_LINUX 行,使用 grub2-mkconfig -o /boot/grub2/grub.cfg重新生成 GRUB,然后重新启动。

常见问题解答

问: 如何发送反馈?

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

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

答: 能。 使用 Ctrl+Shift+CCtrl+Shift+V 复制并粘贴到终端。

问: 是否可以使用串行控制台而不是 SSH 连接?

A. 虽然这种用法在技术上似乎是可能的,但在无法通过 SSH 进行连接的情况下,串行控制台主要用于故障排除工具。 出于以下原因,建议不要使用串行控制台作为 SSH 替代项:

  • 串行控制台的带宽没有 SSH 那么多。 因为它是纯文本连接,因此很难进行更多的 GUI 密集型交互。
  • 目前只能通过使用用户名和密码来访问串行控制台。 由于 SSH 密钥比用户名/密码组合安全得多,因此从登录安全角度来看,建议通过串行控制台使用 SSH。

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

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

问: 谁可以访问 VM/虚拟机规模集的串行控制台?

A. 对于 VM 或虚拟机规模集,必须具有虚拟机参与者角色或更高版本才能访问串行控制台。

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

A. 你的映像可能配置错误,以便进行串行控制台访问。 有关配置映像以启用串行控制台的信息,请参阅 串行控制台 Linux 分发可用性

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

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

问: 如果仅使用 SSH 密钥身份验证来设置 VM 或虚拟机规模集,我是否仍使用串行控制台连接到 VM/虚拟机规模集实例?

答: 能。 由于串行控制台不需要 SSH 密钥,因此只需设置用户名/密码组合。 为此,可以在Azure 门户中选择“重置密码”,并使用这些凭据登录到串行控制台。

后续步骤

联系我们寻求帮助

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