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 Marketplace
  • rink.hockeyapp.net - クラッシュレポートサービス
  • raw.githubusercontent.com - GitHub リポジトリの raw ファイルアクセス
  • vsmarketplacebadges.dev - Visual Studio Marketplace バッジサービス
  • *.vscode-cdn.net - Visual Studio Code CDN
  • vscode.download.prss.microsoft.com - Visual Studio Code ダウンロード CDN
  • download.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.dev/redirect のみ)
  • *.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 を使用する場合、以下の認証ポップアップが表示されます。

proxy

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 に指示できます。警告: これは危険であり、セキュリティ上の問題を引き起こす可能性があるため推奨されません

Linux ユーザー向けの注意点: Linux でプロキシの証明書を追加するには、システム信頼ストアと NSS 信頼ストアの両方に追加する必要があります。具体的な手順はディストリビューションによって異なります。

  • Ubuntu/Debian の場合: 証明書を /usr/local/share/ca-certificates/ にコピーし、sudo update-ca-certificates を実行します。
  • RHEL/CentOS/Fedora の場合: sudo trust anchor --store <証明書ファイル> を使用するか、/etc/pki/ca-trust/source/anchors/ に配置して sudo update-ca-trust を実行します。
  • さらに、certutil -A -n "ProxyCA" -t "CT,," -i <証明書ファイル> -d sql:$HOME/.pki/nssdb を使用して、NSS 信頼ストアに追加してください。

レガシープロキシサーバーのサポート

拡張機能は、現時点では VS Code がサポートするプロキシサポートの恩恵を完全には受けていません。この課題の進捗状況は GitHub で追跡できます。

拡張機能と同様に、いくつかの VS Code 機能(特に CLI インターフェース)もまだ完全にはプロキシネットワーキングをサポートしていません。CLI インターフェースとは、コマンドプロンプトやターミナルから code --install-extension vscodevim.vim を実行した際に得られるものです。この課題の進捗状況は GitHub で追跡できます。

これらの制約により、 http.proxy http.proxyStrictSSL 、および http.proxyAuthorization の変数は VS Code の設定の一部として残っていますが、これら 2 つのシナリオにおいてのみ考慮されます。

トラブルシューティング

VS Code のネットワークの問題をトラブルシューティングするのに役立つリンクをいくつか紹介します。

© . This site is unofficial and not affiliated with Microsoft.