管理您的主机

Last published : Oct 07, 2026
本文介绍了一些您可以用来管理您的各个 XenServer® 主机的操作。
要管理与资源池相关的操作,请参阅 管理您的池。

配置 SSH 访问

默认情况下,您的 XenServer 主机的 SSH 访问是启用的。如果您想禁用 XenServer 主机的 SSH 访问,请运行以下命令:
xe host-disable-ssh host=<host_uuid_or_name_label>
此命令禁用 SSH。主机将拒绝新的 SSH 连接,但不会断开任何现有会话。
要启用 XenServer 主机的 SSH 访问,请运行以下命令:
xe host-enable-ssh host=<host_uuid_or_name_label>
设置当前主机 SSH 临时启用超时(秒):
xe host-param-set uuid=<host-uuid> ssh-enabled-timeout=<seconds>
timeout 参数决定 SSH 服务的持续时间。当设置为 0 时,SSH 将无限期保持活动状态。当设置为正整数(秒)时,SSH 将在指定时间段后自动禁用。配置更改会立即对后续的活动 SSH 会话生效,并且每次用户从 CLI/API 启用 SSH 时都会生效。
设置当前主机 SSH 控制台空闲超时(秒)
xe host-param-set uuid=<host-uuid> console-idle-timeout=<seconds>
使用非负整数值(以秒为单位)配置 VNC 和 SSH 控制台连接的空闲会话超时,其中 0 表示禁用超时(会话永不失效),正值(例如 3600)表示在指定持续时间后自动终止空闲会话,配置后设置将应用于新创建的控制台会话。
设置当前主机 SSH 自动模式
xe host-param-set uuid=<host-uuid>  ssh-auto-mode=true
注意:
默认情况下,新安装的 SSH 服务是禁用的,以减少攻击面。
根据 XAPI 服务健康状态配置自动 SSH 管理。当启用自动模式时,SSH 激活遵循 XAPI 状态:当 XAPI 健康时,SSH 被禁用;当 XAPI 不健康时,SSH 被启用。
自动模式已启用 + ssh_enabled_timeout = 0:通过 host.enable_ssh 手动激活 SSH 会永久禁用自动模式。
自动模式已启用 + ssh_enabled_timeout > 0:手动激活 SSH 会暂时禁用自动模式;当超时到期时,自动模式将恢复到原始设置。(如果在活动的 SSH 超时期间发生系统重启,则原始自动模式设置将丢失,并在超时/恢复时重置为启用。)
对于这些命令中主机参数的值,您可以使用主机选择器。有关详细信息,请参阅主机选择器。
您可以同时管理 XenServer 池中所有主机的 SSH 访问。有关详细信息,请参阅禁用池的 SSH 访问。

使用应答文件的 SSH 自动模式

添加新的应答文件配置 <ssh-mode>on|off|auto</ssh-mode> 以控制默认 SSH 和自动模式设置。
  • 当设置为“auto”时,自动模式将启用,并在 XAPI 启动后自动停止 SSH 服务。
  • 当设置为“on”或“off”时,自动模式默认禁用,SSH 服务将相应地启用或禁用。

新 SSH 管理控制的定义

在主机级别设置新的 XAPI API host.set_ssh_auto_mode 以配置 SSH
set_ssh_auto_mode:配置以启用或禁用 SSH 自动模式。当自动模式启用时,SSH 状态取决于 XAPI 状态:当 XAPI 正常时,SSH 被禁用;当 XAPI 不正常时,SSH 被启用。
当用户将自动模式配置为启用且当前 ssh_enabled_timeout 为 0 时,使用 host.enable_ssh 启用 SSH 将永久禁用自动模式。
当用户使用 host.set_auto_mode 将自动模式配置为启用或禁用时,这称为“原始自动模式设置”。如果当前 ssh_enabled_timeout 设置为正数(例如,1800 秒),则使用 host.enable_ssh 启用 SSH 将暂时禁用自动模式。当超时期限到期时,SSH 将自动禁用,自动模式将恢复到其原始设置。
当用户将 ssh_enabled_timeout 设置为正数(例如,3600 秒)并在超时期限到期之前重新启动主机(或重新启动 XAPI)时,一旦超时期限到期,SSH 将自动禁用,自动模式将恢复为 true,因为重新启动将导致原始自动模式设置丢失。
当您将 ssh_enabled_timeout 配置为正数(例如,180 秒)并且 XAPI 随后失败时,如果 XAPI 在超时期限到期时仍处于失败状态,SSH 将保持启用直到 XAPI 重新启动。XAPI 重新启动后,SSH 将自动禁用,自动模式将恢复为 true,因为系统重新启动会导致原始自动模式设置丢失。

在主机上安装 TLS 证书

