先日はじめてWSLを使用してみたのだが、以下のような現象になりWSLのUbuntuからインターネットアクセスができない状態になった。
現象
会社ではWSLのUbuntuからインターネットアクセスできるが、家からではインターネットにアクセスできない。
具体的には、ping が返ってこなかったり、apt update がエラーになる。
> ping google.com
いろいろ検索して、ありとあらゆる手段を施してみたのだがダメだった。
以下がその一覧
試したけどダメだったリスト
- DNS の設定情報を変更
/etc/resolv.conf の nameserver を 8.8.8.8 に変更 - ホスト側のネットワーク設定をリセット
- ホスト側のネットワークアダプタ再起動
- WSLのUbuntu側のネットワーク設定変更
解決策
DNSトンネリングという方法で解決しました。
まず、以下のパスに .wslconfig というファイルを作成する。
C:\Users\{ユーザ名}\.wslconfig
上記ファイルに下記を記載する。
[external]
dnsTunneling=true
WSL再起動
wsl --shutdown
この方法は WSL 側から Windows で管理しているDNS情報をネットワークを使わずに取得する事ができるような仕組みになっているそうです。
ありがとう。