R A Asked: 2023-08-12 01:43:38 +0800 CST2023-08-12 01:43:38 +0800 CST 2023-08-12 01:43:38 +0800 CST WSL2 是否使用本机 Linux TCP/IP 堆栈? 772 假设 Windows TCP/IP 实现中存在错误。WSL2 会受到影响吗?WSL2 Ubuntu 会使用本机 Linux 内核的 TCP/IP 堆栈吗? windows-subsystem-for-linux 1 个回答 Voted Best Answer NotTheDr01ds 2023-08-14T12:32:10+08:002023-08-14T12:32:10+08:00 假设 Windows TCP/IP 实现中存在错误。WSL2 会受到影响吗? 是的。 WSL2 是否使用本机 Linux TCP/IP 堆栈? 另外,是的。 WSL2 网络通过 WSL2 内核使用本机 Linux TCP/IP 实现。该内核是根据上游官方 Linux 内核构建的,并进行了相对较小的添加,以优化其在 WSL 环境中的性能和行为。 然而,即使使用本机 Linux 堆栈,网络接口也是虚拟的,它连接到虚拟 Hyper-V 交换机,当然,该交换机使用 Windows TCP/IP 堆栈连接到(通常)物理 NIC。 因此,通过在 WSL2 上使用 Ubuntu,您不一定能解决 Windows 网络实现中的问题。相反,您实际上还有一个额外的故障点: Linux 超V 视窗 我发现 Hyper-V 实现中特别出现了一个问题(来自 WSL Github),尽管我目前不记得具体是什么问题。 旁注:我能想到一种可能的情况,其中 Ubuntu 不会使用Hyper-V/Windows 虚拟交换机。如果您使用 USB NIC,您可以通过 USB/IP 将其直接公开给 Ubuntu。等一下 ... ;-) 好吧,虽然您在这种情况下在技术上使用 Windows IP 堆栈,但您并没有使用 Hyper-V 或 Windows NIC 连接到外部网络。 请注意,这可能需要您构建自己的 WSL2 内核,其中包括对 USB NIC 的支持。令人怀疑的是,库存 WSL2 是否具有该支持(发行说明并未表明已添加),尽管已将其作为一项功能请求。
是的。
另外,是的。
WSL2 网络通过 WSL2 内核使用本机 Linux TCP/IP 实现。该内核是根据上游官方 Linux 内核构建的,并进行了相对较小的添加,以优化其在 WSL 环境中的性能和行为。
然而,即使使用本机 Linux 堆栈,网络接口也是虚拟的,它连接到虚拟 Hyper-V 交换机,当然,该交换机使用 Windows TCP/IP 堆栈连接到(通常)物理 NIC。
因此,通过在 WSL2 上使用 Ubuntu,您不一定能解决 Windows 网络实现中的问题。相反,您实际上还有一个额外的故障点:
我发现 Hyper-V 实现中特别出现了一个问题(来自 WSL Github),尽管我目前不记得具体是什么问题。
旁注:我能想到一种可能的情况,其中 Ubuntu 不会使用Hyper-V/Windows 虚拟交换机。如果您使用 USB NIC,您可以通过 USB/IP 将其直接公开给 Ubuntu。等一下 ... ;-)
好吧,虽然您在这种情况下在技术上使用 Windows IP 堆栈,但您并没有使用 Hyper-V 或 Windows NIC 连接到外部网络。
请注意,这可能需要您构建自己的 WSL2 内核,其中包括对 USB NIC 的支持。令人怀疑的是,库存 WSL2 是否具有该支持(发行说明并未表明已添加),尽管已将其作为一项功能请求。