LoginSignup
7
5

More than 1 year has passed since last update.

WSL2でresolv.confが消える問題の解決方法

Posted at

やりたいこと

/etc/resolv.confでnameserverを8.8.8.8にしたい

発生する問題

WSL2/Ubuntu-20.04で/etc/wsl.confgenerateResolvConf = falseを指定した場合に、/etc/resolv.confが削除されてしまう。

$ cat /etc/resolv.conf
cat: /etc/resolv.conf: No such file or directory

/etc/wsl.confを削除すれば/etc/resolv.confは消えないが、resolv.confの中身がデフォルトになってしまう。

解決方法

chattrコマンドで/etc/resolv.confファイルが削除されないように属性を変更する。

手順

  1. /etc/wsl.confにresolv.confを再生成しないように下記を記述
# /etc/wsl.conf
[network]
generateResolvConf = false
  1. /etc/resolv.confにnameserverを指定
# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. chattrコマンドで/etc/resolv.confが削除されないように属性を変更
$ sudo chattr +i /etc/resolv.conf
  1. WSLを再起動して/etc/resolv.confが設定どおりになっているかを確認
$ cat /etc/resolv.conf

# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

さいごに

WSL環境で毎回resolv.confが削除されてしまい、何度もresolv.confを作り直してきました。

Qiitaや技術ブログではresolv.confの書き換え対策しか書かれておらず、解決策を探すのに時間がかかりました。

私と同じような問題で頭を悩ませているエンジニアの手助けになれば幸いです。

7
5
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
7
5