我的设置:
我有一台装有 USB 网卡的 Windows 11 主机。我 networkMode
按照mirrored
以下方式配置了 WSL: https://learn.microsoft.com/en-us/windows/wsl/networking#mirrored-mode-networking。
然后我可以毫无问题地看到 Linux 内部的适配器。
我可以从 Windows 命令行 ping 适配器,但是无法从 Linux ping NIC。
- 网卡IP:192.168.2.14
- Windows 主机 IP(在 NIC 上):192.168.2.10
- 由于镜像,Linux IP(在 NIC 上):192.168.2.10
我尝试过的方法:
使用连接到我的主网络的默认网络适配器,我可以 ping:Linux -> Windows 主机 -> 网络适配器 -> 通过网络 -> 另一台机器
但是,我无法 ping 通:Linux -> Windows 主机 -> NIC
我也尝试设置 Hyper-V 虚拟适配器并使用它,但仍然没有任何效果。
作为最后的手段,我禁用了所有 Linux 和 Windows 防火墙,但仍然没有成功。
更新:
我将网络模式恢复为默认模式(NAT),并改为usbipd
允许 Windows 将 USB 适配器直通到 WSL(因为它是 Asix USB->以太网设备)。这让我更进一步。我编译了一个自定义的 WSL 内核,重新启动,然后安装并加载了 Asix 驱动程序的模块。现在我可以看到适配器,并在其上为我的 Linux 环境设置 IP 地址。
问题是:我可以ping通,但终端里的ping就卡住了。设备上的指示灯闪烁,表示正在接收数据包。
于是我用 Wireshark 扫描了一下,看看到底是怎么回事。Wireshark 显示适配器确实在响应。那么为什么我的终端卡住了?是不是还有其他问题?
更新 2 我捕获了一些日志。在重建之前,我设法在内核中启用了 USB/IP 日志记录。
我不太确定我在这些日志中寻找什么,也许更有经验的人可以发现这里是否存在问题?
日志链接:https://drive.google.com/file/d/1itXr80wWiOkEglgoDIE2OP5bPNuEtjx3/view?usp =sharing