SSDP 發現不適用於 WSL 執行個體 IP 以外的 IP 位址

SSDP 發現不適用於 WSL 執行個體 IP 以外的 IP 位址

我正在嘗試將進程從 Windows 移植到 WSL/Linux。在此之前,成功發現 SSDP 後,兩個 Windows 進程透過 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 環境或本機網路上的其他裝置不可見。

相關內容