tabimoba.net

とあるエンジニアの雑記帳

Windows 10上のVirtualBoxのNATが正常に動作しなくなった(不具合が発生した)際の解決方法

Windows 10の一部の端末でVirtualBoxのネットワークが正常に動作しなくなる現象が発生したため、その解決方法をメモとして記載します。

現象

Windows 10環境上のVirtualBox上で動作するゲスト(VM)のネットワークアダプターがNATの場合に、インターネットやイントラネットに繋がらない状態となる。具体的には、NAT外に対して、TCP/UDP接続が一切行えなくなる。ただし、pingは疎通可能。 これにより、ゲストから、Webブラウザ、cURLなどのHTTP/HTTPSクライアントソフトウェアからのアクセスや、yum、apt-getなどのパッケージマネージャの利用が行えなくなる。 OSの再起動や、VirtualBoxの再インストールを行っても現象が解消されない。

詳細

  • NATで接続できない
    • NAT外へのpingは通る
    • TCPやUDPが疎通不能
      • DNSで名前解決できない
        • DHCPで設定されたDNS、Google Public DNS(8.8.8.8)、いずれも名前解決できない
      • NAT外のHTTP/HTTPSサーバへ接続できない
        • 接続先(LAN内, WAN)に関係なく事象が発生する
          • インターネット上のリソースへアクセスできない
            • Yahoo!JapanやGoogleなどへアクセスできない
            • yumやapt-getなどのパッケージマネージャーが利用できない
          • LAN内のリソースへアクセスできない
            • ルーターや無線LAN APの管理UI、自宅サーバなどへアクセスできない
        • Webブラウザ、cURLなど、クライアント環境に関わらず発生する
      • NAT外のSSHサーバへ接続できない
    • ホストオンリーアダプターは問題なく利用可能
      • ホスト-ゲスト、ゲスト-ゲストともにpingも通るし、TCPやUDPも通る
        • ホストオンリーアダプターのセグメント内であれば、そのセグメント内に存在するHTTP/HTTPSサーバも、SSHサーバも問題なく接続できる
    • ブリッジ接続は問題なく利用可能
      • pingもTCPもUDPも通る
        • HTTP/HTTPSサーバも問題なく接続できる
        • SSHも問題なく接続できる
        • yumやapt-getも問題なく行える
      • LAN内(ホストと同一セグメント)にDHCPサーバが存在する場合は、DHCPサーバからゲストに対するIPアドレス払い出しも問題なく行われる
  • Windows 10でのみ当該問題が発生
    • macOSやLinuxでは同様の現象は発生せず
    • ただし、Windows 10でも発生する端末とそうでない端末が存在する
  • OSを再起動したり、端末の電源を入れなおしても現象が解消されない
  • VirtualBoxを再インストール(上書き、アンインストール→インストール)しても現象が解消されない

対応

Windows 10のコマンドプロンプトを管理者権限で開き、以下のコマンドを実行することで現象が解消されました。

netsh winsock reset

※参考URLでは一時的に解消される旨記載されていましたが、現在のところ再起動後も現象が再発することなく利用できています。

参考