質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

2回答

6872閲覧

wsl2のubuntuでping 127.0.0.1がNetwork is unreachable

hyogo

総合スコア23

WSL(Windows Subsystem for Linux)

WSL (Windows Subsystem for Linux) は、Windows10のOS上でLinux向けのバイナリプログラムを実行可能にする機能です。また、WindowsOSのAPIを用いた仕組みを提供しており、Linux側からWindowsOSへのファイルアクセスもできます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2020/08/09 12:11

wsl2でubuntuを使っているのですが、今日から外への通信ができなくなりました。
勉強中で何を調べたら良いかがわからないレベルです。
タイトルに関連するワードでググっても解決方法を見つけられず困っています。
何を確認すれば良いかヒントでも良いので頂きたいです。よろしくお願いいたします。

windows10

  • win10 pro
  • バージョン2004
  • 19041.388

ubuntu

$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.1 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.1 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal

気づいたきっかけ

git pushしようとしたらおかしいことに気づきました。
ちなみに同一ネットワーク上の別のwin10でwsl2にubuntuを入れてgit pushしても問題なくうまくいきます。

ssh: Could not resolve hostname github.com: Temporary failure in name resolution fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

参考1を見てping確認

ping -c 2 localhost ping: connect: Network is unreachable ping 80 ping: connect: Network is unreachable ping 127.0.0.1 ping: connect: Network is unreachable ping google.com ping: google.com: Temporary failure in name resolution

shutdownができないことにも気づく

win10上でwsl -shutdownとubuntu上でshutdownは同じだと理解しています。
違ってましたらご指摘ください。

shutdownでpingが通ればと思いやってみたのですが、
ubuntu上ではこうなります。

$ shutdown System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down Failed to talk to init daemon.

別のpowershellをwindows10上で

wsl --shutdown

ではshutdownできました。起動後、pingの結果は変わらずでした。
参考2にある方法を取ろうにも以下のようになりますし、そもそもpingでの状態のように外への通信が全くできません。

$ sudo apt install git dotnet-runtime-3.1 daemonize Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package dotnet-runtime-3.1

参考

参考1
WSL2にてネットワーク接続ができないです。

参考2
【WSL2】systemctlが動かない問題をきちんと解決する | Qrunch(クランチ)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rubytomato

2020/08/11 12:49

ubuntuのシェルで "ip addr" コマンドを実行した結果を追記してください それとwsl2の環境は最悪リセットしても問題ないでしょうか?
hyogo

2020/09/02 05:17

wsl2のubuntuでpingが通るようになりました。 返事いただく前にかなりいろいろいじり倒して解決しました。 追記修正依頼に気づくまでにかなり日が経ってしまったのといろいろ試したので記憶で回答することをご容赦ください。 以下、確証はないのですが誰かの役に立てば幸いです。 ubuntuの再インストールも試みたのですが変わらずでした ip addrを実行して 全てのネットワークデバイスのstatusがDownがになっていました。 全てのネットワークデバイスを一つずつ再起動しました。 再起動はip link set dev デバイス名 upだったと思います。 再度ip addrをしたらeth0だけstatusがUpになりました。 ping localhostが通る ping google.comが通らない ubuntuの再起動とwindows10の再起動で完全に直ったと記憶してます。
guest

回答2

0

ベストアンサー

shutdownができない

Windows 10でのwsl --shutdownとubuntu上のshutdownは異なります。
Microsoftの文書には明確に記載されていないのですが、shutdownコマンドはsudoを付けても正常動作しません。仕様です。Windows側で、wsl --shutdown または wsl -t OS-Name を使います。

127.0.0.1が繋がらない

WSL2はHyper-Vの仮想スイッチを使用して、特殊な内部ネットワーク機能を実現しているのですが、これが時々問題を起こします。

私も以前、仮想スイッチをいろいろと設定しているうちに、ネットワーク機能が一切使えなくなった事がありました。試行錯誤したのですが、結局下記手順で使える様になりました。ご参考までに。

  • Ubuntuのアンインストール
  • Hyper-Vでダミーの内部仮想スイッチを作成(これは使わない)
  • Ubuntuの再インストール

投稿2020/08/28 13:38

ahidaka

総合スコア391

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hyogo

2020/09/02 05:32

ありがとうございます。 仮想スイッチやネットワークアダプタなどがいまいちわかならいのでこういったトラブルにとても弱いです。勉強します。 exitしたらwsl2Ubuntu内からhostに戻れることを知りました。 exitしてwsl -t Ubuntuでshutdownするようにしました。 今まで別のpowershellを立ち上げてwsl -t Ubuntuしていました。
ahidaka

2020/09/03 15:02

すみません。この回答を書いた後、たまたま実験していて気付いたのですが、WSL2をインストールしただけでは、Hyper-V管理ツールは自動インストールされないのでした。従って前述の「ダミーの内部仮想スイッチを作成」するのは「Hyper-V管理ツール」なのですが、これはコントロールパネルの「プログラムと機能」のWindows機能の有効化から、Hyper-V(Hyper-VプラットフォームとHyper-V管理ツール)を有効化してインストールする必要があります。 なおこれは、pro以上でないとできずにHomeでは設定出来ないので注意してください。説明足らずで申し訳ございません。
hyogo

2020/09/06 02:20

追記のお返事ありがとうございます。 > pro以上でないとできずにHomeでは設定出来ないので注意してください。 という点について気になり https://www.atmarkit.co.jp/ait/articles/2004/01/news008.html ---引用-------------- Windows 10 HomeはHyper-Vを搭載していませんが、Windows 10 October 2018 Update(バージョン1809)以降にはWSL 2に対応するために「仮想マシンプラットフォーム(VirtualMachinePlatform)」という機能が既に用意されています(画面2)。 ----------------- を読んでみました。 今、win10 homeとproの両方でwsl2にubuntuを入れて開発環境を整えています。 ・Win10 homeではVirtualMachinePlatform ・Win10 proではHyper-V の有効化が必要で、通常はwsl2インストール前にwindows機能の有効化から有効にする必要があるということでしょうか? Hyper-vやVirtualMachinePlatformを有効化したような覚えがなく、 今後、環境を再構築する必要があるときに、Win10 homeではVirtualMachinePlatform、Win10 proではHyper-Vの有効化を確認する必要があるという認識で良いかが気になりました。 余談ですが、wsl2を使うようになる前はhomeとproともにVMwareを別の用途でインストールして使っていました。今でも一部の環境ではvmwareを使っています。このおかげでHyper-V(win10pro)やvirtualMachinePlatform(win10home)がすでに有効になっていて有効化したような覚えがなかったのかなと。 そんなことありえるのかと思われるかもしれませんが、今までwsl2がhyper-vを使っていたことすらわかっていませんでした。
guest

0

日が経ってからの記入なので記憶があいまいですがrubytomatoさんの追記修正依頼をヒントに思い出しながら書きました。

ubuntuの再インストールも試みたのですが変わらずでした
ip addrを実行して
全てのネットワークデバイスのstatusがDownがになっていました。
全てのネットワークデバイスを一つずつ再起動しました。
再起動はip link set dev デバイス名 upだったと思います。
再度ip addrをしたらeth0だけstatusがUpになりました。

ping localhostが通る
ping google.comが通らない

ubuntuの再起動とwindows10の再起動でした。

投稿2020/09/02 05:36

hyogo

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問