Visual Studio Codeは、デバイス間で拡張機能、設定、スニペットを同期することができますが、これらはすべてMicrosoftのサーバーを通じて行われるため、企業のファイアウォールや厳しいフィルタリングのあるオフィスネットワーク、またはアクセスが制限された地域では利用できないことがあります。その結果、Extensions Marketplaceがフリーズしたり、Settings Syncが接続できなかったり、更新がダウンロードできなくなったりします。この記事では、VS Codeでプロキシを正しく設定する方法を解説し、これらの問題を一度で解決します。
なぜ一部のネットワークでVS Codeはプロキシなしでは動作しないのか
Visual Studio Codeは単なるテキストエディタではありません。内部では常に外部サーバーにアクセスしており、marketplace.visualstudio.comから拡張機能の更新をダウンロードし、vscode.devやGitHub/Microsoftアカウントのサーバーを通じて設定を同期し、エディタ自体の更新を確認し、テレメトリを送信します(無効にされていない場合)。
これらのリクエストはすべて標準のHTTPS接続を介して行われます。ここで問題が発生します:
- 企業ネットワーク — システム管理者はインターネットへの直接アクセスをブロックし、すべてのトラフィックを企業プロキシサーバーを通過させることを要求します。VS Codeはこれを「知らず」、接続できません。
- ホワイトリスト付きオフィスファイアウォール — 特定のドメインのみが許可されており、
marketplace.visualstudio.comはそのリストに含まれていません。 - 地域制限 — 一部の国や地域ではMicrosoftのサービスへのアクセスが制限されているか、不安定です。必要な国のIPを持つプロキシが問題を解決します。
- VPNの競合 — 一部の企業VPNはトラフィックをキャッチしますが、正しく転送しないため、VS CodeがMarketplaceとの接続を失います。
- 不安定なインターネット + キャッシュ付きプロキシ — プロキシサーバーは拡張機能のパッケージをキャッシュし、遅い回線のチームでのインストールを加速します。
これらの問題の症状は似ています: 拡張機能がインストールできないか、ダウンロード中にフリーズし、Settings Syncは認証エラーや「接続できません」と表示し、VS Codeの更新がダウンロードされず、OutputパネルにはECONNREFUSEDやETIMEDOUTのエラーが表示されます。
VS Codeはプロキシをどのように処理するのか: 知っておくべきこと
VS CodeはElectron上に構築されており、ネットワークリクエストにはChromiumエンジンを使用しています。これは、プロキシ設定がブラウザと同様に機能することを意味します — エディタはHTTP、HTTPS、SOCKS5プロキシをサポートしています。
VS Codeがプロキシ設定を探す階層を理解することが重要です:
- システムプロキシ設定 — Windows/macOS/Linuxでシステムプロキシが設定されている場合、VS Codeは自動的にそれを取得します(パラメータ
http.systemProxy)。 - 環境変数 —
HTTP_PROXY,HTTPS_PROXY,NO_PROXY— Linux/macOSの標準的な方法です。 - settings.json内の設定 —
http.proxyや関連オプションを通じてプロキシを明示的に指定します。 - コマンドライン引数 — プロキシフラグを使用してVS Codeを直接起動できます。
優先順位: settings.json内の明示的な設定は環境変数を上書きし、環境変数はシステム設定を上書きします。何かが機能しない場合は、この順序で確認してください。
💡 重要なポイント
VS Codeは2つの異なるネットワークスタックを使用しています: エディタ自体用(Electron/Chromium)と、Node.jsを介して独自のHTTPリクエストを行う拡張機能用です。settings.jsonでのプロキシ設定は両方のスタックに適用されますが、一部の拡張機能はシステム設定を無視し、別の構成を要求します。
settings.jsonを通じてプロキシを設定する: ステップバイステップ
これは最も信頼性が高く推奨される方法です。settings.json内の設定は、VS Codeのすべてのネットワークリクエストにグローバルに適用されます。
ステップ 1: settings.jsonを開く
Ctrl+Shift+P(またはMacではCmd+Shift+P)を押し、「Open User Settings (JSON)」と入力してこの項目を選択します。ユーザー設定ファイルが開きます。
ステップ 2: プロキシパラメータを追加する
必要な行をJSONオブジェクト内に挿入します。さまざまなタイプのプロキシの例:
HTTP/HTTPSプロキシ(認証なし):
{
"http.proxy": "http://192.168.1.100:3128",
"http.proxyStrictSSL": false
}
HTTP/HTTPSプロキシ(ユーザー名とパスワードあり):
{
"http.proxy": "http://username:password@proxy-host:3128",
"http.proxyStrictSSL": false
}
SOCKS5プロキシ:
{
"http.proxy": "socks5://username:password@proxy-host:1080",
"http.proxyStrictSSL": false
}
ステップ 3: パラメータを理解する
| パラメータ | 値 | 使用する場合 |
|---|---|---|
http.proxy |
プロキシのURL | 主要なパラメータ、必須 |
http.proxyStrictSSL |
true / false | false — プロキシが自己署名証明書を使用している場合 |
http.proxyAuthorization |
Base64文字列 | ユーザー名/パスワードを渡す代替方法 |
http.noProxy |
ドメインのリスト | プロキシをバイパスすべきドメイン(localhost、内部ホスト) |
http.systemProxy |
on / off / override | システムプロキシの管理(VS Code 1.87+の新しいパラメータ) |
ステップ 4: VS Codeを再起動する
settings.jsonを保存した後、VS Codeを完全に閉じて再度開いてください。部分的な再起動(Reload Window)は、新しいネットワーク設定が適用されないことがあります。
環境変数を通じたプロキシ (HTTP_PROXY / HTTPS_PROXY)
この方法は、LinuxやmacOSで特に便利で、システムレベルでプロキシが設定され、すべての開発ツールに適用される必要があるチームに適しています — VS Codeだけでなく、npm、pip、gitなどにも適用されます。
Linux / macOS — 永続的な設定
次の行を~/.bashrc, ~/.zshrcまたは~/.profileに追加します:
export HTTP_PROXY="http://username:password@proxy-host:3128" export HTTPS_PROXY="http://username:password@proxy-host:3128" export NO_PROXY="localhost,127.0.0.1,*.local,*.internal"
その後、source ~/.bashrc(またはセッションを再ログイン)を実行し、ターミナルからcode .を実行してVS Codeを起動します — 変数が継承されます。
Windows — システム変数を通じて
「システムのプロパティ」→「詳細設定」→「環境変数」を開きます。HTTP_PROXYとHTTPS_PROXYの変数を「ユーザー変数」セクションに追加します(または「システム変数」で全ユーザーに適用します)。保存後、VS Codeを再起動してください。
コマンドラインから直接プロキシを使用してVS Codeを起動する
迅速に確認する必要がある場合は:
# Linux/macOS HTTP_PROXY=http://proxy-host:3128 HTTPS_PROXY=http://proxy-host:3128 code . # Windows PowerShell $env:HTTP_PROXY="http://proxy-host:3128"; $env:HTTPS_PROXY="http://proxy-host:3128"; code .
プロキシを通じたSettings Sync: 診断と問題解決
Settings Syncは、VS Codeの組み込み機能で、設定、拡張機能、スニペット、ショートカットキー、プロファイルをMicrosoftまたはGitHubアカウントを介してデバイス間で同期します。これはMicrosoftおよびGitHubのサーバーへのHTTPSリクエストを通じて動作し、ここでプロキシが非常に重要です。
プロキシを通じたSettings Syncの一般的なエラー
| エラー | 原因 | 解決策 |
|---|---|---|
| 「サーバーに接続できません」 | プロキシが設定されていないか、ブロックされています | settings.jsonでhttp.proxyを設定する |
| 「認証に失敗しました」 | プロキシがOAuthトークンをキャッチしています | *.microsoft.comのSSLインスペクションを無効にする |
| 「同期はオンですが同期していません」 | 企業プロキシがWebSocketをブロックしています | WebSocketをサポートするプロキシを使用する |
| 同期が「同期中...」でフリーズする | 遅いプロキシによる接続タイムアウト | より高速なプロキシに切り替える |
Outputを通じた診断
表示 → 出力を開き、ドロップダウンリストから「Settings Sync」を選択します。ここでは、すべての接続試行とエラーコードが表示されます。ECONNREFUSED、407 Proxy Authentication Required、またはCERT_UNTRUSTEDの行を探してください — これらのコードはそれぞれプロキシに関する特定の問題を示しています。
407エラーが表示された場合 — プロキシが認証を要求していますので、URLプロキシにユーザー名とパスワードを追加してください。CERT_UNTRUSTEDの場合 — "http.proxyStrictSSL": falseを設定するか、企業のCAのルート証明書を追加してください。
Settings Syncにアクセス可能なドメイン
次のホストがプロキシを通じてアクセス可能であることを確認してください:
login.microsoftonline.com— Microsoftアカウントを介した認証github.com— GitHubを介した認証api.github.com— Gistを介した同期のためのGitHub APIvscode.dev— VS Codeの同期サービス*.vscode-cdn.net— VS CodeリソースのCDN
Extensions Marketplace: なぜ拡張機能がインストールできないのか、そしてその修正方法
VS CodeのMarketplaceは、marketplace.visualstudio.comドメインとMicrosoftのCDNサーバーを介して動作します。プロキシが正しく設定されていれば、拡張機能のインストールは透過的に機能します。しかし、いくつかの特有の問題があります。
拡張機能がインストールされるが動作しない
多くの拡張機能は起動時に独自のネットワークリクエストを行います — たとえば、言語サーバー(LSP)、バイナリ依存関係、またはデータベースの更新をダウンロードします。これらのリクエストは拡張機能内のNode.jsを介して行われ、VS Codeのプロキシ設定に従いますが、拡張機能がHTTP_PROXY変数を考慮している場合に限ります。
拡張機能がプロキシの背後で動作しない場合は、そのドキュメントを確認してください。多くの人気のある拡張機能には独自のプロキシ設定があります。たとえば:
- Python (Pylance/Pylint) — システム環境変数を使用します
- ESLint, Prettier — ローカルで動作し、プロキシは必要ありません
- GitHub Copilot —
api.github.comへのアクセスが必要で、settings.jsonからプロキシを取得します - Remote - SSH — SSHトンネル用にプロキシが必要で、SSH設定で別途設定します
- Docker — システムプロキシDockerデーモンを使用します
拡張機能を手動でインストールする(オフライン)
プロキシが利用できないか不安定な場合、拡張機能は.vsixファイルを介して手動でインストールできます。インターネットにアクセスできるマシンでmarketplace.visualstudio.comから拡張機能のファイルをダウンロードし、その後VS CodeでExtensions → ··· → Install from VSIXを選択します。
VS Codeに適したプロキシの種類
プロキシの種類は、目的によって異なります。開発に関連する主要なオプションを考察します。
| プロキシの種類 | 速度 | 信頼性 | VS Codeに適している場合 |
|---|---|---|---|
| データセンターのプロキシ | ⚡ 高速 | ✅ 安定 | 企業の制限を回避し、拡張機能のダウンロード、CI/CDパイプライン |
| 住宅用プロキシ | 🔄 中程度 | ✅ 高い信頼性 | 地理的に制限されたリソースへのアクセス、特定地域からのテスト |
| モバイルプロキシ | 🔄 中程度 | ✅ 最大の信頼性 | VS Codeにはあまり必要ありませんが、地理的テストを伴うモバイルアプリの開発に役立ちます |
| 企業プロキシ (Squid, ISA) | ⚡ 高速 | ⚠️ 設定に依存 | オフィス環境、企業のポリシーにより必須 |
企業の制限を回避したり、Microsoftサーバーへのアクセスが不安定な国から作業する必要がある開発者にとって、データセンターのプロキシが最適な選択です — 高速で安定しており、パッケージのダウンロードや設定の同期などの技術的なタスクに適しています。
特定の地理的地域からアプリケーションをテストする必要がある場合(たとえば、ドイツやアメリカのユーザー向けにサービスがどのように機能するかを確認する)、必要な国の実際の家庭用ユーザーのIPを持つ住宅用プロキシが役立ちます。
SSLインスペクションを伴う企業プロキシ: 特殊なケース
SSLインスペクション機能を持つ企業プロキシ(中間者攻撃)は、開発者にとって別の頭痛の種です。このプロキシはHTTPSトラフィックを復号し、検査し、再度暗号化し、企業の証明書で署名します。その結果、VS Codeは「不明な」証明書を検出し、動作を拒否します。
症状
- Outputに
CERT_UNTRUSTEDまたはunable to verify the first certificateエラーが表示される - プロキシが正しく指定されているにもかかわらず、拡張機能がインストールできない
- Settings Syncが認証されない
- npmやpipも証明書に関してエラーを出す
解決策 1: SSL検証を無効にする(迅速だが安全性が低い)
{
"http.proxyStrictSSL": false
}
これはプロキシのSSL証明書の検証を無効にする迅速な解決策です。信頼できるプロキシがある内部の企業ネットワークに適しています。
解決策 2: 企業のCA証明書を追加する(正しい方法)
システム管理者から企業のルート証明書(.pemまたは.crtファイル)を取得し、設定に追加します:
{
"http.proxy": "http://corporate-proxy:3128",
"http.proxyStrictSSL": true,
"http.proxyCertificates": true
}
また、OSのシステムストレージに証明書を追加してください — VS Codeはバージョン1.40以降、システム証明書を使用します。Windowsでは、certmgr.mscを介して「信頼されたルート証明書」に証明書をインストールするだけで済みます。Linuxでは、証明書を/usr/local/share/ca-certificates/に追加し、update-ca-certificatesを実行します。
解決策 3: NODE_EXTRA_CA_CERTS変数
VS Codeとその拡張機能はNode.js上で動作するため、環境変数を介して追加のCA証明書を指定できます:
# Linux/macOS export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca.pem" # Windows PowerShell $env:NODE_EXTRA_CA_CERTS="C:\certs\corporate-ca.pem"
チェックリスト: VS Code + プロキシが正しく動作する
このチェックリストを使用して、すべてが正しく設定されていることを確認するか、問題の原因を迅速に特定します。
✅ プロキシの基本設定
settings.jsonに正しいURLを持つhttp.proxyパラメータが記載されています- プロキシのURLにはスキームが含まれています:
http://またはsocks5:// - プロキシが認証を必要とする場合 — ユーザー名とパスワードがURLに指定されています
- 設定変更後、VS Codeは完全に再起動されています
✅ SSLと証明書
- プロキシがSSLインスペクションを伴う場合 — 企業のCA証明書がインストールされています
- または、
"http.proxyStrictSSL": falseが一時的な解決策として設定されています - Outputに
CERT_UNTRUSTEDエラーが表示されていません
✅ Settings Sync
- プロキシを通じて
login.microsoftonline.comとvscode.devのドメインにアクセス可能です - MicrosoftアカウントまたはGitHubを介した認証が成功します
- Output → Settings Syncに接続エラーが表示されていません
- ステータスバーの同期状況がアクティブなアイコンを表示しています
✅ Marketplaceと拡張機能
- Marketplaceでの拡張機能の検索が機能し、結果が表示されます
- 拡張機能のインストールがエラーなく完了します
- ネットワークアクセスを必要とする拡張機能(Copilot、Remote)が正しく動作します
- 拡張機能の更新が自動的にダウンロードされます
✅ 開発者向けの追加ツール
- npmがプロキシを介して動作するように設定されています:
npm config set proxy http://proxy:3128 - gitが設定されています:
git config --global http.proxy http://proxy:3128 - pip(Pythonを使用している場合):
HTTP_PROXY変数が設定されています
結論
VS Codeでのプロキシ設定は、一度行えば永続的にMarketplaceのフリーズ、機能しないSettings Sync、依存関係をダウンロードできない拡張機能の問題を解消します。この記事からの重要なポイントは次のとおりです:
- 最も信頼性の高い方法 —
http.proxyをsettings.jsonに記載すること: エディタ自体とほとんどの拡張機能に対して機能します。 - 環境変数(
HTTP_PROXY,HTTPS_PROXY) — 開発者の環境全体に対するプロキシ設定の統一に便利です。 - SSLインスペクションを伴う企業プロキシは、
proxyStrictSSLを無効にするか、企業のCA証明書をインストールする必要があります。 - Settings Syncは、追加の設定なしでプロキシを介して動作します — MicrosoftおよびGitHubのドメインにアクセスできることが重要です。
- 診断は常にOutput → Settings SyncおよびOutput → Extensionsから始まります — すべてのネットワークエラーがコード付きで表示されます。
インターネットへのアクセスが制限された環境で作業している場合や、特定の地理的地域からアプリケーションをテストする必要がある場合は、データセンターのプロキシを使用して、開発ツールを安定して迅速に動作させることをお勧めします — 高速な接続を提供し、パッケージのダウンロード、設定の同期、リモートリポジトリとの作業などの技術的なタスクに最適です。
```