😽

WSL2でVSCodeと疎通できなくなった話

2021/06/13に公開

WSL2とVSCodeで疎通ができない

いつものように

code .

でwsl2からVSCodeを開こうとしたところ

failed to connect to the remote extension host server (error: websocket close with status code 1006)

のエラーが出てきました。つい昨日Windowsのアップデートをしたので、そのせいかと思い最新のアップデートをアンインストールしてもうまくいかず...。
また、上記のエラーをググってもあまり対策が出てこず困っていました。

pingが通らない

色々調べてみると、そもそもWSL2が外部のネットワークにつながっていないことが判明しました。そもそもWSLのネットワークの設定がおかしかったようです。疑ってごめんね、VSCodeちゃん。
そこでWSL2でネットワークにつながらなく事象について調べてみたところ、これに関連するIssuesを発見しました。

ディスクの圧縮が原因!?

Issuesに書かれている内容で解決した方法が、WindowsのTempフォルダのディスクの圧縮の解除でした[1]。いやいや、うまくいかないやろ、と半信半疑で試したところ、なんとWSL2でpingも通るようになり、VSCodeとの疎通も復活しました!感謝、感謝。しかし、まさか最近行ったディスクの圧縮がWSLに影響するとは...。
操作としては、Windows側でTempフォルダのプロパティ > 属性の詳細設定 > 内容を圧縮してディスク領域を節約するをオフにしました。

まとめ

WSLは比較的新しくWindowsに導入されたものだからなのか、ちょこちょこバグがあり、今回はたまたまクリティカルな地雷を踏んでしまったようです。それでもWindowsで簡便にLinuxを使えるメリットは非常に大きいので、不具合をうまく避けながらWSLを使っていこうと思います。

脚注
  1. https://github.com/microsoft/WSL/issues/5336#issuecomment-815606920 ↩︎

Discussion