使用 VNC 或串行控制台访问虚拟服务器实例
您可以通过 IBM Cloud 用户界面、API请求或 IBM Cloud 命令行界面(CLI),连接到VNC或串行控制台,从而访问您的 IBM Cloud 虚拟服务器实例。 控制台服务是一种快速简便的方法,可供您在不使用安全 Shell 的情况下与实例进行交互。
仅适用于使用 TDX 机密计算功能的 z/OS 虚拟服务器及虚拟服务器实例:不支持将 z/OS 或 TDX 机密计算虚拟服务器实例连接到 VNC 控制台。
它适用于发生引导故障或内核崩溃的情况,尤其是在使用定制映像时。 发生这些情况时,您可以使用控制台服务来检查问题。
VNC 控制台提供图形用户界面,并接受鼠标和键盘输入。 串行控制台提供了一个基于文本的控制台,该控制台接受键盘输入。
您可以使用控制台来访问操作系统装入和引导过程,例如 GNU GRand Unified Bootloader (GRUB)。
可以使用任何 受支持的浏览器 打开控制台。
准备工作
- 要连接到控制台,需要在 IBM Cloud® Identity and Access Management (IAM) 中为虚拟服务器实例分配
Operator(或更高版本)和Console Administrator角色。
Console Administrator 角色不会自动应用。 如果您是账户管理员,还需要自行分配 Console Administrator 角色才能使用此功能。
要检查是否为您分配了必需角色,请转至 IBM Cloud 控制台中的“[IAM 用户](/iam/users){: external}”页面,然后在 **用户**下选择您的帐户,然后选择 **访问策略**。 确保您看到将 `Operator` (或更高版本) 角色和 `VirtualServerConsoleAdmin` 角色分配给目标虚拟服务器实例的 **资源属性** 的访问策略。 否则,您需要联系帐户管理员,以使用以下步骤为您分配角色:
1. 转至 IBM Cloud 控制台中的“[IAM 用户](/iam/users){: external}”页面,然后选择目标用户。
1. 单击 **访问**选项卡,然后滚动到 **访问策略**。
1. 单击**分配访问权**。
1. 滚动到 **创建策略** 部分。
1. 在 **Service** 部分,选择 _VPC 基础架构服务_。 然后,单击**下一步**。
1. 在 **Resources** 部分,选择 _All resources_。
1. 在**角色和操作**中,选择以下服务访问权限:
- 控制台管理员
1. 然后,请选择以下平台访问方式之一:
- 运算符
- 编辑者
- 管理员
1. 单击**下一步**。
1. 可选择添加条件。
1. 点击 **“审阅”**。
1. 单击**添加**。
1. 查看 **访问权摘要** 侧窗格,然后单击 **分配**。
有关 IAM 角色的更多信息,请参阅 [《IAM 入门指南》](/docs/vpc?topic=vpc-iam-getting-started)。
{: tip}
-
IBM Cloud 提供的映像通常没有密码。 要使用控制台成功访问实例,您可能需要为 Linux 映像创建密码,或者提前检索 Windows 映像的密码。
-
对于 Linux 映像,连接到 连接到 Linux 实例 之后的实例。 在实例上,使用以下命令创建本地密码:
sudo passwd $(whoami) -
对于 Windows 映像,请在 连接到 Windows 实例 之后获取密码。
-
对于 z/OS 映像,请在 连接到 z/OS 实例 之后获取密码。
-
对于串行控制台,您可以使用 -a root 标志将 getty 配置为在没有密码的情况下自动登录。
要为自定义的 Linux 镜像启用串行控制台服务,请确保内核命令行中包含参数 console=ttyS0。 如需了解更多信息,请参阅《 创建 Linux 自定义映像 》中的 “步骤 1 - 从单个 qcow2 或VHD格式的映像文件开始”。
使用 IBM Cloud UI 连接到控制台
遵循以下步骤以使用 IBM Cloud UI 连接到控制台。
- 在 IBM Cloud 控制台中,依次点击导航
> 基础设施
> 计算 > 虚拟服务器实例。
- 在 VPC 的虚拟服务器实例 列表中,单击需要访问的实例的溢出按钮,然后单击 打开 VNC 控制台 或 打开串行控制台。 或者,在实例详细信息页面上,单击右上角的 操作,然后单击 打开 VNC 控制台 或 打开串行控制台。
- (仅适用于串行控制台) 如果正在使用串行控制台,那么系统会提示您确认是否强制打开会话。 此操作将断开其他用户的会话。
- 输入凭证并遵循提示以登录到实例。
您可以通过单击控制台窗口右上角的 关闭实例 或 重新引导实例 来停止或重新启动实例。
使用 API 连接到控制台
在可以使用 API 请求连接到 VNC 或串行控制台之前,需要获取 IAM 令牌,将端点存储为变量,并验证您是否有权访问 VPC API 服务。 有关更多信息,请参阅 API 先决条件。
使用 API 连接到 VNC 控制台
-
为该实例创建一个控制台访问令牌。 在有效内容中指定
"console_type":"VNC"。curl -X POST \ "$vpc_api_endpoint/v1/instances/$instance_id/console_access_token?version=2021-01-26&generation=2" \ -H "Authorization: Bearer $iam_token" \ -d '{ "console_type": "vnc" }'访问令牌将在 3 分钟后无效。
-
在响应中保存 "href" 的值。
-
在浏览器中打开 noVNC 门户网站。
-
单击 设置 并展开 高级> WebSocket。
-
选中加密,将第 2 步中保存的URL API 端点部分粘贴到 Host:,不要包含 "wss://",将端口设置为 "443",将第 2 步中保存的URL 路径部分粘贴到 Path。
- 示例 API 端点:
us-south.iaas.cloud.ibm.com - 示例路径:
v1/instances/<instance_id>/console?access_token=<access_token>&version=2020-12-06&generation=2
- 示例 API 端点:
-
然后,单击连接。
-
登录该实例。
使用 API 连接到串行控制台
-
为实例创建控制台访问令牌,在有效内容中指定
"console_type": "serial"和"force": true。curl -X POST \ "$vpc_api_endpoint/v1/instances/$instance_id/console_access_token?version=2020-01-26&generation=2" \ -H "Authorization: $token" \ -d '{ "console_type":"serial", "force": true }'通过指定
"force"到true,您可以连接到串行控制台,即使控制台由其他用户使用也是如此。 缺省值为false,这表示如果正在使用控制台,那么无法建立连接。 -
在响应中保存 "href" 的值。
-
使用URL 启动串行控制台程序。
如果使用 websocat,请在命令中指定
--binary标志。 例如,websocat --binary "wss://us-south.iaas.cloud.ibm.com/v1/instances/<instance_id>/console?access_token=<access_token>&version=2020-12-06&generation=2" -
输入凭证并遵循提示以登录到实例。
使用 CLI 连接到控制台
确保通过遵循 CLI 先决条件 来设置 CLI 环境。
-
运行以下命令以连接到控制台:
ibmcloud is instance-console $instance_id该命令默认会打开一个串行控制台。 要打开 VNC 控制台,请在命令中添加
[--vnc]参数,以获取控制台的URL。 -
根据您正在使用的控制台,执行下列其中一个步骤:
- 对于 VNC 控制台,请遵循 步骤 2 到 使用 API 连接到 VNC 控制台 中的 步骤 7。
- 对于串行控制台,请输入凭证并遵循提示以登录到实例。
与控制台断开连接
使用完控制台后,可以通过关闭终端或浏览器来断开与控制台的连接。
有关控制台服务的说明
-
控制台会话将在 10 分钟的空闲时间后到期。 它将在 60 分钟后关闭,而不考虑任何活动。
某些操作系统的控制台会显示闪烁的光标,例如:Ubuntu 18.04。 使用 VNC 控制台访问使用此类操作系统的实例时,闪烁的光标会导致控制台会话在空闲 10 分钟后保持活动状态。 无论活动如何,控制台会话仍将在 60 分钟后关闭。
-
如果实例电源已关闭,那么控制台将断开连接。 在实例再次启动之前,无法重新建立连接。
-
重新启动,重置或不会导致重新调度实例的任何其他操作都会维护控制台连接。
-
每个实例的活动 VNC 控制台数限制为 2。 每个实例的活动串行控制台数限制为 1。
-
有关使用串行控制台对Linux虚拟服务器实例进行故障排除的信息,请参阅 如何使用Linux SysRq密钥从串行控制台对Linux虚拟服务器实例进行故障排除?