WSL2上でVScodeが立ち上がらない場合の解決策

症状

WSL2上で

$code .

とすると

Resolving update.code.visualstudio.com (update.code.visualstudio.com)... failed: Temporary failure in name resolution.
wget: unable to resolve host address ‘update.code.visualstudio.com’                                                   
ERROR: Failed to download https://update.code.visualstudio.com/commit:f30a9b73e8ffc278e71575118b6bf568f04587c8/server-linux-x64/stable to /home/USER1/.vscode-server/bin/f30a9b73e8ffc278e71575118b6bf568f04587c8-1615290693.tar.gz

というエラーがでます.DNS名前解決が出来ていない,ということらしいです.

解決策


そこで,リソルバの設定が記述されてるresolv.confを見ます.

$ 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.80.225

この172.17.80.225という見慣れないIPアドレスがありますが,これはWSL2の仮想DNSサーバらしいです.このサーバがうまく名前解決してくれないことがあるらしいです.
そこでGoogle Public DNSを常時リソルバに設定することで,解決します.つまりnameserverのIPアドレスを8.8.8.8にします.その手順は以下のサイトを参考にしました.

qiita.com