Windows Linux サブシステムで sshd サービスを開始できません。私は使用しsudo service ssh restart
てから得る。
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
sshd: ../sysdeps/posix/getaddrinfo.c:2583: getaddrinfo: Assertion `(__extension__ ({ const struct in6_addr *__a = (const struct in6_addr *) (sin6->sin6_addr.__in6_u.__u6_addr32); __a->__in6_u.__u6_addr32[0] == 0 && __a->__in6_u.__u6_addr32[1] == 0 && __a->__in6_u.__u6_addr32[2] == __bswap_32 (0xffff); }))' failed.
Aborted (core dumped)
私のコンピュータでポート22が利用可能であることを確認しました。
答え1
問題はinitctl
簡単です。 Linux用のWindowsサブシステムはUpstartを実行せず、他のサービスマネージャも実行しません。話すべきスタートアップ企業はありませんでした。 Ubuntu 14パッケージメンテナンススクリプト(および他のスクリプト)は、Upstartを正しく確認せずに存在すると仮定することを好みます。これは、サービスマネージャがsystemdに変更され、AskUbuntu Stack Exchangeを介して多くのツールがまだUpstartを探しているUbuntu 16にアップグレードするときにWindowsサブシステムでUbuntu 14ツールを実行するのと同じ問題です。 Linux用。
実際のアサーション失敗は既知の問題で、2016年10月に解決されたようです。これは、IPv6 と IPv4 の結合サポートに関連しています。 GNU C ライブラリは、IPv4 専用モードでの IPv4 マッピング IPv6 アドレスについて 1 つを想定しています。 Windows NT カーネルと Windows Linux サブシステムは別の機能を提供します。
追加読書
- getaddrinfo により sshd が失敗します。。 WSLバグトラッカー#1113。マイクロソフト。 GitHub。
- Conda と pip が ../sysdeps/posix/getaddrinfo.c:2583: getaddrinfo: アサーションと競合しています。。 WSLバグトラッカー#1331。マイクロソフト。 GitHub。
- ソケットがすでにバインドされている場合、IPV6_V6ONLYソケットオプションは失敗するはずです。。 WSLバグトラッカー#982。マイクロソフト。 GitHub。
- https://askubuntu.com/questions/614970/
- https://askubuntu.com/questions/799506/
- https://askubuntu.com/questions/841667/