使用遠端通道 (Remote Tunnels) 進行開發
Visual Studio Code 的 Remote - Tunnels 擴充功能讓您能夠透過安全通道連線至遠端機器,例如桌上型電腦或虛擬機器 (VM)。您可以從任何地方使用 VS Code 用戶端連線至該機器,而無需使用 SSH。
通道功能透過 Microsoft 開發通道 (dev tunnels) 安全地將資料從一個網路傳輸到另一個網路。
由於此擴充功能直接在遠端機器上執行命令和其他擴充功能,因此無需將原始程式碼放置在您的 VS Code 用戶端機器上。該擴充功能會自動在遠端作業系統上安裝 VS Code Server;此伺服器與遠端作業系統上現有的任何 VS Code 安裝皆各自獨立。

無論您的程式碼託管在何處,VS Code 都能提供在地端品質的開發體驗,包括完整的 IntelliSense(代碼補完)、程式碼導航以及偵錯功能。
入門指南
您有兩種方式可以使用通道:
- 執行
code命令列介面 (CLI) 的tunnel命令。 - 透過 VS Code 桌面版 UI 啟用通道功能。
這兩種路徑都能達到相同的通道功能效果——您可以選擇最適合您的工具。如果您無法在遠端機器上安裝完整的 VS Code 桌面版,CLI 是一個絕佳的選擇。如果您已經在使用 VS Code 進行開發,並希望為當前機器啟用通道功能,則使用 VS Code 桌面版 UI 會更加方便。
我們將在下方的章節中介紹這兩種路徑。
使用 'code' CLI
您可以透過 code CLI 建立及使用通道。
-
在您想要從 VS Code 用戶端進行開發的遠端機器上安裝
codeCLI。CLI 會在 VS Code 用戶端與您的遠端機器之間建立通道。CLI 已自動內建於 VS Code 桌面版中,無需額外設定。替代下載方式
或者,您可以透過我們下載頁面上的獨立安裝程式取得 CLI,它與 VS Code 桌面版安裝是分開的。

您也可以透過遠端機器的終端機來安裝並解壓縮 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/<機器名稱>/<資料夾名稱>。您可以在您選擇的用戶端上開啟此 URL。 -
當您在此用戶端首次開啟 vscode.dev URL 時,系統會提示您透過
https://github.com/login/oauth/authorize...URL 登入您的 GitHub 帳號。這會驗證您對通道服務的存取權,以確保您擁有存取正確遠端機器的權限。
使用 VS Code UI
-
在您想要開啟通道存取的遠端機器上開啟 VS Code。
-
在 VS Code 的「帳號」功能表中,選擇開啟遠端通道存取 (Turn on Remote Tunnel Access) 選項,如下圖所示。您也可以在 VS Code 中開啟命令選擇區 (F1) 並執行 Remote Tunnels: Turn on Remote Tunnel Access... 命令。

-
系統會提示您登入 GitHub。登入後,當前機器將啟動一個通道,您便可以遠端連線至此機器。

-
在您選擇的用戶端中,您可以從上述的通知中開啟 vscode.dev 連結,開始編寫程式碼!
注意:只有在遠端機器持續執行 VS Code 時,才能透過通道存取該機器。一旦您關閉 VS Code,除非您再次在該處啟動 VS Code 或執行
code tunnelCLI 命令,否則將無法透過通道進行連線。
Remote Tunnels 擴充功能
透過 code CLI 或 VS Code UI 開啟的 vscode.dev 執行個體皆已預先安裝 Remote - Tunnels 擴充功能。
如果您已經在使用 VS Code(桌面版或網頁版)並希望連線至遠端通道,您可以直接安裝並使用 Remote - Tunnels 擴充功能。安裝完成後,請開啟命令選擇區 (F1) 並執行 Remote Tunnels: Connect to Tunnel 命令。您將能夠連線至任何擁有啟動中通道的遠端機器。
您也可以在「遠端總管 (Remote Explorer)」中檢視您的遠端機器,您可以透過執行 Remote Explorer: Focus on Remote View 命令將焦點移至該處。

與其他遠端開發擴充功能一樣,您的遠端機器名稱會顯示在左下角的綠色遠端指示器中。點擊此指示器是瀏覽 Remote Tunnels 命令的另一種方式,其中還包含關閉遠端連線或安裝 VS Code 桌面版的選項。