XenServer 主机默认安装了 TLS 证书。但是,要使用 HTTPS 保护 XenServer 与 Citrix Virtual Apps and Desktops™ 之间的通信,请安装由受信任的证书颁发机构提供的证书。
本节介绍如何使用 xe CLI 安装证书。有关使用 XenCenter 处理证书的信息,请参阅 (/zh-cn/xencenter/current-release/hosts-certificates.html)。
确保您的 TLS 证书及其密钥满足以下要求:
  • 证书和密钥对是 RSA 密钥。
  • 密钥与证书匹配。
  • 密钥与证书在单独的文件中提供。
  • 证书与任何中间证书在单独的文件中提供。
  • 密钥文件必须是以下类型之一:.pem 或 .key。
  • 任何证书文件必须是以下类型之一:.pem、.cer 或 .crt。
  • 密钥长度大于或等于 2048 位且小于或等于 4096 位。
  • 密钥是未加密的 PKCS #8 密钥,并且没有密码。
  • 密钥和证书采用 base-64 编码的“PEM”格式。
  • 证书有效且未过期。
  • 签名算法为 SHA-256 或 SHA-512。
当您选择的证书和密钥不符合这些要求时,xe CLI 会发出警告。

我在哪里可以获取 TLS 证书?

1. 生成证书签名请求

首先,生成私钥和证书签名请求。在 XenServer 主机上,完成以下步骤:
  1. 要创建私钥文件,请运行以下命令:
    openssl genrsa -des3 -out privatekey.pem 2048
    系统会提示您输入密码短语。此密码短语将在后续步骤中删除。
  2. 从密钥中删除密码短语:
    openssl rsa -in privatekey.pem -out privatekey.nop.pem
  3. 使用私钥创建证书签名请求:
    openssl req -new -key privatekey.nop.pem -out csr
  4. 按照提示提供生成证书签名请求所需的信息。
    • 国家名称。输入您所在国家/地区的 TLS 证书国家代码。例如,加拿大的 CA 或牙买加的 JM。您可以在网上找到 TLS 证书国家代码列表。
    • 州或省名称(全称)。输入池所在的州或省。例如,马萨诸塞州或艾伯塔省。
    • 地区名称。池所在的城市名称。
    • 组织名称。您的公司或组织名称。
    • 组织单位名称。输入部门名称。此字段是可选的。
    • 通用名称。输入您的 XenServer 主机的 FQDN。我们建议指定一个 FQDN 或一个不会过期的 IP 地址。
    • 电子邮件地址。生成证书时,此电子邮件地址将包含在证书中。
    证书签名请求将保存在当前目录中,并命名为 csr。
  5. 通过运行以下命令在控制台窗口中显示证书签名请求:
    cat csr
  6. 复制整个证书签名请求,并使用此信息向证书颁发机构请求证书。
    证书签名请求示例:
    -----BEGIN CERTIFICATE REQUEST-----
    MIIDBDCCAewCAQAwgYsxCzAJBgNVBAYTAlVLMRcwFQYDVQQIDA5DYW1icmlkZ2Vz
    aGlyZTESMBAGA1UEBwwJQ2FtYnJpZGdlMRIwEAYDVQQKDAlYZW5TZXJ2ZXIxFTAT
    ...
    SdYCkFdo+85z8hBULFzSH6jgSP0UGQU0PcfIy7KPKyI4jnFQqeCDvLdWyhtAx9gq
    Fu40qMSm1dNCFfnACRwYQkQgqCt/RHeUtl8srxyZC+odbunnV+ZyQdmLwLuQySUk
    ZL8naumG3yU=
    -----END CERTIFICATE REQUEST-----

2. 将证书签名请求发送到证书颁发机构

生成证书签名请求后,您可以将请求提交给您组织首选的证书颁发机构。
证书颁发机构 (CA) 是一种提供数字证书的服务,您的组织内部可能有一个可用的 CA,或者您可以选择使用受信任的第三方。一些证书颁发机构要求证书托管在可从互联网访问的系统上。我们建议不要使用具有此要求的证书颁发机构。
证书颁发机构会响应您的签名请求并提供以下文件:
  • 已签名的证书
  • 如果适用,一个中间证书
您现在可以将所有这些文件安装到您的 XenServer 主机上。

3. 在 XenServer 主机上安装已签名的证书

在证书颁发机构响应证书签名请求后,完成以下步骤以在您的 XenServer 主机上安装证书:
  1. 从证书颁发机构获取已签名的证书,如果证书颁发机构有,则获取中间证书。
  2. 将密钥和证书复制到 XenServer 主机。
  3. 在主机上运行以下命令:
    xe host-server-certificate-install certificate=&lt;path_to_certificate_file> private-key=&lt;path_to_private_key> certificate-chain=&lt;path_to_chain_file>
    参数 certificate-chain 是可选的。
