こんにちは、ウチイダです。
いつ頃からかわからないのですが、WSLでの通信が怪しいな…と思うことが増えていました。
たとえばnpm install をするとき、コンソール上のスピナーが止まってしまって、そのまま10分以上動かなくなったりすることが頻発していました。
それだけなら、コーヒーブレイクを兼ねて気長に待つか…と思っていたのですが、先日からGitHubからリポジトリのクローンができなくなるという事態も発生しました。
y-uchiida@LUMIERE:/test_clone$ git clone git@github.com:y-uchiida/my_test_repo.git
Cloning into 'my_test_repo'...
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.
このリポジトリは絶対にあるし、同じPCでPowershell経由でgit clone したら問題なくローンできるのです。
そして不可解なことに、何回か同じコマンドを繰り返していると、成功することがあります。謎だ…
原因究明と対応
さすがにGitHubが使えないのは困ってしまうので、きちんと対応することにしました。
エラーメッセージを見る限り、どうやら名前解決の問題のようなので、それらしいキーワードで色々検索してみます。
すると以下のページを発見。
https://www.reddit.com/r/bashonubuntuonwindows/comments/nt8asc/npm_install_extremely_slow_on_wsl2/
最後のコメントに、「いろいろ試して、ついに解決方法を見つけた」(意訳)と書かれています。
I tried every solutions here, but nothing works for me. But I found solutions.
in wsl, type below.
sudo rm /etc/resolv.conf
sudo bash -c ‘echo “nameserver 8.8.8.8” > /etc/resolv.conf’
sudo bash -c ‘echo “[network]” > /etc/wsl.conf’
sudo bash -c ‘echo “generateResolvConf = false” >> /etc/wsl.conf’
sudo chattr +i /etc/resolv.confAfter that, type below in cmd with administrator.
wsl –shutdown
https://www.reddit.com/r/bashonubuntuonwindows/comments/nt8asc/comment/hk7zpbw/?utm_source=share&utm_medium=web2x&context=3
このコメントの通り、resolv.confで指定するネームサーバーを変更したら解決しました。
変更前に色々と実験をしてみたものの、やはりネームサーバの問題のようです。
実験した内容は、おいおいどこかで書くかもしれません。
とりあえずこの変更により、困りごとが色々解消しました。
npm install が止まってしまうのも、git cloneが名前解決できないのも直ったので、とても快適になりました。
こころなしか、Docker pullまで早くなったような気がします。
免責
この変更による副作用が出てくるのか、現時点ではなんとも言えません。
設定変更の際は、バックアップを取るなどしてください。
まとめ
実はnpm install が遅い件については以前からちょくちょくググったりしていたのですが、それらしい情報がなかなか見つからなかったんですよね…
Cドライブ側にデータを置いていると遅い、という情報はたくさん出てきたのですが。
今回は英語の情報に絞って検索をかけて、上記のページに辿り着きました。
英語での検索、やっぱり大事ですね。。。
以上です。あなたのお役に立てば嬉しいです。