WSL2 中的多个虚拟网络接口

WSL2 中的多个虚拟网络接口

在我的 WSL 实例中,ip addr输出如下所示:

ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 62:7d:94:c7:52:0b brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether aa:20:18:64:a4:89 brd ff:ff:ff:ff:ff:ff
4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000
    link/sit 0.0.0.0 brd 0.0.0.0
6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:f7:c6:4d brd ff:ff:ff:ff:ff:ff
    inet 172.25.42.162/20 brd 172.25.47.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fef7:c64d/64 scope link
       valid_lft forever preferred_lft forever

这些都是什么啊。我知道什么loeth0是什么。但其他人是什么?我应该对他们做什么?

答案1

我该怎么办?

借用《复仇者联盟4:终局之战》中的一句话——“我们通过不处理来处理它。” 换句话说,不用担心这些接口。它们是无害的,您可能不需要它们。下面有更多详细信息。

这些都是什么?

无论如何,我都不是内核专家,但据我所知,其中大多数都是由 Linux 内核模块创建的相当标准的接口。我在这里猜测微软选择将它们保留在编译中而不是从配置中删除它们有两个可能的原因:

  • 兼容性——可能有一些应用程序会假设它们的存在,并且至少让它们存在可以带来更流畅的 WSL 体验。
  • 开发人员使用——由于 WSL 是为 Linux 开发人员设计的,因此提供这些接口来测试某些应用程序可能会很有用。

接口本身:

  • bond0用于将多个接口绑定在一起以提高链路速度或故障转移,这两者都不太可能适用于 WSL。也就是说,理论上可以使用 Hyper-V(如果您有 Windows Pro 或更高版本)创建一个额外的虚拟 NIC,然后可以将其绑定。虽然我们大多数人不太可能遇到这个用例,但某些开发人员可能需要测试该功能。

  • dummy0根据,通常也用于测试目的这个红帽文档

  • sit0用于通过 IPv4 转发 IPv6 数据包(请参阅这个答案了解更多详情)。同样,我们大多数人都不会遇到这种情况。

您可以看到所有这三个模块都在 Microsoft WSL 中启用内核配置,纽带, 和假的)。

  • tunl:我的系统上没有 tunl 接口,因此我相信它是在 WSLinit过程中创建的。 init负责(以及许多其他任务)启动 WSL 网络接口,不幸的是它是一个黑匣子(据我所知,微软尚未发布源代码)。也许您的系统上有一个 VPN,导致该接口被 映射init

那么,如果你真的想要的话,你能摆脱它们吗?最有可能,但它需要使用上面链接的源代码构建您自己的 Linux 内核。就我个人而言,我会采取“不处理”的方法。尽管如此,事实是我们如果我们愿意的话,可以自定义并编译我们自己的 WSL 内核,恕我直言,这真是太神奇了。

相关内容