为了增强安全性,您可以在安装证书后删除私钥文件。

管理管理员密码

首次安装 XenServer 主机时,您会设置一个管理员或 root 密码。您可以使用此密码将 XenCenter 连接到您的主机,或(使用用户名 root)登录到系统配置控制台 xsconsole。
如果您将主机加入池中,则主机的管理员密码将自动更改为与池协调器的管理员密码匹配。
注意:
XenServer 管理员密码必须只包含可打印的 ASCII 字符。

更改密码

您可以使用 XenCenter®、xe CLI 或 xsconsole 更改管理员密码。

XenCenter

要使用 XenCenter 更改池或独立主机的管理员密码,请完成以下步骤:
  1. 在资源窗格中,选择池或池中的任何主机。
  2. 在池菜单或服务器菜单上,选择更改服务器密码。
要更改独立主机的 root 密码,请在资源窗格中选择该主机,然后从服务器菜单中单击密码,再单击更改。
如果 XenCenter 配置为在会话之间保存您的主机登录凭据,则会记住新密码。有关详细信息,请参阅存储主机连接状态。
更改管理员密码后,轮换池密钥。有关详细信息,请参阅轮换池密钥。

xe CLI

要使用 xe CLI 更改管理员密码,请在池中的主机上运行以下命令:
xe user-password-change new=<new_password>
注意:
确保在命令前加上一个空格,以避免在命令历史记录中存储明文密码。
更改管理员密码后,轮换池密钥。有关详细信息,请参阅轮换池密钥。

xs控制台

要使用 xsconsole 更改池或独立主机的管理员密码,请完成以下步骤:
  1. 在池协调器上,转到控制台。
  2. 以 root 身份登录。
  3. 键入 xsconsole。按 Enter。将显示 xsconsole。
  4. 在 xsconsole 中,使用箭头键导航到 Authentication 选项。按 Enter。
  5. 导航到 Change Password。按 Enter。
  6. 使用管理员密码进行身份验证。
  7. 在 Change Password 对话框中:
    1. 输入当前密码。
    2. 输入新密码。
    3. 再次输入新密码以确认。
    将显示 Password Change Successful 屏幕。按 Enter 关闭。
如果主机是池协调器,则此更新的密码现在将传播到池中的其他主机。
更改管理员密码后,轮换池密钥。有关详细信息,请参阅轮换池密钥。

重置丢失的 root 密码

如果您丢失了 XenServer 主机的管理员 (root) 密码,您可以通过直接访问主机来重置密码。
  1. 重启 XenServer 主机。
  2. 当 GRUB 菜单显示时,按 e 编辑启动菜单条目。
  3. 将 init=/sysroot/bin/sh 添加到以 module2 开头的行。
  4. 按 Ctrl-X 启动到 root shell。
  5. 在命令 shell 中,运行以下命令:
    chroot /sysroot
    passwd

    (type the new password twice)

    sync
    /sbin/reboot -f
如果主机是池协调器,则此更新的密码现在会传播到池中的其他主机。
更改管理员密码后,轮换池密钥。有关更多信息,请参阅 轮换池密钥

更改服务器上的 NTP 配置

您可以从 xsconsole 更新服务器的 NTP 配置。
  1. 在主机控制台中,键入 xsconsole。
  2. 在 xsconsole 中,转到 网络和管理接口 > 网络时间 (NTP)。
  3. 输入您的密码以继续。
  4. 从 Configure Network Time 菜单中,选择您要配置的选项。
您也可以使用 XenAPI 配置 NTP。
这允许您自动化 NTP 配置,而无需通过 SSH 直接访问 dom0。
使用 Python SDK 的示例: session.xenapi.host.set_ntp_mode(host_ref, 'Factory')
NTP 模式:
  • 出厂设置 - 使用内置的 XenServer NTP 池服务器
  • DHCP - 使用 DHCP 分配的 NTP 服务器
  • 自定义 - 使用用户配置的 NTP 服务器
  • 禁用 - 禁用 NTP(不推荐)
要检查 NTP 同步状态:
  • session.xenapi.host.get_ntp_synchronized(host_ref)
  • session.xenapi.host.get_ntp_servers_status(host_ref)
注意:
如果 NTP 直接在 dom0 上配置而不是通过 XenAPI 配置,则值可能与 XenAPI 字段不一致。
要将值与 XAPI 重新同步,请重新启动 toolstack: xe-toolstack-restart

更改服务器上的时区

您可以使用 XenAPI 为主机配置时区。
使用 Python SDK 的示例: session.xenapi.host.set_timezone(host_ref, 'UTC')
时区值必须使用 IANA 时区名称,例如:
  • UTC
  • Europe/Paris
  • Asia/Kolkata
