SSDP 发现不适用于 WSL 实例 IP 以外的 IP 地址

SSDP 发现不适用于 WSL 实例 IP 以外的 IP 地址

我正在尝试将进程从 Windows 移植到 WSL/Linux。之前,两个 Windows 进程在成功发现 SSDP 后通过 TCP 连接进行通信。现在,我希望类似的通信从 Windows 到 Linux (WSL) 都能进行。在 Windows<->Windows 的情况下,我一直使用 localhost/127.0.0.1,但 SSDP 发现似乎仅适用于 Windows<->WSL 的 WSL 实例 IP。

是否配置在 WSL 中给出:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.26.253.18  netmask 255.255.240.0  broadcast 172.26.255.255
        inet6 fe80::215:5dff:fed7:82b  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:d7:08:2b  txqueuelen 1000  (Ethernet)
        RX packets 422  bytes 72257 (72.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 299  bytes 27676 (27.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 378  bytes 19949 (19.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 378  bytes 19949 (19.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

当我在 Windows 中运行一个进程而在 WSL 中运行其他进程时,SSDP 发现适用于 172.26.253.18。

我能想到的可能原因是,当我们在 WSL 中使用 127.0.0.1 时,它指的是 WSL 环境本身的环回接口。发送到 127.0.0.1 的 SSDP 数据包保留在 WSL 环境中,对主机 Windows 环境或本地网络上的其他设备不可见。

相关内容