在虚拟化环境中,将物理显卡直接分配给虚拟机(俗称“直通”)可以显著提升图形处理性能,适用于游戏串流、3D 渲染或机器学习等场景。本文将手把手教你如何在 ESXi 上完整配置显卡直通,并解决因屏蔽核显导致的管理界面丢失问题。
⚠️ 适用环境:ESXi 6.7 / 7.0 / 8.0
⚠️ 硬件要求:CPU 支持 VT-d / AMD-Vi,主板 BIOS 支持 Above 4G Decoding 及集显优先输出
📋 准备工作
- 确认你的独立显卡(NVIDIA/AMD)已正确安装在服务器上
- 确保 ESXi 主机有 SSH 访问权限
- 建议提前备份现有虚拟机配置
1️⃣ BIOS 设置:强制优先使用集显
在直通独立显卡前,必须让 BIOS 将集成显卡设为系统主显示输出。这样才能释放 PCI 通道的独显用于直通。
操作步骤:
进入主板 BIOS → 找到 Primary Graphics Adapter 或 Init Display First → 选择 IGD(集成显卡)或 Internal VGA。
下图为典型 BIOS 设置界面示例:
(不同主板界面略有差异,请以实际选项为准)
保存设置并重启 ESXi 主机。
2️⃣ Web 界面开启 PCI 设备直通
登录 ESXi 主机 Web 管理界面,执行设备直通切换:
- 导航至 管理 → 硬件 → PCI 设备
- 找到你的独立显卡(通常包含 VGA 控制器 和 音频设备 两个功能)
- 勾选这两个设备,点击 切换直通
- 系统会要求重新启动主机使其生效

💡 记得同时直通显卡上的 HDMI 音频设备,否则虚拟机可能无声音输出。
3️⃣ 屏蔽 ESXi 对核显的占用(命令行关键步骤)
默认情况下,ESXi 内核会占用核显作为控制台输出,导致核显无法直通给其他虚拟机。通过以下命令禁用 vga 模块,完全释放核显:
# 屏蔽核显(禁止 ESXi 调用)
esxcli system settings kernel set -s vga -v FALSE若未来需要恢复 ESXi 对核显的调用(例如故障排查),执行:
# 恢复 ESXi 显卡调用
esxcli system settings kernel set -s vga -v TRUE4️⃣ 修改 passthru.map 添加设备 ID
ESXi 需要识别显卡的 PCI 设备 ID 才能正确直通。通过 SSH 连接主机,先获取显卡 ID:
lspci -v在输出中找到你的显卡(例如 NVIDIA/AMD),记录下类似 XXXX:XX:XX.X 格式的 设备 ID 和括号中的 供应商 ID。
![lspci 获取显卡设备 ID]][3]
接着使用 vi 编辑配置文件:
vi /etc/vmware/passthru.map根据显卡类型在文件末尾添加一行(示例为 NVIDIA 显卡):
# NVIDIA 显卡直通配置
10de XXXXX d3d0 false- 10de:NVIDIA 供应商 ID
- XXXXX:你的设备 ID
- d3d0:直通类型参数(常见为 d3d0 或 link)
- false:禁用 ACS 检查
具体值请参考下图中的修改示例:
保存并退出(:wq)。
5️⃣ 修改 esx.conf 强制设置设备拥有者(高级操作)
此步骤可确保 PCI 设备被正确标记为直通设备。使用 vi 编辑:
vi /etc/vmware/esx.conf在文件末尾添加以下内容(将 0000:02:00.0 替换为你的显卡 PCI 设备 ID):
/device/0000:02:00.0/owner = "passthru"🔧 设备 ID 格式:通过lspci获得的完整 PCI 地址,例如02:00.0应写成0000:02:00.0。如果你的显卡包含音频功能,需要为两个设备分别添加此条目。
保存后重启主机:
reboot6️⃣ 配置虚拟机高级参数(解决显卡识别与内存寻址)
编辑虚拟机 .vmx 文件或 Web 界面添加参数
在 Web 管理界面:
编辑目标虚拟机 → 虚拟机选项 → 高级 → 配置参数 → 添加参数。
需手动添加以下三个关键参数:
| 参数名 | 值 | 作用 |
|---|---|---|
hypervisor.cpuid.v0 | FALSE | 隐藏虚拟机监控程序签名,解决 NVIDIA 消费级显卡的 Code 43 错误 |
pciPassthru.use64bitMMIO | TRUE | 启用 64 位 MMIO 内存映射,解决大显存显卡无法识别问题 |
pciPassthru.64bitMMIOSizeGB | 64 | 分配 MMIO 地址空间大小(必须为 2 的幂,如 64GB) |
下图展示了 Web 界面的添加示例:

🧠 提示:对于显存超过 8GB 的显卡(如 RTX 3080 / RX 6800),建议将 64bitMMIOSizeGB 设为 64 或更高。🖥️ 管理替代方案:当 Web 管理界面无法显示时
由于我们屏蔽了核显,ESXi 直接连接的显示器将不再显示任何内容(包括 DCUI 管理界面)。此时你可以通过以下两种方式管理主机:
方式一:SSH + 文本控制台
SSH 登录后,直接调出经典的 ESXi 文本管理界面:
dcui执行后,当前 SSH 会话会切换到类似本地控制台的菜单,可配置网络、重启服务等。

方式二:完全远程管理
日常运维通过 ESXi Web 界面(https://你的ESXi-IP)或 vCenter 进行,物理显示器仅在底层故障时使用。
✅ 验证直通是否成功
- 启动配置了直通的虚拟机
- 在虚拟机内安装对应显卡驱动程序(NVIDIA/AMD 官方驱动)
- 连接显示器到直通显卡的物理接口
- 若能正常显示画面,且设备管理器识别到显卡,表示直通成功
🎮 游戏玩家:建议额外添加 msiEnabled = "FALSE" 参数(部分旧显卡中断问题),并根据需求配置 USB 直通。