現已釋出!閱讀關於 11 月新增功能和修復的內容。

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 - 崩潰報告服務
  • bingsettingssearch.trafficmanager.net - 產品內設定搜尋
  • vscode.search.windows.net - 產品內設定搜尋
  • raw.githubusercontent.com - GitHub 倉庫原始檔案訪問
  • 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 中無縫工作。

支援的身份驗證方法有

  • 基本
  • 摘要
  • NTLM
  • 協商

在已認證的 HTTP 代理後面使用 VS Code 時,應出現以下身份驗證彈出視窗

proxy

請注意,SOCKS5 代理身份驗證尚未實現;您可以關注 Chromium 問題跟蹤器中的問題

請參閱 Chromium HTTP 身份驗證 以閱讀更多關於 VS Code 中的 HTTP 代理身份驗證的資訊。

SSL 證書

HTTPS 代理通常會重寫傳入請求的 SSL 證書。Chromium 被設計成拒絕由其不信任的證書籤名的響應。如果您遇到任何 SSL 信任問題,有幾種選項可供您選擇

  • 由於 Chromium 使用作業系統的證書信任基礎結構,因此首選選項是將代理的證書新增到您的作業系統的信任鏈中。請參閱 Chromium 根證書策略 文件以瞭解更多資訊。
  • 如果您的代理在 localhost 上執行,您始終可以嘗試 --allow-insecure-localhost 命令列標誌。
  • 如果所有其他方法都失敗了,您可以告訴 VS Code 忽略所有證書錯誤,方法是使用 --ignore-certificate-errors 命令列標誌。警告:這是危險的,並且不推薦,因為它會帶來安全風險。

Linux 使用者須知:要在 Linux 上新增代理的證書,您需要將其新增到系統信任儲存和 NSS 信任儲存。具體步驟因發行版而異

  • 對於 Ubuntu/Debian:將證書複製到 /usr/local/share/ca-certificates/ 並執行 sudo update-ca-certificates
  • 對於 RHEL/CentOS/Fedora:使用 sudo trust anchor --store <certificate-file> 或將其放在 /etc/pki/ca-trust/source/anchors/ 並執行 sudo update-ca-trust
  • 此外,使用 certutil -A -n "ProxyCA" -t "CT,," -i <certificate-file> -d sql:$HOME/.pki/nssdb 將其新增到 NSS 信任儲存。

舊版代理伺服器支援

擴充套件程式尚未從 VS Code 支援的相同代理支援中受益。您可以在 GitHub 中關注此問題的開發。

與擴充套件程式類似,其他一些 VS Code 功能尚未完全支援代理網路,特別是 CLI 介面。CLI 介面是在命令提示符或終端中執行 code --install-extension vscodevim.vim 時獲得的。您可以在 GitHub 中關注此問題的開發。

由於這兩個限制,http.proxyhttp.proxyStrictSSLhttp.proxyAuthorization 變數仍然是 VS Code 設定的一部分,但它們僅在這兩種情況下受到尊重。

故障排除

以下是一些可能幫助您解決 VS Code 網路問題的有用連結

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