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

使用遠端隧道進行開發

Visual Studio Code 的 遠端 - 隧道 擴充套件允許您透過安全隧道連線到遠端計算機,例如桌面 PC 或虛擬機器 (VM)。您可以從任何地方的 VS Code 客戶端連線到該計算機,而無需 SSH。

隧道透過 Microsoft dev tunnels 安全地將資料從一個網路傳輸到另一個網路。

這可以消除在 VS Code 客戶端計算機上需要存放原始碼的需求,因為該擴充套件直接在遠端計算機上執行命令和其他擴充套件。該擴充套件將在遠端作業系統上安裝 VS Code Server;該伺服器獨立於遠端作業系統上已有的任何 VS Code 安裝。

Remote Tunnels architecture overview

VS Code 可以提供本地質量的開發體驗——包括完整的 IntelliSense(補全)、程式碼導航和除錯——無論您的程式碼託管在哪裡

開始使用

您可以透過兩種方式使用隧道

這兩種方式都會產生相同的隧道功能——您可以選擇最適合您的工具。如果您無法在遠端計算機上安裝完整的 VS Code Desktop,CLI 是一個很好的選擇。如果您已經在 VS Code 中進行了一些工作,然後想為當前計算機啟用隧道,使用 VS Code Desktop UI 會很方便。

我們將在下面的部分中介紹這兩種方式。

使用 'code' CLI

您可以透過 code CLI 建立和使用隧道。

  1. 在您希望從 VS Code 客戶端進行開發的遠端計算機上安裝 code CLI。CLI 會在 VS Code 客戶端和您的遠端計算機之間建立隧道。CLI 會自動整合到 VS Code Desktop 中——無需額外設定。

    替代下載

    或者,您可以在我們的下載頁面上透過獨立安裝獲取 CLI,這與 VS Code Desktop 安裝是分開的。

    VS Code download options with CLI highlighted

    您也可以透過遠端計算機的終端安裝和解壓 CLI。如果您的遠端計算機沒有 UI,這可能會特別有用。

    curl -Lk 'https://vscode.com.tw/sha/download?build=stable&os=cli-alpine-x64' --output vscode_cli.tar.gz
    
    tar -xf vscode_cli.tar.gz
    

    注意:如果您使用的是獨立安裝或終端安裝,以下各節中的命令將以 ./code 開頭而不是 code

  2. 使用 tunnel 命令建立安全隧道

    code tunnel
    

    此命令將在本地下載並啟動 VS Code Server,然後建立到它的隧道。

    注意:首次在計算機上啟動隧道時,系統會提示您接受伺服器許可條款。您也可以在命令列中傳遞 --accept-server-license-terms 以避擴音示。

  3. 此 CLI 將輸出一個與此遠端計算機關聯的 vscode.dev URL,例如 https://vscode.dev/tunnel/<machine_name>/<folder_name>。您可以在選擇的客戶端上開啟此 URL。

  4. 首次在此客戶端上開啟 vscode.dev URL 時,系統會提示您在 https://github.com/login/oauth/authorize... URL 上登入您的 GitHub 帳戶。這將向隧道服務驗證您,以確保您有權訪問正確的遠端計算機集。

使用 VS Code UI

  1. 在您希望啟用隧道訪問的遠端計算機上開啟 VS Code。

  2. 在 VS Code 的“帳戶”選單中,選擇“啟用遠端隧道訪問”選項,如下圖所示。您也可以開啟命令面板(F1),然後執行命令遠端隧道:啟用遠端隧道訪問...

    Turn on Remote Tunnel Access via the VS Code Account menu

  3. 系統會提示您登入 GitHub。登入後,您當前的計算機將啟動一個隧道,您將能夠遠端連線到這臺計算機。

    Prompt that remote tunnel access is enabled

  4. 在您選擇的客戶端中,您可以開啟上面通知中的 vscode.dev 連結,然後開始編碼!

注意:遠端計算機只有在 VS Code 保持執行時才能透過隧道訪問。一旦您退出 VS Code,就無法再隧道連線到它,直到您再次在遠端計算機上啟動 VS Code 或執行 code tunnel CLI 命令。

遠端隧道擴充套件

透過 code CLI 或 VS Code UI 開啟的 vscode.dev 例項預裝了遠端 - 隧道擴充套件。

如果您已經在 VS Code(桌面版或 Web 版)中工作,並希望連線到遠端隧道,您可以直接安裝並使用 遠端 - 隧道 擴充套件。安裝擴充套件後,開啟命令面板(F1)並執行命令遠端隧道:連線到隧道。您將能夠連線到任何具有活動隧道的遠端計算機。

您也可以在遠端資源管理器中檢視您的遠端計算機,可以透過命令遠端資源管理器:聚焦遠端檢視來操作。

Remote Explorer view with Tunnels

與其他遠端開發擴充套件一樣,您的遠端計算機的名稱將顯示在左下角的綠色遠端指示器中。單擊此指示器是探索遠端隧道命令的另一種方法,同時還提供有關關閉遠端連線或安裝 VS Code Desktop 的選項。

VS Code remote indicator connected to a remote tunnel

在容器中開啟遠端隧道主機上的資料夾

