私の仕事は、WSL2 と Windows 10 内から相互に通信できる、C/C++ で記述された 2 つのプログラムを作成することです。WSL2 から Windows 10 にトラフィックを送信することはできますが、C で記述されたシンプルなスニファー プログラム (自分の PC 上) を使用して、WSL2 からの Windows 10 側からのネットワーク トラフィックを選択することはできません。ただし、2 つの WireShark (1 つは Windows 10 で、もう 1 つは WSL2) を開くと、Windows の WSL2 の IP アドレスに送信しようとしている UDP メッセージが確認できます。
- ファイアウォールの受信ルールにポートを設定してみましたが、結果は出ませんでした。
- WSL2 でネットワーク インターフェイスを promisc モードに設定しようとしましたが、結果はありませんでした。
- 私は模範を示してみたここ(WSL2 では結果が出ませんが、WSL1 では動作します。ただし、私は WSL1 には興味がありません)。
- 設定してみましたこのプロジェクト(検索結果はありません)。
- 私は通信の設定を試みたUSB(結果なし。サードパーティのファイアウォールが通信用の指定されたポートをブロックしているというメッセージが表示されましたが、解決には至りませんでした)。
- 私は試してみましたWSL ネットワーク ガイド(検索結果はありません)。
- 企業環境では禁止されているためブリッジを作成できず、ポート転送もできません。
WireShark がどのようにトラフィックをスニッフィングできるのかを理解し、WSL2 送信メッセージ ---> Windows 受信メッセージという単純な通信でそれを自分の側で実装したいと考えています。
答え1
Wireshark は、トラフィックをキャプチャするためにカスタム ドライバー (Npcap) を使用します (以前は WinPcap と呼ばれていました)。Npcap を使用したソフトウェアの開発。
Npcap はネットワーク スニッフィング (パケット キャプチャ) にのみ必要です。ホストと VM 間の通常の通信には必要ありません。通常の UDP ソケットで十分です。