在容器中開啟 Remote Tunnels 主機上的資料夾
您可以同時使用 Remote - Tunnels 與 Dev Containers 擴充功能,在遠端主機的容器中開啟資料夾。您甚至不需要在地端安裝 Docker 用戶端。
執行方式如下:
- 請依照 安裝 步驟,在遠端主機上安裝 Docker,並在地端安裝 VS Code 與 Dev Containers 擴充功能。
- 依照 Remote - Tunnels 擴充功能的 入門 指示來設定通道、連線並開啟資料夾。
- 使用命令面板中的 Dev Containers: Reopen in Container 指令(F1 或 ⇧⌘P)。
其餘的 Dev Containers 快速入門 內容皆適用。您可以透過 Dev Containers 擴充功能文件深入了解詳情。如果此模型不符合您的需求,您也可以參考 在遠端 Docker 主機上開發 一文,了解其他選項。
常見問題
Remote Tunnels、VS Code Server 與遠端開發之間的關係為何?
Visual Studio Code 遠端開發 (Remote Development) 允許您使用容器、遠端機器或 Windows Linux 子系統 (WSL) 作為功能完整的開發環境。
遠端開發功能讓您的本機 VS Code 安裝能夠透明地與其他機器(無論是虛擬或實體)上的原始程式碼與執行環境互動,方法是將特定命令的執行轉移至「遠端伺服器」——即 VS Code Server。當您連線至遠端端點時,VS Code 會快速安裝 VS Code Server,該伺服器可託管與遠端工作區、機器及檔案系統直接互動的擴充功能。
我們已將此 VS Code Server 後端元件發布為您可以自行執行的服務(您可以在其文件中閱讀更多資訊),而不僅僅是由遠端開發擴充功能安裝和管理。
存取 VS Code Server 涉及幾個元件:
- VS Code Server:讓 VS Code 遠端體驗成為可能的後端伺服器。
- Remote - Tunnels 擴充功能:促進與遠端機器連線的擴充功能,該機器上執行著伺服器執行個體。
身為擴充功能開發者,我需要做什麼?
VS Code 擴充功能 API 抽象化了本地/遠端的細節,因此大多數擴充功能無需修改即可運作。然而,由於擴充功能可以使用任何它們想要的 node 模組或執行環境,在某些情況下可能需要進行調整。我們建議您測試您的擴充功能,以確保無需更新。詳細資訊請參閱支援遠端開發。
多個使用者或用戶端可以同時存取同一個遠端執行個體嗎?
不行,伺服器執行個體設計為一次只能由一個使用者或用戶端存取。
如何移除通道或機器?
如果您想停止透過 CLI 執行的通道,可以使用 Ctrl + C 來終止作用中的通道。如果您是透過 VS Code UI 啟用通道,則可以在 VS Code 中執行 Remote Tunnels: Turn off Remote Tunnel Access... 命令。
您可以透過在該機器上執行 code tunnel unregister 來移除機器與通道的關聯。您也可以開啟任何 VS Code 用戶端,選擇「遠端總管」檢視,在您要移除的機器上按一下右鍵,然後選擇 unregister。
通道是如何受到保護的?
託管和連線至通道都需要在兩端使用相同的 GitHub 或 Microsoft 帳號進行驗證。在這兩種情況下,VS Code 皆會向託管於 Azure 的服務發起對外連線;通常不需要變更防火牆設定,且 VS Code 不會設定任何網路接聽程式 (listeners)。
一旦您從遠端的 VS Code 執行個體連線,系統會透過通道建立 SSH 連線以提供端對端加密。目前此加密的首選密碼演算法為 AES 256(CTR 模式),且實作此功能的程式碼為開放原始碼。
您可以從相關文件中深入了解底層開發通道服務的安全性。
通道服務有使用限制嗎?
為了避免濫用底層通道服務,我們針對通道數量與頻寬等資源設定了使用限制。我們預期大多數使用者不會達到這些限制。
例如,目前您的帳號可以註冊 10 個通道。如果您想建立新的通道,但已註冊了 10 個,CLI 將會隨機挑選一個未使用的通道並將其刪除。請注意,此限制可能會有所變動。
我可以跨組織設定原則嗎?
如果您所屬的組織希望控制連接埠轉送的存取權,您可以透過允許或拒絕存取 global.rel.tunnels.api.visualstudio.com 網域來達成。
對於執行 Windows 裝置的使用者,您也可以設定並部署開發通道的群組原則設定。您可以在 開發通道文件 中了解更多資訊。
如何確保我的通道保持運作?
您有幾個選項:
- 使用
service命令將其作為服務執行。您可以執行code tunnel service install與code tunnel service uninstall來安裝及移除服務。 - 使用
no-sleep選項,即code tunnel --no-sleep,以防止您的遠端機器進入睡眠狀態。
如 code CLI 文件 中所述,您可以透過 code tunnel --help 探索所有可能的 CLI 命令與選項。