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 問題跟蹤器中的這個問題。
請參閱 Chromium HTTP 身份驗證以閱讀有關 VS Code 中 HTTP 代理身份驗證的更多資訊。
SSL 證書
HTTPS 代理通常會重寫傳入請求的 SSL 證書。Chromium 的設計是拒絕由其不信任的證書籤名的響應。如果您遇到任何 SSL 信任問題,有以下幾個選項可供選擇:
- 由於 Chromium 使用作業系統的證書信任基礎架構,首選的選項是將代理的證書新增到作業系統的信任鏈中。請參閱 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 設定的一部分,但它們僅在這兩種情況下受到尊重。
故障排除
以下是一些可能有助於您排查 VS Code 中網路問題的有用連結: