Ubuntu で Could not resolve host の対応の備忘録
AWS。
さっそくいろんなところでつまづいてます。
気が付いたときに備忘録を書いていきたいなぁと思います。
同じことにつまづいている方はご参考になったら嬉しいです。
■概要
Ubuntuを使ってAWSのTerraformを勉強するために環境を構築中に
「tfenv list-remote」を実行したら、名前解決できなくてエラーになったので、「nameserver 8.8.8.8」に設定して解決。
WSLは普通のLinuxと動きが違うことが稀にあるみたい?
■現象
Ubuntuを使ってAWSのTerraformを勉強するために環境を構築中。
「tfenv list-remote」を実行したら次のようなエラーになりました。
tfenv list-remote
curl: (6) Could not resolve host: releases.hashicorp.com
Failed to download remote versions from https://releases.hashicorp.com/terraform/
■なんて書いてあるのかな
Could not resolve host
ホストを解決できませんでした。
どこかにアクセスしようとしたけど出来なかったらしい。
あれ?一昨日は何も問題なく動いたのに・・・
■原因を探そう
状況を確認してみよう ①設定ファイルの確認
設定ファイルはこんな感じらしい。
$ cat etc/resolv.conf
#This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
#[network]
#generateResolvConf = false
nameserver 172.17.144.1
状況を確認しよう ②Googleのサイトを確認
Googleにも失敗。
$ ping google.com
ping: google.com: Temporary failure in name resolution
状況を確認しよう ③GoogleのIPで確認
8.8.8.8 GoogleのDNSのIPでトライ。
応答が返ってきた!
ネットワークがダメではないみたい。
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=20.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=19.1 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=20.6 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=31.8 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=119 time=22.7 ms
状況を確認しよう ④秒数の測定 Google
「s」って秒だよね。20秒・・・
$ time getent hosts google.com
real 0m20.037s
user 0m0.000s
sys 0m0.018s
状況を確認しよう ⑤秒数の測定 nameserverの設定値のIP
10秒以上かかっている・・・
$ time getent hosts 172.14.144.1
real 0m10.014s
user 0m0.002s
sys 0m0.006s
■原因を推測
名前解決に時間がかかりすぎてエラーになっているみたい。
■対策方法してみよう
名前解決が原因ならDNSサーバーの設定を変えてみよう。
対処療法的で根本解決じゃないかもしれないけれど・・・
設定変更① バックアップ
念のためバックアップ。
元のファイルをコピー。
cp etc/resolv.conf etc/resolv.conf.org
設定変更② ファイルを開く
管理者権限でファイルをオープン。
sudo vim etc/resolv.conf
設定変更③ DNSサーバーの設定を変更
元の設定の先頭に「#」を記載してコメントアウト。
希望のDNSサーバーのIPを追記して保存。
# nameserver 172.17.144.1
nameserver 8.8.8.8
設定変更④ エラーになったコマンドを試す
上手くできた!
$ tfenv list-remote
1.5.3
1.5.2
1.5.1
■結果
エラーは発生しなくなった。
動くようになってからもスッキリしなくて検索していたら見つけた。
原因と対策はこちらかなと。
スクエニITエンジニアブログ
WSLのDNS設定をカスタムしたい(202203現在)
WSLは便利。Windows上で動いているので稀に普通のLinuxと違う動きをすることもあるかも?頭の隅に入れておこう。
最後まで読んでくださり、ありがとうございました。
■参考にしたところ
見つけた順に
◇Qiita
https://qiita.com/bz0/items/7d4bac34c6cdada59b94
◇Yocto BitBake Question & answer
https://yoctobbq.lineo.co.jp/?q=node/279
◇Ubuntu日本語フォーラム
https://forums.ubuntulinux.jp/viewtopic.php?pid=124975
◇Ubuntuで名前解決ができない
https://kaworu.jpn.org/ubuntu/Ubuntu%E3%81%A7%E5%90%8D%E5%89%8D%E8%A7%A3%E6%B1%BA%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84
◇WSL2 Ubuntu 20.04.4でGithubにコマンドを投げると「Could not resolve hostname github: Name or service not known」となったときの対処法
http://pixelbeat.jp/post-823/
◇WSL DNS resolution is really slow · Issue #6365 · microsoft/WSL · GitHub(英語)
https://github.com/microsoft/WSL/issues/6365
◇WSL DNS resolution is really slow · Issue #6365 · microsoft/WSL · GitHub(Google翻訳で日本語に)
https://github-com.translate.goog/microsoft/WSL/issues/6365?_x_tr_sl=en&_x_tr_tl=ja&_x_tr_hl=ja&_x_tr_pto=sc
◇スクエニITエンジニアブログ
WSLのDNS設定をカスタムしたい(202203現在)
https://blog.jp.square-enix.com/iteng-blog/posts/00015-wsl-dns-custom/