LoginSignup
1
0

wsl2+docker ping 8.8.8.8/google.com が通らなかったとき

Last updated at Posted at 2024-03-11

wsl2+dockerで突然名前解決できない場合がある。その時に行った対処法をまとめた。(dockerを先週から使い始めまだまだ分からないことが多いです。説明等の拙さご了承ください。)
結論、ping 8.8.8.8はつながったがgoogle.comがつながっていない。あと少しで解決できそう。

対応したことは以下4つ。

1./etc/wsl.conf 追記
2./etc/resolv.conf 記述
3.powershell7 wsl関連サービス再度立ち上げ
4.cmd wsl --shutdown
5. windows11 再起動

generateResolvConfがtrueだとresolv.confが作られる。
自分は他の対応されてるブログを参考にfalseにし、resolv.confファイルを自分で作成した。

cat /etc/wsl.conf
#上2行追記
[network]
generateResolvConf = false
[boot]
systemd=true

以下、2行付け足すことでDNS名前解決できると散見し、実行。

root@HA000144876:~# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

WSLが再起動するたびに内部のIPアドレスが変わることが関係してるのではと考え、
powershell 7 で以下コマンド三つ打った。
LxssManagerはWindows Subsystem for Linux 関連サービス。Linuxでよく使用されるバイナリのフォーマットである ELF を Windows で動作させる機能に関するものらしい。
hns はコンテナネットワークに関するサービス。Host Network Serviceの略。
その2つをrestartする。

Restart-Service LxssManager
Stop-Service -name "hns"
Start-Service -name "hns"
Get-NetAdapter -IncludeHidden | Where-Object `
>>     {$_.InterfaceDescription.StartsWith('Hyper-V Virtual Switch Extension Adapter')} `
>>     | Enable-NetAdapter -Confirm:$False

結果は以下のようになった。今まで何も表示されなかったが初めて何か出た。

root@HA000144876:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 172.19.149.231 icmp_seq=1 Destination Host Unreachable
From 172.19.149.231 icmp_seq=2 Destination Host Unreachable

次に行ったのはwslの再起動

wsl --shutdown

以下のコマンド打ってから再度立ち上げた。これでも変化がなかったので
いろいろやったが最後にwindows11を再起動した。いろいろなWebサイトではする必要がないとのことだったが結果的にこれでping 8.8.8.8だけ通るようになった。

追記:2024/3/12
vpn4wsl.ps1の起動でvpnとwslのインターフェースを上手く引っ付けてくれた。
そのおかげで全部ネット関係はうまくいった。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0