zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【WSL2+Ubuintu】ターミナル開けるたびにresolv.conf書き変わっちゃうの止めたい

★2022年現在、ほとんどの環境ではデフォルトのままで問題ないはずです。以下は何らかの理由でローカルIPをnameserverとしたときに名前解決ができない場合の対応メモでした。

【問題】

wsl2のUbuntuから外に行こうとするとき、nameserverがローカルIPになってて名前解決できない環境があった。
ググると/etc/resolv.confの値を

nameserver 8.8.8.8

ってしてGoogle Public DNS使えばOK、っていうことだったのだけど、
このままだとターミナルを開くたびにresolv.confを書き変える必要があった。

【解決】

wsl.conf(下記に貼り付けます)を/etc/wsl.confとして配置したうえでPCを再起動します

/etc/wsl.conf

[automount]
enabled = true
root = /mnt/
options = ""
mountFsTab = true

[network]
generateHosts = true
generateResolvConf = false

[interop]
enabled = true
appendWindowsPath = true

その後

generateResolvConf = false

の設定によりresolv.conf(のリンク先)が生成されなくなるので、シンボリックリンク解除

sudo unlink /etc/resolv.conf

改めて/etc/resolv.confを作成して配置

sudo vi /etc/resolv.conf

→中身は「nameserver 8.8.8.8」などでよい

/etc/resolv.confが消されちゃわないように属性を変える。

sudo chattr +i /etc/resolv.conf

再起動



【参考】
https://qiita.com/rubytomato@github/items/fdfc0a76e848442f374e
https://docs.microsoft.com/en-us/windows/wsl/wsl-config