Visual Studio Code のネットワーク接続
Visual Studio Code は Electron 上に構築されており、Chromium のネットワークスタックのすべての機能を利用できます。これは、VS Code ユーザーが Google Chrome で利用可能な多くのネットワークサポートを受けられることも意味します。
一般的なホスト名
VS Code のいくつかの機能 (自動更新メカニズム、拡張機能の検索とインストール、テレメトリなど) は、動作するためにネットワーク通信を必要とします。これらの機能がプロキシ環境で適切に動作するには、製品が正しく構成されている必要があります。
VS Code が使用する特定のドメインを許可する必要があるファイアウォールの背後にいる場合は、通信を許可する必要があるホスト名のリストを次に示します。
update.code.visualstudio.com
- Visual Studio Code のダウンロードおよび更新サーバーcode.visualstudio.com
- Visual Studio Code のドキュメントgo.microsoft.com
- Microsoft のリンク転送サービスmarketplace.visualstudio.com
- Visual Studio Marketplace*.gallery.vsassets.io
- Visual Studio Marketplace*.gallerycdn.vsassets.io
- Visual Studio Marketplacerink.hockeyapp.net
- クラッシュレポートサービスbingsettingssearch.trafficmanager.net
- 製品内設定検索vscode.search.windows.net
- 製品内設定検索raw.githubusercontent.com
- GitHub リポジトリの生ファイルアクセスvsmarketplacebadges.dev
- Visual Studio Marketplace バッジサービス*.vscode-cdn.net
- Visual Studio Code CDNvscode.download.prss.microsoft.com
- Visual Studio Code のダウンロード CDNdownload.visualstudio.microsoft.com
- Visual Studio ダウンロードサーバー、一部の VS Code 拡張機能 (C++、C#) の依存関係を提供vscode-sync.trafficmanager.net
- Visual Studio Code 設定同期サービスvscode-sync-insiders.trafficmanager.net
- Visual Studio Code 設定同期サービス (Insiders)vscode.dev
- 拡張機能または設定同期のために GitHub または Microsoft でログインする際に使用されます*.vscode-unpkg.net
- Web 拡張機能のロード時に使用されますdefault.exp-tas.com
- Visual Studio Code 実験サービス、実験的なユーザーエクスペリエンスを提供するために使用されます
プロキシサーバーのサポート
VS Code は Google Chromium と全く同じプロキシサーバーサポートを備えています。Chromium のドキュメントからの抜粋です
"The Chromium network stack uses the system network settings so that users and administrators can control the network settings of all applications easily. The network settings include:
- proxy settings
- SSL/TLS settings
- certificate revocation check settings
- certificate and private key stores"
これは、プロキシ設定が自動的に検出されることを意味します。
それ以外の場合は、次のコマンドライン引数を使用してプロキシ設定を制御できます
# Disable proxy
--no-proxy-server
# Manual proxy address
--proxy-server=<scheme>=<uri>[:<port>][;...] | <uri>[:<port>] | "direct://"
# Manual PAC address
--proxy-pac-url=<pac-file-url>
# Disable proxy per host
--proxy-bypass-list=(<trailing_domain>|<ip-address>)[:<port>][;...]
これらのコマンドライン引数の詳細については、Chromium ネットワーク設定を参照してください。
認証プロキシ
認証プロキシは、PR #22369 の追加により、VS Code 内でシームレスに動作するはずです。
サポートされている認証方法は次のとおりです
- Basic
- Digest
- NTLM
- Negotiate
認証された HTTP プロキシの背後で VS Code を使用する場合、次の認証ポップアップが表示されるはずです
SOCKS5 プロキシ認証のサポートはまだ実装されていないことに注意してください。Chromium のイシュートラッカーでこのイシューを追跡できます。
VS Code 内の HTTP プロキシ認証の詳細については、Chromium HTTP 認証を参照してください。
SSL 証明書
多くの場合、HTTPS プロキシは受信リクエストの SSL 証明書を書き換えます。Chromium は、信頼しない証明書によって署名された応答を拒否するように設計されています。SSL 信頼に関する問題が発生した場合は、いくつかの利用可能なオプションがあります
- Chromium は OS の証明書信頼インフラストラクチャを使用しているため、推奨されるオプションはプロキシの証明書を OS の信頼チェーンに追加することです。詳細については、Chromium ルート証明書ポリシーのドキュメントを参照してください。
- プロキシが
localhost
で実行されている場合は、常に --allow-insecure-localhost コマンドラインフラグを試すことができます。 - それでも解決しない場合は、--ignore-certificate-errors コマンドラインフラグを使用して、VS Code にすべての証明書エラーを無視させることもできます。警告: これはセキュリティ上の問題を引き起こす可能性があるため、危険であり、推奨されません。
レガシープロキシサーバーのサポート
拡張機能は、VS Code がサポートするのと同じプロキシサポートをまだ利用できていません。このイシューの開発状況は GitHub で確認できます。
拡張機能と同様に、VS Code の他のいくつかの機能、特に CLI インターフェースは、まだプロキシネットワークを完全にサポートしていません。CLI インターフェースとは、コマンドプロンプトまたはターミナルから code --install-extension vscodevim.vim
を実行したときに得られるものです。このイシューの開発状況は GitHub で確認できます。
これら両方の制約により、http.proxy、http.proxyStrictSSL、および http.proxyAuthorization 変数は依然として VS Code の設定の一部ですが、これら2つのシナリオでのみ尊重されます。
トラブルシューティング
VS Code でのネットワーク問題のトラブルシューティングに役立つリンクをいくつか紹介します