概要:
ファイアウォールがWSLサーバーをブロックしています(Ubuntu 18.04)Visual Studio Codeで実行している場合のみ。また、Hyper-V VM(Ubuntu 19.04)がほぼインターネットへのすべての接続を確立するのを妨げています。たとえばSudo apt update
またはブラウジング(何らかの理由で正常にpingできますが、現時点ではこれに焦点を当てません)。
詳細:
多くのトレイルとエラーの努力の結果、私はファイアウォール(アバストプレミア)がこれの唯一の原因であると判断しました。ファイアウォールを10分間無効にすると、これら2つの異なる操作を実行したり、Visual Studio CodeからWSLサーバーに接続したり、仮想化されたUbuntuのパッケージをHyper-Vからナビゲートおよび更新したりできます。
これまでに行ったこと:
VSCodeですべてのポート(インバウンドとアウトバウンド)ですべての接続が許可されていることを確認しました。
許可ルールが設定されているようです。
また、ウイルス対策の例外リストにVSCodeを追加しました。
上記のアクションはいずれも機能せず、ファイアウォールを無効にするだけでした。
質問:
許可するためにファイアウォールに追加する必要があるルール:
注:WSLはVSCodeの外部で完全に機能します。そこからバッチ端末を起動することもできます(ステータスバーの左側からの接続が問題です)。
[〜#〜]更新[〜#〜]:
これは、VSCodeのWSLターミナルから取得した出力です。
Failed to connect to the remote extension Host server (Error: connect ETIMEDOUT 127.0.0.1:62388)
アバストフォーラムの投稿 WSLピコプロセスをサポート この有用なテキストがあります:
アバスト。 Windows Defenderと同様に、現在、picoプロセスを実行するためにLinuxディストリビューション全体を免除する必要があります。これは、企業環境におけるセキュリティに対する許容できないリスクです。アバストが行う必要があるのは、PicoプロセスをWindowsプロセスと同じように扱うことです。マイクロソフトは、プロセス/ポートレベルごとにルールを管理する「スキップアヘッドインサイダー」ビルドでWindowsDefenderの更新プログラムをまもなくリリースします。アバストは同様の設定を実装する必要があります。アバストなどのサードパーティベンダーがWSLと統合するのを支援するためにMicrosoftが提供した2016年のブログがあります。ブログは次のとおりです。 https://blogs.msdn.Microsoft.com/wsl/2016/11/01/wsl-antivirus-and-firewall-compatibility/
Microsoftの記事 Pico Process Overview は、概念をさらに説明しています。
この投稿では、WSLの基盤であるピコプロセスについて説明します。それは、ピコプロセスがWindowsでどのように機能するかを説明し、それらがどのようになってきたか、実装することを決定した抽象化、および出現したWSL以外のさまざまなユースケースの歴史に入ります。
私が知る限り、WindowsのUbuntuリリースは次のフォルダーにあります。
C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_1804.2019.521.0_x64__79rhkp1fndgsc
C:\Users\USERNAME\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
C:\Windows\System32\lxss
アバストフォーラムの投稿が正しければ、これらはUbuntuの実行を許可するためにアバストで免除される必要があるフォルダーです。
アバスト設定に関する限り、以下を有効にすることが 推奨 されています。
これらの設定を有効にした後、再起動する必要があります。
アバストがWSLをサポートするアップデートをリリースするまで、これらはすべて回避策にすぎません。上記の回避策が機能しない場合は、WSLの使用中にアバストファイアウォールを無効にするか、問題が解決するまでアバストを一時停止する必要があります。それまでは、WindowsDefenderはほとんどの目的に十分です。
build-essential
。%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe
ファイアウォールの/usr/lib/apt/methods/http
実行可能ファイルがapt
を使用してパッケージをダウンロードできるようにします。 Ubuntu 18.04の場合、パスは次のとおりです。
VScodeを実行し、 リモート-WSL 拡張機能をインストールします。コマンドプロンプトでWSLからVSCodeを起動します。実行中のディストリビューションに接続し、バックエンドをサイレントインストールするように求められます。
%LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\usr\lib\apt\methods\http
node
実行可能ファイルがリモートのフロントエンドとバックエンドの間で接続できるようにします-WSL拡張。 WSLで、ユーザーのホームフォルダー~/.vscode-server-insiders/bin
に移動し、次のフォルダー名を取得します(実際には、コミットハッシュのような非常に大きな暗号番号)。完全なWindowsスタイルのパスは以前と同じになります。%LOCALAPPDATA%\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\test\.vscode-server-insiders\bin\0f73473c08055054f317c1c94502f7f39fdbb164\node
ここでVSCodeを再起動すると、動作する可能性があります。完全なフォルダパスは、GNU/Linuxディストリビューション名によって異なります。フルパスでスラッシュを混在させないでください。そのパスを取得する方法については、 このQ&A を参照してください。