Wie Wireshark Netzwerkverkehr aus Windows10 von WSL2 abgreifen kann

Wie Wireshark Netzwerkverkehr aus Windows10 von WSL2 abgreifen kann

Meine Aufgabe besteht darin, zwei in C/C++ geschriebene Programme zu erstellen, die innerhalb von WSL2 und Windows 10 miteinander kommunizieren können. Ich kann Datenverkehr von WSL2 an Windows 10 senden, kann jedoch mit einem einfachen in C geschriebenen Sniffer-Programm (auf meinem eigenen PC) keinen Netzwerkdatenverkehr von Windows 10 erfassen, der von WSL2 kommt. Allerdings kann ich auf zwei geöffneten WireSharks (eins in Windows 10 und eins in WSL2) die UDP-Nachrichten sehen, die ich an die IP-Adresse von WSL2 in Windows senden möchte.

  • Ich habe versucht, Ports in die eingehenden Regeln meiner Firewall einzutragen (ohne Ergebnis).
  • Ich habe versucht, meine Netzwerkschnittstelle in WSL2 in den Promisc-Modus zu setzen (kein Ergebnis).
  • Ich habe versucht, mit gutem Beispiel voranzugehenHier(kein Ergebnis in WSL2, es funktioniert jedoch unter WSL1, aber an WSL1 bin ich nicht interessiert).
  • Ich habe versucht, einzurichtendieses Projekt(kein Ergebnis).
  • Ich habe versucht, die Kommunikation einzurichten mitUSB(Kein Ergebnis, ich habe eine Meldung erhalten, dass eine Firewall eines Drittanbieters den angegebenen Port für die Kommunikation blockiert, konnte das Problem jedoch nicht lösen).
  • Ich habe versucht,WSL-Netzwerkhandbuch(kein Ergebnis).
  • Ich kann keine Brücke erstellen, da dies in meiner Unternehmensumgebung verboten ist und ich keine Ports weiterleiten kann.

Ich würde gerne verstehen, wie WireShark den Datenverkehr abhören kann und dies möglicherweise auf meiner Seite in einer einfachen Kommunikation implementieren: WSL2-Nachricht senden ---> Windows-Nachricht empfangen.

Antwort1

Wireshark verwendet einen benutzerdefinierten Treiber – Npcap – um Datenverkehr zu erfassen. (Früher war er unter dem Namen WinPcap bekannt.) SieheSoftwareentwicklung mit Npcap.

Npcap wird nur zum Netzwerk-Sniffing (Paketerfassung) benötigt. Für die normale Kommunikation zwischen Host und VM sollten Sie es nicht benötigen – dafür sollten normale UDP-Sockets ausreichen.

verwandte Informationen