VPN接続時、Bashからネットワークにアクセスできなくなる時は
「Windows」でVPNに接続した後、「Bash(WSL上のLinuxディストーション)」からネットワークにアクセスできなくなる問題があります。この問題に対処するには、Linuxディストーション側でDNSサーバーの指定を行います。
具体的には「/etc/resolv.conf 」ファイルを編集します。
またこの作業は「Bash」内で行います。
1.DNSサーバーを調べる
以下のコマンドを実行し、VPN接続を行っているネットワークインターフェースの情報から、現在のDNSサーバーを調べます。
ipconfig.exe /all
DNSサーバーのアドレスをメモしておきます。
2.resolv.confのコピー
以下のコマンドを実行し、編集元とする「/etc/resolv.conf 」をコピーします。
sudo cp /etc/resolv.conf /etc/resolv.conf.new
3.resolv.confの削除
以下のコマンドを実行し、「/etc/resolv.conf(シンボリックリンク)」を削除します。
sudo unlink /etc/resolv.conf
4.resolv.confの復元
以下のコマンドを実行し、「2.」でコピーした「/etc/resolv.conf.new」ファイルのファイル名を「/etc/resolv.conf」に変更します。
sudo mv /etc/resolv.conf.new /etc/resolv.conf
5.resolv.confの編集
以下のコマンドを実行し、テキストエディターで「/etc/resolv.conf」を編集します。
sudo nano /etc/resolv.conf
ここでは例として「nano」を利用しましたが、「vim」等好きなテキストエディターを利用してください。
6.resolv.confの編集内容
最初の行にある「# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line.」コメントを削除し、「1.」で調べたDNSサーバーのアドレスを以下のように記述します。
nameserver DNSサーバーのアドレス
例えば「1.」で調べたDNSサーバーのアドレスが、「192.168.56.10」だった場合、以下のように記述します。
一番上の行に入力してください。
元に戻すには
VPN接続を終了した後など上記の編集を元に戻すには、以下の手順を実行してください。1.作業ディレクトリーの移動
以下のコマンドを実行し、作業ディレクトリーを「/etc」に変更します。
cd /etc
2.resolv.confのファイル名変更
以下のコマンドを実行し、編集した「resolv.conf」のファイル名を変更します。
sudo mv resolv.conf resolv.conf.new
3.シンボリックリンクの作成
以下のコマンドを実行し、オリジナルの「resolv.conf」を指すシンボリックリンクを作成します。
sudo ln -s ../run/resolvconf/resolv.conf resolv.conf