Cisco AnyConnectでVPN接続した際、WSL2でインターネットにアクセスできなくなった場合の対処法


発生事象

Windows環境において、Cisco AnyConnectを用いてVPN接続した場合、WSL2のLinuxディストリビューションからDNSで名前解決ができなくなり、インターネットにアクセスできない事象が発生するケースがあります。

当記事ではその際の対処法を示します。

なお、以下の環境において有効であることを確認しています。

  • Windows 10 (OSビルド:19042)
  • Ubuntu 20.04 (Linuxディストリビューション)
  • AnyConnect 4.9.01095

対処法

AnyConnectでVPN接続したときや、WSL2のLinuxディストリビューションを起動・再起動した都度、以下を実行する。

  1. (未接続の場合)AnyConnectでVPN接続する
  2. ホスト(Windows)側で、管理者権限でPowerShellを起動し、以下のコマンドを実行する

    Get-NetAdapter | Where-Object {$_.InterfaceDescription -Match "Cisco AnyConnect"} | Set-NetIPInterface -InterfaceMetric 6000
    
  3. Linuxディストリビューション側で、以下リンク先のwsl-fix-resolvconf.shを実行する(実行するとsudoが求められるので、実行ユーザのパスワードを入力する)
    Gist / wsl-fix-resolvconf.sh

参考

以下のページを参考にしました。