web-dev-qa-db-ja.com

Windows WSL 2がホストマシンにpingできない

今日はWindowsWSL2にアップグレードしました。問題は、ホストマシンにpingできないことです。

ホストマシンのIPを/etc/resolv.confから取得しました。

WSL 2 Ubuntuコンソールから:

  • 8.8.8.8にpingできます。
  • 172.17.12.65(ホストマシン)にpingを実行できません。
  • Www.google.comにpingできません

助けてください、ありがとう!

2
Jie

このgithubスレッドからのいくつかの兆候は、それが単にトラフィックをブロックしているWindowsホスト上のファイアウォールである可能性があることを示唆しています...

https://github.com/Microsoft/WSL/issues/4192#issuecomment-503804455

Xtremeperfの引用:

「実際には... WSL2は「パブリックネットワーク」上にあると見なされるため、おそらくWindowsファイアウォールによってブロックされています。これらのポートはまだ自動的に構成されていないため、Windowsファイアウォールで手動で開く必要があります。この初期のベータリリースでのインストール。」

Harrymcやandoryuが言ったように、 "/ etc/resolv.conf"の内容をチェックしてWSL2 IPをチェックしてください。 AFAIKそれはブロックを解除するものでなければなりません。

残念ながら、WSL2の仮想スイッチアダプター接続プロファイルはデフォルトで「パブリック」であり、アダプターにVLAN IDを割り当てることができない限り、永続的に「プライベート」に設定することはできませんが、私はしません現在、Microsoftの仮想マシンプラットフォーム機能でこれを行う方法を知っています。これは私が使用しているものです。うまくいけば、Microsoftは将来のリリースでこれを簡単に変更できるようにする予定です。Microsoftのハイパーバイザープラットフォーム機能のみ。誰かが知っているなら、それは役に立つかもしれません。

望ましくない場合もありますが、ホストファイアウォールで「パブリック」プロファイルの受信ICMPエコートラフィックを許可するだけで済みます。 Windows Defenderの使用例:

  1. コントロールパネルからWindowsDefenderファイアウォールを起動します。
  2. 「詳細設定」(左側)を選択します
  3. 「インバウンドルール」を右クリックし、「新しいルール...」を選択します。
  4. 「カスタム」を選択し、「次へ」をクリックします
  5. 「すべてのプログラム」を選択し、「次へ」をクリックします
  6. 「ICMPv4」プロトコルタイプを選択し、「カスタマイズ...」をクリックします
  7. 「特定のICMPタイプ」を選択し、「エコー要求」をチェックして「OK」をクリックし、次に「次へ」をクリックします
  8. 「任意のIPアドレス」を選択するか、ローカルとリモート(必要な場合)に必要な特定のアドレスを追加して、「次へ」をクリックします。
  9. 「接続を許可する」を選択し、「次へ」をクリックします
  10. パブリック、ドメイン、プライベートを選択し、「次へ」をクリックします
  11. ルールに意味のある名前を付けて、[完了]をクリックします
1

私が同じ問題にぶつかったときにだけ答えます。

まず、暗黙のコメントとは異なり、172.16 . --172.31 .は予約済みのプライベートIPアドレスであるため、172.17.12.65がホストに有効であると確信しています。

Cmd.exeのipconfigで、/ etc/resolv.confのネームサーバーアドレスが実際にはvEthernet(WSL)のアドレスであることがわかりました。

多分問題はhyper-vイーサネットアダプターと関係があるのでしょうか?

1
andoryu-