🚀 VS Code で を入手しましょう!

Remote Tunnels を使用した開発

Visual Studio Code の Remote - Tunnels 拡張機能を使用すると、セキュア トンネル経由で、デスクトップ PC や仮想マシン (VM) などのリモート マシンに接続できます。SSH を必要とせずに、どこからでも VS Code クライアントからそのマシンに接続できます。

トンネリングは、Microsoft dev tunnels を介して、あるネットワークから別のネットワークにデータを安全に伝送します。

この拡張機能は、コマンドやその他の拡張機能をリモート マシン上で直接実行するため、ソース コードを VS Code クライアント マシン上に置く必要がなくなる可能性があります。この拡張機能は、リモート OS に VS Code Server をインストールします。サーバーは、リモート OS 上の既存の VS Code インストールとは独立しています。

Remote Tunnels architecture overview

VS Code は、コードがどこでホストされているかに関係なく、完全な IntelliSense (補完機能)、コード ナビゲーション、デバッグなど、ローカル品質の開発エクスペリエンスを提供できます。

はじめに

トンネルを使用するには、2 つの方法があります。

これらのどちらの方法でも、同じトンネリング機能が実現されます。最適なツールを使用できます。CLI は、リモート マシンに完全な VS Code デスクトップをインストールできない場合に最適なオプションです。VS Code デスクトップ UI を使用すると、VS Code で既に作業を行っていて、現在のマシンでトンネリングを有効にしたい場合に便利です。

以下のセクションで、両方の方法について説明します。

'code' CLI の使用

code CLI を使用して、トンネルを作成および使用できます。

  1. VS Code クライアントから開発したいリモート マシンに code CLI をインストールします。CLI は、VS Code クライアントとリモート マシン間のトンネルを確立します。CLI は VS Code デスクトップに自動的に組み込まれており、追加のセットアップは不要です。

    代替ダウンロード

    または、VS Code デスクトップのインストールとは別に、ダウンロード ページで スタンドアロン インストール を介して CLI を入手することもできます。

    VS Code download options with CLI highlighted

    リモート マシンのターミナルから 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 で始まります。

  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 のアカウント メニューで、下の図に示すように、[リモート トンネル アクセスをオンにする] オプションを選択します。また、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 コマンドを実行するまで、トンネル接続できなくなります。

Remote Tunnels 拡張機能

code CLI または VS Code UI を介して開く vscode.dev インスタンスには、Remote - Tunnels 拡張機能がプリインストールされています。

VS Code (デスクトップまたは Web) で既に作業していて、リモート トンネルに接続したい場合は、Remote - Tunnels 拡張機能を直接インストールして使用できます。拡張機能をインストールしたら、コマンド パレット (F1) を開き、コマンド [Remote Tunnels: Connect to Tunnel(リモート トンネル: トンネルに接続)] を実行します。アクティブなトンネルを持つ任意のリモート マシンに接続できます。

リモート エクスプローラーでリモート マシンを表示することもできます。これは、コマンド [Remote Explorer: Focus on Remote View(リモート エクスプローラー: リモート ビューにフォーカス)] でフォーカスできます。

Remote Explorer view with Tunnels

他の Remote Development 拡張機能と同様に、リモート マシンの名前は左下の緑色のリモート インジケーターにリストされます。このインジケーターをクリックすると、リモート トンネル コマンドを調べたり、リモート接続を閉じたり、VS Code デスクトップをインストールしたりするためのオプションを表示したりすることもできます。

VS Code remote indicator connected to a remote tunnel

コンテナー内の Remote Tunnels ホスト上のフォルダーを開く

Remote - Tunnels 拡張機能と Dev Containers 拡張機能を組み合わせて使用すると、ローカルに Docker クライアントをインストールする必要さえなく、リモート ホスト上のフォルダーをコンテナー内で開くことができます。

そのためには

  1. リモート ホストとローカルの VS Code および Dev Containers 拡張機能に Docker をインストールするための インストール 手順に従います。
  2. Remote - Tunnels 拡張機能の はじめに の手順に従って、トンネルをセットアップし、それに接続してフォルダーを開きます。
  3. コマンド パレット (F1⇧⌘P (Windows、Linux Ctrl+Shift+P)) から [Dev Containers: Reopen in Container(Dev Containers: コンテナーで再度開く)] コマンドを使用します。

残りの 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 インストールから、他のマシン (仮想または物理) 上のソース コードおよびランタイム環境と透過的に対話できます。これは、特定のコマンドの実行を "リモート サーバー" である VS Code Server に移動することによって実現されます。VS Code Server は、リモート エンドポイントに接続すると VS Code によって迅速にインストールされ、リモート ワークスペース、マシン、およびファイル システムと直接対話する拡張機能をホストできます。

この VS Code Server バックエンド コンポーネントを、Remote Development 拡張機能によってのみインストールおよび管理されるのではなく、ユーザー自身が実行できるサービスとしてリリースしました (ドキュメントで詳細を確認できます)。

VS Code Server へのアクセスには、いくつかのコンポーネントが含まれます。

  • VS Code Server: VS Code のリモート エクスペリエンスを可能にするバックエンド サーバー。
  • Remote - Tunnels 拡張機能: サーバーのインスタンスが実行されているリモート マシンへの接続を容易にする拡張機能。

拡張機能の作成者は、何をする必要がありますか?

VS Code 拡張機能 API は、ローカル/リモートの詳細を抽象化するため、ほとんどの拡張機能は変更なしで動作します。ただし、拡張機能は任意のノード モジュールまたはランタイムを使用できるため、調整が必要になる場合があります。更新が必要ないことを確認するために、拡張機能をテストすることをお勧めします。詳細については、「Remote Development のサポート」を参照してください。

複数のユーザーまたはクライアントが同じリモート インスタンスに同時にアクセスできますか?

いいえ、サーバーのインスタンスは、一度に 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 であり、これを実装するコードは オープンソース です。

基盤となる 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 コマンドとオプションを調べることができます。

トンネリング中に他の Remote Development 拡張機能または dev container を使用できますか?

はい! 現在、Remote - Tunnels 経由で WSL および dev container に接続できます。