要读取当前时区:
session.xenapi.host.get_timezone(host_ref)
要列出支持的时区:
session.xenapi.host.list_timezones(host_ref)
注意:
如果时区直接在 dom0 上配置而不是通过 XenAPI 配置,则值可能与 XenAPI 字段不一致。
要将值与 XAPI 重新同步,请重新启动工具栈: xe-toolstack-restart

更改服务器上的 max-cstate

max-cstate 设置控制允许的最深 CPU 空闲电源状态。
支持的值:
  • "" - 无限制 (默认)
  • 0 - 限制为 C0
  • 1 - 限制为 C1
使用 Python SDK 的示例:
session.xenapi.host.set_max_cstate(host_ref, '1')
读取当前值:
session.xenapi.host.get_max_cstate(host_ref)
注意:
如果 max-cstate 直接在 dom0 上配置而不是通过 XenAPI 配置,则值可能与 XenAPI 字段不一致。
要将值与 XAPI 重新同步,请重新启动工具栈: xe-toolstack-restart

准备 XenServer 主机池以进行维护

在对属于资源池的主机执行维护操作之前,必须禁用它。禁用主机可防止在其上启动任何虚拟机。然后,您必须将其虚拟机迁移到池中的另一个 XenServer 主机。您可以通过使用 XenCenter 将 XenServer 主机置于维护模式来完成此操作。有关详细信息,请参阅 XenCenter 文档中的在维护模式下运行。
备份同步每 24 小时进行一次。将池协调器置于维护模式会导致离线虚拟机的最后 24 小时 RRD 更新丢失。
警告:
我们强烈建议在安装更新之前重新启动所有 XenServer 主机,然后验证其配置。某些配置更改仅在 XenServer 主机重新启动后才生效,因此重新启动可能会发现可能导致更新失败的配置问题。

使用 CLI 准备池中的主机以进行维护操作

  1. 运行以下命令:
    xe host-disable uuid=XenServer_host_uuid
    xe host-evacuate uuid=XenServer_host_uuid
    此命令禁用 XenServer 主机,然后将所有正在运行的 VM 迁移到池中的其他 XenServer 主机。
  2. 执行所需的维护操作。
  3. 维护操作完成后,启用 XenServer 主机:
    xe host-enable
  4. 重新启动所有已停止的 VM 并恢复所有已暂停的 VM。

关闭或重新启动 XenServer 主机

我们建议始终使用 xe CLI 或 XenCenter 关闭或重新启动 XenServer 主机。在正常运行期间,请勿使用其他方法(例如基于硬件的重置或操作系统命令)关闭或重新启动主机。这样做可能会导致主机和池出现意外行为。
要使用 xe CLI 关闭或重新启动主机,请使用以下命令:
  1. 阻止任何新 VM 在指定主机上启动或迁移到指定主机:
    xe host-disable host=<host name>
  2. 如果需要,将所有正在运行的 VM 从主机迁移出去:
    xe host-evacuate uuid=<host uuid>
  3. 使用以下 xe CLI 命令之一关闭或重新启动主机。
    • 要干净地关闭主机:
      xe host-shutdown host=<host name>
    • 要干净地重新启动主机:
      xe host-reboot host=&lt;host name>
有关如何使用 XenCenter 关闭服务器的信息,请参阅 XenCenter 文档。

配置主机开机

远程启动主机

您可以使用 XenServer 主机开机功能,通过 XenCenter 或使用 CLI 远程开启和关闭主机。
要启用主机开机功能,主机必须具备以下电源控制解决方案之一:
  • 启用 Wake on LAN 的网卡。
  • 智能平台管理接口 (IPMI)。
  • 基于管理 API 的自定义脚本,使您能够通过 XenServer 开启和关闭电源。有关详细信息,请参阅下一节中的为主机开机功能配置自定义脚本。
使用主机开机功能需要完成两项任务:
  1. 确保池中的主机支持远程控制电源。例如,它们具有 Wake on LAN 功能或支持 IPMI,或者您已创建自定义脚本。
  2. 使用 CLI 或 XenCenter 启用主机开机功能。

使用 CLI 管理主机开机

您可以使用 CLI 或 XenCenter 管理主机开机功能。本节提供有关使用 CLI 管理此功能的信息。
主机开机功能在主机级别启用(即在每个 XenServer 上)。
启用主机开机功能后,您可以使用 CLI 或 XenCenter 开启主机。

使用 CLI 启用主机开机功能

运行命令:
xe host-set-power-on-mode host=&lt;host uuid>

power-on-mode=("" , "wake-on-lan", "IPMI","custom")

power-on-config=key:value

使用 CLI 远程开启主机

运行命令:
xe host-power-on host=&lt;host uuid>