リモートトンネルを使用した開発
Visual Studio Code の Remote - Tunnels 拡張機能を使用すると、デスクトップ PC や仮想マシン (VM) などのリモートマシンにセキュアなトンネル経由で接続できます。SSH の要件なしに、どこからでも VS Code クライアントからそのマシンに接続できます。
トンネリングは、Microsoft dev tunnels を介して、あるネットワークから別のネットワークにデータを安全に送信します。
この拡張機能は、コマンドや他の拡張機能をリモートマシンで直接実行するため、ソースコードを VS Code クライアントマシンに置く必要がなくなります。この拡張機能は、VS Code Server をリモート OS にインストールします。サーバーは、リモート OS に既存の VS Code インストールとは独立しています。

VS Code は、コードがどこでホストされていても、完全な IntelliSense (補完)、コードナビゲーション、デバッグなどのローカル品質の開発エクスペリエンスを提供できます。
はじめに
トンネルを操作するには、2つの方法があります
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.dokyumento.jp/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 は、
https://vscode.dev/tunnel/<machine_name>/<folder_name>のような、このリモートマシンに結び付けられた vscode.dev URL を出力します。この URL は、選択したクライアントで開くことができます。 -
このクライアントで vscode.dev URL を初めて開くと、
https://github.com/login/oauth/authorize...URL で GitHub アカウントにログインするよう求められます。これにより、適切なリモートマシンセットにアクセスできることを確認するために、トンネリングサービスに対して認証されます。
VS Code UI の使用
-
トンネルアクセスを有効にしたいリモートマシンで VS Code を開きます。
-
VS Code アカウントメニューで、以下の画像に示すように、リモートトンネルアクセスを有効にするオプションを選択します。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: Focus on Remote View を介してフォーカスできます。

他のリモート開発拡張機能と同様に、リモートマシンの名前は左下隅の緑色のリモートインジケーターに表示されます。このインジケーターをクリックすると、リモート接続を閉じるオプションや VS Code デスクトップをインストールするオプションとともに、リモートトンネルコマンドを探索する別の方法が開きます。

コンテナ内のリモートトンネルホストでフォルダを開く
Remote - Tunnels 拡張機能と Dev Containers 拡張機能を組み合わせて使用すると、リモートホスト上のフォルダをコンテナ内で開くことができます。Docker クライアントをローカルにインストールする必要すらありません。
そうするには
- リモートホストに Docker をインストールし、ローカルに VS Code と Dev Containers 拡張機能をインストールするには、インストール手順に従ってください。
- トンネルを設定し、それに接続し、そこでフォルダを開くには、Remote - Tunnels 拡張機能の開始ガイドの手順に従ってください。
- コマンドパレット (F1, ⇧⌘P (Windows、Linux Ctrl+Shift+P)) から Dev Containers: Reopen in Container コマンドを使用します。
残りの Dev Containers クイックスタート はそのまま適用されます。Dev Containers 拡張機能とそのドキュメントについて詳しく知ることができます。このモデルがニーズを満たさない場合は、リモート Docker ホストでの開発の記事で他のオプションも参照できます。
よくある質問
Remote Tunnels、VS Code Server、Remote Development の関係は何ですか?
Visual Studio Code Remote Development を使用すると、コンテナ、リモートマシン、または Windows Subsystem for Linux (WSL) をフル機能の開発環境として使用できます。
Remote Development は、特定のコマンドの実行を「リモートサーバー」、つまり VS Code Server に移動することで、ローカルの VS Code インストールが他のマシン (仮想または物理) 上のソースコードとランタイム環境と透過的にやり取りできるようにします。VS Code Server は、リモートエンドポイントに接続するときに VS Code によって迅速にインストールされ、リモートワークスペース、マシン、ファイルシステムと直接やり取りする拡張機能をホストできます。
この VS Code Server バックエンドコンポーネントは、Remote Development 拡張機能によってのみインストールおよび管理されるのではなく、自分で実行できるサービスとしてリリースされました (詳細についてはそのドキュメントを参照してください)。
VS Code Server へのアクセスにはいくつかのコンポーネントが含まれます
- VS Code Server: VS Code のリモートエクスペリエンスを可能にするバックエンドサーバー。
- Remote - Tunnels 拡張機能: サーバーのインスタンスが実行されているリモートマシンへの接続を容易にする拡張機能。
拡張機能の作成者として、何をすべきですか?
VS Code 拡張機能 API はローカル/リモートの詳細を抽象化するため、ほとんどの拡張機能は変更なしで動作します。ただし、拡張機能は任意のノードモジュールまたはランタイムを使用できるため、調整が必要になる状況もあります。更新が必要ないことを確認するために、拡張機能をテストすることをお勧めします。詳細については、リモート開発のサポートを参照してください。
複数のユーザーまたはクライアントが同じリモートインスタンスに同時にアクセスできますか?
いいえ、サーバーのインスタンスは、一度に1人のユーザーまたはクライアントによってアクセスされるように設計されています。
トンネルまたはマシンの削除方法を教えてください。
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 installとcode tunnel service uninstallを実行してインストールおよび削除できます。no-sleepオプション、code tunnel --no-sleepを使用して、リモートマシンがスリープ状態になるのを防ぎます。
code CLI ドキュメントで述べられているように、code tunnel --help を介して利用可能なすべての CLI コマンドとオプションを探索できます。