使用遠端隧道進行開發
Visual Studio Code 的 遠端 - 隧道 擴充套件允許您透過安全隧道連線到遠端計算機,例如桌面 PC 或虛擬機器 (VM)。您可以從任何地方的 VS Code 客戶端連線到該計算機,而無需 SSH。
隧道透過 Microsoft dev tunnels 安全地將資料從一個網路傳輸到另一個網路。
這可以消除在 VS Code 客戶端計算機上需要存放原始碼的需求,因為該擴充套件直接在遠端計算機上執行命令和其他擴充套件。該擴充套件將在遠端作業系統上安裝 VS Code Server;該伺服器獨立於遠端作業系統上已有的任何 VS Code 安裝。

VS Code 可以提供本地質量的開發體驗——包括完整的 IntelliSense(補全)、程式碼導航和除錯——無論您的程式碼託管在哪裡。
開始使用
您可以透過兩種方式使用隧道
- 執行
code命令列介面 (CLI) 的tunnel命令。 - 透過 VS Code Desktop UI 啟用隧道。
這兩種方式都會產生相同的隧道功能——您可以選擇最適合您的工具。如果您無法在遠端計算機上安裝完整的 VS Code Desktop,CLI 是一個很好的選擇。如果您已經在 VS Code 中進行了一些工作,然後想為當前計算機啟用隧道,使用 VS Code Desktop UI 會很方便。
我們將在下面的部分中介紹這兩種方式。
使用 'code' CLI
您可以透過 code CLI 建立和使用隧道。
-
在您希望從 VS Code 客戶端進行開發的遠端計算機上安裝
codeCLI。CLI 會在 VS Code 客戶端和您的遠端計算機之間建立隧道。CLI 會自動整合到 VS Code Desktop 中——無需額外設定。替代下載
或者,您可以在我們的下載頁面上透過獨立安裝獲取 CLI,這與 VS Code Desktop 安裝是分開的。

您也可以透過遠端計算機的終端安裝和解壓 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。 -
使用
tunnel命令建立安全隧道code tunnel此命令將在本地下載並啟動 VS Code Server,然後建立到它的隧道。
注意:首次在計算機上啟動隧道時,系統會提示您接受伺服器許可條款。您也可以在命令列中傳遞
--accept-server-license-terms以避擴音示。 -
此 CLI 將輸出一個與此遠端計算機關聯的 vscode.dev URL,例如
https://vscode.dev/tunnel/<machine_name>/<folder_name>。您可以在選擇的客戶端上開啟此 URL。 -
首次在此客戶端上開啟 vscode.dev URL 時,系統會提示您在
https://github.com/login/oauth/authorize...URL 上登入您的 GitHub 帳戶。這將向隧道服務驗證您,以確保您有權訪問正確的遠端計算機集。
使用 VS Code UI
-
在您希望啟用隧道訪問的遠端計算機上開啟 VS Code。
-
在 VS Code 的“帳戶”選單中,選擇“啟用遠端隧道訪問”選項,如下圖所示。您也可以開啟命令面板(F1),然後執行命令遠端隧道:啟用遠端隧道訪問...。

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

-
在您選擇的客戶端中,您可以開啟上面通知中的 vscode.dev 連結,然後開始編碼!
注意:遠端計算機只有在 VS Code 保持執行時才能透過隧道訪問。一旦您退出 VS Code,就無法再隧道連線到它,直到您再次在遠端計算機上啟動 VS Code 或執行
code tunnelCLI 命令。
遠端隧道擴充套件
透過 code CLI 或 VS Code UI 開啟的 vscode.dev 例項預裝了遠端 - 隧道擴充套件。
如果您已經在 VS Code(桌面版或 Web 版)中工作,並希望連線到遠端隧道,您可以直接安裝並使用 遠端 - 隧道 擴充套件。安裝擴充套件後,開啟命令面板(F1)並執行命令遠端隧道:連線到隧道。您將能夠連線到任何具有活動隧道的遠端計算機。
您也可以在遠端資源管理器中檢視您的遠端計算機,可以透過命令遠端資源管理器:聚焦遠端檢視來操作。

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

在容器中開啟遠端隧道主機上的資料夾
您可以將遠端 - 隧道擴充套件和 Dev Containers 擴充套件一起使用,將遠端主機上的資料夾在容器中開啟。您甚至不需要在本地安裝 Docker 客戶端。
操作步驟如下:
- 請按照 安裝 步驟在遠端主機上安裝 Docker,並在本地安裝 VS Code 和 Dev Containers 擴充套件。
- 按照遠端 - 隧道擴充套件的 入門 說明來設定隧道,連線到它並在那裡開啟一個資料夾。
- 從命令面板(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 install和code tunnel service uninstall來安裝和刪除它們。 - 使用
no-sleep選項,code tunnel --no-sleep,以防止您的遠端計算機進入睡眠狀態。
正如 code CLI 文件中所述,您可以透過 code tunnel --help 檢視所有可能的 CLI 命令和選項。