前回、WSLでReact Native + Expo環境を作ろうという記事を書き、その末尾にも書いていたのですが、expo start
したときに起こる謎のネットワーク不具合について調べたこと、わかったことを書いておきます。
※この記事はQiitaからの転載です。
目次
ネットワーク不具合 #
起こる問題 #
WSLでexpo start
した後、20~30分後くらいにネットワークが繋がらなくなってしまう。
どこのページにアクセスしようとしても以下のようにエラーが表示され、アクセスできません。
ここに表示されているWindowsネットワーク診断ツールを実行してみても、異常がないといわれます。
CONNECTIONをTunnelにした時も、expo start --offline
とオプションをつけた時も、同様の現象が起きます。
一応、Windows自体を再起動すれば、また繋がるようにはなるのですが、短時間の間に都度都度再起動するのはかなり手間ですし、ストレスにもなります。
対応策 #
この現象について調べていても、なかなか情報が見つけられませんでしたが、GitHubにほぼ同じ現象が報告されていたIssueを見つけました。
expo-cli/issues - Host remains without network after a while
ここで緩和策として、以下の手順を踏めばいいとありました。
I found a palliative solution not to restart the machine:
1 - WIN+R -> services.msc
2 - Find LxssManager
3 - Right-click -> RestartThis should restart the WSL service, normalizing the network.
-
Windows + R でファイル名を指定して実行の画面を出し、
services.msc
と入力してOK
-
一覧からLxssManagerを見つける
-
右クリックを押し、再起動を実行
LxssManager is the service that manages the layer that communicates between Windows and Linux. Restarting it is basically equivalent to restarting Windows regarding everything that happens in WSL.
LxssManagerは、WindowsとLinuxの間で通信するレイヤーを管理するサービスらしく、これを再起動することで、Windowsを再起動したときと同じことがWSL上で起こるそうです。
この手順を踏めば即座にWSLが再起動され、ネットワークが繋がるようになります。
課題 #
上記の手順でネットワークが復旧する…のですが、そこからまたexpo start
してしばらくすると、またネットワークが繋がらなくなります…。
This is likely an issue with WSL. There is an issue for this at microsoft/WSL#2913.
どうもこの現象はExpo-Cliというより、WSLの問題らしく、Issueが上がっているそうです。
Can confirm that Windows Insider Build 18890 fixes this issue.
Windows 10 Insider Build 18890では、この問題が修正されたとのこと。
調べてみると、このバージョンは2020年前半にリリース予定の大型アップデート「20H1」のプレビュービルドとなるそうです。
もう少しの間我慢になりますが、正式にリリースがくれば解決できそうですね。(Windows Insider Programに参加する度胸はありません…)
Obs: When I run the expo-cli start in CMD and then run on WSL, a network does not fail anymore….
ちなみにこんなことも書いてありましたが、CMDってことはWindows側にExpoを入れるってことなのかな?と思い、あまり入れたくないので試していません。
直接WindowsにExpo(及びNode.js)を入れてもいいという方は、そうされた方がいいのかもしれませんね。