Я пытаюсь перенести процесс из Windows в WSL/Linux. Ранее два процесса Windows взаимодействовали через TCP-соединение после успешного обнаружения SSDP. Теперь я хочу, чтобы аналогичная связь работала из Windows в Linux (WSL). Я использовал localhost/127.0.0.1 в случае Windows<->Windows, но обнаружение SSDP, похоже, работает только на IP-адресе экземпляра WSL для Windows<->WSL.
ifconfigв 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
Обнаружение SSDP работает для 172.26.253.18, когда я запускаю процесс в Windows, а другой — в WSL.
Возможная причина, которую я могу придумать, заключается в том, что когда мы используем 127.0.0.1 в WSL, он ссылается на интерфейс обратной связи самой среды WSL. Пакеты SSDP, отправленные на 127.0.0.1, остаются в среде WSL и не видны хостовой среде Windows или другим устройствам в вашей локальной сети.