SSDP-Erkennung funktioniert nicht für andere IP-Adressen als die Instanz-IP von WSL

SSDP-Erkennung funktioniert nicht für andere IP-Adressen als die Instanz-IP von WSL

Ich versuche, einen Prozess von Windows auf WSL/Linux zu portieren. Zuvor kommunizierten zwei Windows-Prozesse nach erfolgreicher SSDP-Erkennung über eine TCP-Verbindung. Jetzt möchte ich, dass eine ähnliche Kommunikation von Windows zu Linux (WSL) funktioniert. Ich habe im Windows<->Windows-Fall localhost/127.0.0.1 verwendet, aber die SSDP-Erkennung scheint nur mit der Instanz-IP von WSL für Windows<->WSL zu funktionieren.

ifconfigin WSL ergibt:

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

Die SSDP-Erkennung funktioniert für 172.26.253.18, wenn ich einen Prozess in Windows und einen anderen in WSL ausführe.

Ein möglicher Grund, der mir einfällt, ist, dass wenn wir 127.0.0.1 innerhalb von WSL verwenden, es sich auf die Loopback-Schnittstelle der WSL-Umgebung selbst bezieht. An 127.0.0.1 gesendete SSDP-Pakete bleiben innerhalb der WSL-Umgebung und sind für die Windows-Hostumgebung oder andere Geräte in Ihrem lokalen Netzwerk nicht sichtbar.

verwandte Informationen