Windows10
ubuntu16.04
BashOnUbuntuOnWindows
WindowsSubsystemForLinux

【WSL】ApacheやSSHなどサービスが起動しない【Bash on Ubuntu on Windows】

Windows10上で簡単にUbuntu環境が扱えて、Apache等コマンドライン上で動作するソフトウェアなら多くのパッケージが動くなど何かと話題のこれ、ハマりました。

問題概要

下記のようにApacheやSSHなど各種サービスが起動できない。

Apacheのエラーの例
$ sudo apachectl start
[sudo] userのパスワード:
apache2: ../sysdeps/posix/getaddrinfo.c:2603: getaddrinfo: Assertion `IN6_IS_ADDR_V4MAPPED (sin6->sin6_addr.s6_addr32)`
failed.
Action 'start' failed.
The Apache error log may have more information.

ネット上の情報

  • UbuntuのIPv6を無効にしてみたら
  • Windows側のIPv6を無効にしてみたら
  • Windows側のVMwareやVirutalBoxのアダプタ無効にしたら動いた
  • (中国国内で中国製の)VPNソフトウェアを消したら動いた
  • (中国国内で中国製の)ウイルス対策ソフトウェアを無効にしたら動いた
  • ファイアウォールを無効化
  • クリーンインストールで直った

クリーンインストール以外の手段は試したくなかったものの、結局どれもうまくいかず、PCのリフレッシュを行ったら動くようになった。

原因

やはりネットワーク関連のソフトウェアが不具合を引き起こしているらしく、自分の環境ではnetworxという通信速度・通信量測定のソフトウェアが原因だった。これをインストールした瞬間に上記のエラーを吐くようになり、アンインストールで改善した。
初めてWSLを使った人がこのエラーに出会ったら、ドライバを必要とするソフトウェアを中心にネットワーク関連のソフトウェアをあぶり出して一つずつアンインストール→確認するしかないかもしれない。

にしても、殆どネイティブ動作と変わらない速度でUbuntuが小窓で動くのは楽しいですね!!