您可以將遠端 - 隧道擴充套件和 Dev Containers 擴充套件一起使用,將遠端主機上的資料夾在容器中開啟。您甚至不需要在本地安裝 Docker 客戶端。

操作步驟如下:

  1. 請按照 安裝 步驟在遠端主機上安裝 Docker,並在本地安裝 VS Code 和 Dev Containers 擴充套件。
  2. 按照遠端 - 隧道擴充套件的 入門 說明來設定隧道,連線到它並在那裡開啟一個資料夾。
  3. 從命令面板(F1⇧⌘P (Windows, Linux Ctrl+Shift+P))使用 開發容器:在容器中重新開啟 命令。

其餘 Dev Containers 快速入門 部分可按原樣適用。您可以在 Dev Containers 擴充套件的文件 中瞭解更多資訊。如果您覺得此模型不適合您的需求,還可以檢視 在遠端 Docker 主機上開發 文章以瞭解其他選項。

常見問題

遠端隧道、VS Code Server 和遠端開發之間是什麼關係?

Visual Studio Code 遠端開發允許您將容器、遠端計算機或適用於 Linux 的 Windows 子系統 (WSL) 用作功能齊全的開發環境。

遠端開發透過將某些命令的執行移至“遠端伺服器”(即 VS Code Server)來讓您的本地 VS Code 安裝能夠透明地與其他計算機(無論是虛擬還是物理)上的原始碼和執行時環境進行互動。在連線到遠端終結點時,VS Code 會快速安裝 VS Code Server,並且它可以託管直接與遠端工作區、計算機和檔案系統互動的擴充套件。

我們已將此 VS Code Server 後端元件釋出為一個您可以自行執行的服務(您可以閱讀有關其文件的更多資訊),而不是僅由遠端開發擴充套件安裝和管理。

訪問 VS Code Server 涉及幾個元件

  • VS Code Server:實現 VS Code 遠端體驗的後端伺服器。
  • 遠端 - 隧道擴充套件:一種促進與遠端計算機連線的擴充套件,您可以在其中執行伺服器的例項。

作為擴充套件作者,我需要做什麼?

VS Code 擴充套件 API 抽象了本地/遠端細節,因此大多數擴充套件無需修改即可工作。但是,考慮到擴充套件可以使用它們想要的任何節點模組或執行時,有時可能需要進行調整。我們建議你測試你的擴充套件,以確保不需要更新。有關詳細資訊,請參閱支援遠端開發

多個使用者或客戶端可以同時訪問同一個遠端例項嗎?

不可以,一個伺服器例項設計為一次只能由一個使用者或客戶端訪問。

如何刪除隧道或計算機?

如果您想停止透過 CLI 執行的隧道,可以使用Ctrl + C 結束活動的隧道。如果您透過 VS Code UI 啟用了隧道,可以在 VS Code 中執行命令遠端隧道:關閉遠端隧道訪問...

您可以透過在該計算機上執行 code tunnel unregister 來刪除計算機與隧道的關聯。您也可以開啟任何 VS Code 客戶端,選擇遠端資源管理器檢視,右鍵單擊您要刪除的計算機,然後選擇登出

隧道是如何保護的?

託管隧道和連線到隧道都需要在兩端使用相同的 Github 或 Microsoft 帳戶進行身份驗證。在這兩種情況下,VS Code 都會建立與 Azure 託管服務的出站連線;通常不需要防火牆更改,VS Code 也不會設定任何網路偵聽器。

一旦從遠端 VS Code 例項連線,就會透過隧道建立 SSH 連線以提供端到端加密。當前首選的加密方式是 CTR 模式下的 AES 256,實現此功能的程式碼是開源的。

您可以在其文件中瞭解有關底層 dev tunnels 服務安全性的更多資訊。

隧道服務是否有使用限制?

為防止濫用底層隧道服務,對隧道數量和頻寬等資源有一些使用限制。我們預計大多數使用者永遠不會達到這些限制。

例如,目前您最多可以註冊 10 個隧道。如果您想建立新隧道但已註冊了 10 個,CLI 將隨機選擇一個未使用的隧道並刪除它。請注意,此限制可能會發生變化。

我可以配置整個組織的策略嗎?

如果您所在的組織希望控制埠轉發的訪問,可以透過允許或拒絕訪問域 global.rel.tunnels.api.visualstudio.com 來實現。

對於執行 Windows 裝置的使用者,您還可以配置然後部署 dev tunnels 的組策略設定。您可以在 dev tunnels 文件中瞭解更多資訊。

如何確保我的隧道保持執行?

您有幾種選擇

  • 使用 service 命令作為服務執行。您可以執行 code tunnel service installcode tunnel service uninstall 來安裝和刪除它們。
  • 使用 no-sleep 選項,code tunnel --no-sleep,以防止您的遠端計算機進入睡眠狀態。

正如 code CLI 文件中所述,您可以透過 code tunnel --help 檢視所有可能的 CLI 命令和選項。

在隧道連線時,我可以使用其他遠端開發擴充套件或開發容器嗎?

可以!目前,您可以透過遠端 - 隧道連線到 WSL開發容器

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