毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。
0. はじめに
WSL2を使っていて、DNSの正引きができなくなる状況になりました。
一時は、/etc/wsl.conf
に
[network]
generateResolvConf = false
を書いて、/etc/resolv.conf
にnameserverを書いて回避していたのですが、
これの問題点は、DNSの解決がnameserverで記載されているところにしか行かず、Windows側のhostsファイルのを使わないのでローカルで動かしているマシンのIPアドレスを/etc/hostsに書いても利用できない事です。
そこで、
/etc/wsl.confはgenerateResolvConf = true
に戻し、/etc/resolv.conf
は自動的にWSL2で生成させるように戻しました。
1. 対応方法
1-1. dnsTunnelingを有効にする
C:\Users\<<ユーザ名>>\.wslconfig
ファイルを作成して
[external]
dnsTunneling=true
の定義を入れる
2. ESETのInternet Securityのブロックを解除
2-1. ESET Internet Scurity画面を開く
「ネットワーク保護」を選択
2-2. ネットワーク保護画面
「ブロックされた通信の解決」を選択
2-3. ブロックされた通信の解決画面
Internet Connection Sharingの「ブロック解除」をクリックする
上記画面はブロック解除された状態
2-4. テスト後にリフレッシュして問題が解決されているか確認
3. 参考資料
ESET Internet Securityインストール環境のWSL2で名前解決ができない問題を解決する - succi0303 blog
https://blog.succi0303.com/entry/2023/11/19/221536
WSL2 で dns の名前解決ができなくなって ネット接続できなくなった場合の対処方法 #Network - Qiita
https://qiita.com/kkato233/items/1fc71bde5a6d94f1b982
4. 問題点
再起動すると再度「ブロック解除」しないといけなかったはず。