使用 KDNET 设置虚拟机的网络调试

您所在的位置:网站首页 电脑网络调试 使用 KDNET 设置虚拟机的网络调试

使用 KDNET 设置虚拟机的网络调试

2023-08-26 03:59| 来源: 网络整理| 查看: 265

设置虚拟机的网络调试 - KDNET 项目 03/08/2023

本主题介绍如何配置与 Hyper-V 虚拟机的内核调试连接, (VM) 。

Hyper-V 虚拟机设置

若要调试第 2 代 Hyper-V 虚拟机 (VM) 请完成以下步骤。

1.创建安装了 Windows 的 VM

有关如何创建 VM 的信息,请参阅 使用 Hyper-V 创建虚拟机。

2.定义外部虚拟交换机

若要与 VM 通信,可以使用虚拟外部网络交换机。 有关如何创建外部网络交换机的信息,请参阅 创建虚拟网络。

配置外部网络交换机时,必须设置以下选项。

选项 值 连接类型 外部网络 允许管理操作系统共享此网络适配器 已启用 VLAN ID 已禁用

3. 禁用安全启动

若要允许 kdnet 实用工具更新 BCDEdit 启动设置,请按照以下步骤暂时禁用虚拟机上的安全启动。

加载 Hyper-V 管理器并选择 VM 的属性。

选择 “安全 设置”。

取消检查“启用安全启动”复选框。

选择“确定”以保存设置。

完成调试并在目标 VM 上禁用内核调试后,可以重新启用安全启动。

4.安装适用于 Windows 的调试工具

调试工具用于调试器和 kdnet 实用工具,必须安装。 有关如何下载和安装调试工具的信息,请参阅 Windows 调试工具。

设置虚拟机的网络调试 - KDNET 记录主机 IP 地址

若要在目标虚拟机所在的同一台电脑上运行主机调试器,请执行以下步骤。

在主机 OS 中,打开命令提示符窗口并输入 IPConfig 以显示 IP 配置。

在命令输出中,找到配置为外部虚拟交换机的以太网适配器。

... Ethernet adapter vEthernet (External Virtual Switch): ... IPv4 Address. . . . . . . . . . . : ...

提示

可能有多个名称相似的适配器条目。 请确保找到创建的虚拟交换机。

记录外部虚拟交换机的 IPv4 地址,该地址将用作用于调试的主机地址。

若要确认目标计算机与主计算机之间的连接,请在目标计算机上打开提升的命令提示符窗口,然后输入以下命令,其中 YourHostIPAddress 是主计算机的 IP 地址。

ping -4 设置 VM 目标计算机

使用 kdnet.exe 实用工具通过执行以下步骤在目标电脑上自动配置调试器设置。

找到 WDK kdnet.exe 和 VerifiedNICList.xml 文件。 默认情况下,它们位于此处。 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

注意

这些说明假定两台电脑都在目标和主机上运行 64 位版本的 Windows。 如果不是这种情况,最佳方法是在运行目标的主机上运行相同的工具“位数”。 例如,如果目标运行的是 32 位 Windows,请在主机上运行 32 版本的调试器。 有关详细信息,请参阅 选择 32 位或 64 位调试工具。

若要允许用于剪切和粘贴的长密钥,请启用增强的会话支持。 在 VM 窗口中的“ 视图 ”下拉菜单中,启用 “增强会话”。

在目标 VM 计算机上,创建一个 C:\KDNET 目录,并将 kdnet.exe 和 VerifiedNICList.xml 文件复制到该目录。

在目标计算机上,以管理员身份打开“命令提示符”窗口。 输入此命令以验证目标计算机是否具有受支持的网络适配器。

C:\KDNET>kdnet Network debugging is supported on the following NICs: busparams=0.25.0, Intel(R) 82579LM Gigabit Network Connection, KDNET is running on this NIC.kdnet.exe

键入此命令以设置主机系统的 IP 地址并生成唯一的连接密钥。 使用前面记录的主机系统的 IP 地址。 为使用的每个目标/主机对选择唯一的端口地址,其范围为 50000-50039。 对于此示例,我们将选择 50005。

C:\>kdnet Enabling network debugging on Microsoft Hypervisor Virtual Machine. Key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7 To debug this vm, run the following command on your debugger host machine. windbg -k net:port=50005,key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7 Then restart this VM by running shutdown -r -t 0 from this command prompt.

使用 CRTL+C 将提供的 windbg 输出复制到命令缓冲区中。 这样做可避免尝试记下返回的长键值。

配置完调试器设置后,重新启用 BitLocker 和安全启动。

由于具有增强会话支持的 VM 在中断点中时可能会超时,因此请使用 VM 中的“视图”下拉菜单禁用增强会话支持。

加载并运行调试器后,VM 将重启。 下一步将介绍此过程。

启动调试会话

若要连接到目标电脑,请使用 CTRL+V 在main OS 命令窗口中粘贴之前复制的 kdnet 返回的 windbg 字符串。

C:\Debuggers\windbg -k net:port=,key=

首次尝试建立网络调试连接时,系统可能会提示你允许调试应用程序 (WinDbg 或 KD) 通过防火墙进行访问。 应通过选中 所有三 种网络类型的框来响应提示:域、专用和公用。

重启目标电脑

连接调试器后,重新启动目标计算机。 若要强制 VM 完全重启,请在管理员的命令提示符下使用此命令。

shutdown -r -t 0

重新启动目标虚拟机时,主机 OS 中的调试器应连接。

连接到 VM 后,在调试器上命中断,可以开始调试。

为了支持调试连接,在 VM 重新启动后,将添加内核调试网络适配器,并在网络属性中可见。

KDNET 虚拟机网络调试疑难解答

如果调试器未连接,请使用目标 VM 中的 ping 命令验证连接。

C:\>Ping

有些事情不正常,我不确定...

确保已让 WinDbg 通过防火墙。 确认使用的是由 BCDEdit 或 kdnet 生成的唯一密钥。

我的 VM 没有网络连接

从 Hyper-V 管理器打开虚拟交换机管理器,选择现有的虚拟交换机,然后从下拉框中选择外部网络 NIC,然后在“虚拟交换机管理器”对话框中选择“确定”,将外部网络 NIC 更改为 Microsoft 内核调试网络适配器。 更新虚拟交换机 NIC 后,请确保随后关闭并重启 VM。 将 Hyper-V 角色添加到 Windows 电脑的顺序

如果目标计算机是虚拟机主机,则可以设置网络调试,并且仍对虚拟机具有网络访问权限。

假设要在以下情况下设置网络调试。

目标计算机具有单个网络接口卡。 你打算在目标计算机上安装 Hyper-V 角色。 你打算在目标计算机上创建一个或多个虚拟机。

最佳方法是在安装 Hyper-V 角色之前在目标计算机上设置网络调试。 然后,虚拟机将有权访问网络。

如果在目标计算机上安装 Hyper-V 角色后决定设置网络调试,则必须更改虚拟机的网络设置,以将其桥接到 Microsoft 内核网络调试适配器。 否则,虚拟机将无法访问网络。

另请参阅

使用虚拟 COM 端口手动设置Kernel-Mode调试虚拟机

手动设置网络连接



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3