參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

使用遠端隧道進行開發

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

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

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

Remote Tunnels architecture overview

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

開始使用

您有兩種方式使用隧道

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

我們將在以下部分中描述這兩種方式。

使用“code”CLI

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

  1. 在您希望從 VS Code 客戶端開發的目標遠端計算機上安裝 code CLI。CLI 在 VS Code 客戶端和您的遠端計算機之間建立隧道。CLI 已自動內建到 VS Code 桌面版中——無需額外設定。

    替代下載方式

    此外,您可以透過下載頁面上的獨立安裝來獲取 CLI,這與 VS Code 桌面版安裝是分開的。

    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 時,系統會提示您登入您的 GitHub 帳戶,網址為 https://github.com/login/oauth/authorize...。這會將您驗證到隧道服務,以確保您有權訪問正確的遠端計算機集。

使用 VS Code UI

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

  2. 在 VS Code 賬戶選單中,選擇開啟遠端隧道訪問選項,如下圖所示。您也可以在 VS Code 中開啟命令面板 (F1) 並執行命令 Remote Tunnels: Turn on Remote Tunnel Access...

    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 例項預裝了 Remote - Tunnels 擴充套件。

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

您還可以在“遠端資源管理器”中檢視您的遠端計算機,您可以透過命令 Remote Explorer: Focus on Remote View 聚焦於該檢視。

Remote Explorer view with Tunnels

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

VS Code remote indicator connected to a remote tunnel

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

您可以結合使用 Remote - Tunnels 和 Dev Containers 擴充套件,在容器內部開啟遠端主機上的資料夾。您甚至不需要在本地安裝 Docker 客戶端。

操作步驟如下:

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

其餘的 Dev Containers 快速入門 照常適用。您可以在 Dev Containers 擴充套件文件 中瞭解更多資訊。如果此模型不符合您的需求,您還可以參閱 在遠端 Docker 主機上開發 文章以獲取其他選項。

常見問題

Remote Tunnels、VS Code Server 和 Remote Development 之間有什麼關係?

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 遠端體驗成為可能。
  • Remote - Tunnels 擴充套件:促進連線到遠端計算機的擴充套件,在該計算機上您正在執行一個伺服器例項。

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

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

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

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

如何刪除隧道或機器?

如果您想停止透過 CLI 執行的隧道,可以使用 Ctrl + C 來結束活動隧道。如果您透過 VS Code UI 啟用了隧道,您可以在 VS Code 中執行命令 Remote Tunnels: Turn off Remote Tunnel Access...

您可以透過在該機器上執行 code tunnel unregister 來取消該機器與隧道的關聯。您還可以開啟任何 VS Code 客戶端,選擇遠端資源管理器檢視,右鍵單擊您想要移除的機器,然後選擇取消註冊

隧道是如何保證安全的?

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

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

您可以在其文件中瞭解更多關於底層開發隧道服務的安全性。

隧道服務有使用限制嗎?

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

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

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

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

對於執行 Windows 裝置的使用者,您還可以配置並部署開發隧道的組策略設定。您可以在 開發隧道文件 中瞭解更多資訊。

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

您有以下幾個選項:

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

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

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

可以!目前,您可以透過 Remote - Tunnels 連線到 WSL開發容器