前回はGoogle Chrome Remote Desktopクライアントからホストへ接続してみました。
今回はGoogle Chrome Remote Desktopの通信について、調べてみたいと思います。
Google Chrome Remote Desktopの通信で利用されるプロトコルやポートについて、以下のドキュメントに記載されています。
Chrome リモート デスクトップを使って他のパソコンにアクセスする
上記リンクの中に「問題解決のヒント」が記載されており、以下の記載がされています。
以下、抜粋です。
- インターネット接続が必要
- アウトバウンド UDP トラフィック
- インバウンド UDP 応答
- TCP ポート 443(HTTPS)のトラフィック
- TCP と UDP のポート 3478(STUN)のトラフィック
UDP、TCP443、そして、STUN (Session Traversal Utilities for NATs) という技術が使われています。STUN (Session Traversal Utilities for NATs) とは何でしょうか?
STUNとは、Web RTC (Web Real-Time Communication)で利用されるNAT越え通信を解消するための仕組みです。以下の記事に詳しく書かれています。
初心者必見!よくわかるWebRTCの仕組み
https://cloudapi.kddi-web.com/magazine/webrtc/understood-webrtc-mechanism
また、以下のnoteの記事にもChrome リモートデスクトップ通信について詳しく説明されています。
Chrome リモートデスクトップの安全性について
https://note.com/machii_kuro/n/n420f3c05ffb9
この仕組みによってルーターに公開サーバーの設定をせずにGoogle Chrome Remote Desktopクライアントとホストの間で通信ができているのですね。
今回の目的は、旅先の東南アジアの滞在先から自宅のPCへリモート接続できることです。接続先PCがWindows10 Homeのため、Google Chrome Remote Desktopの利用を前提に検討したいと思います。
東南アジアから日本のPCへのP2P接続をどのように構築するか。
Google Cloudに何かドキュメントが無いかと思い探していたら以下の記載を見つけました。
Compute Engine での Linux 向け Chrome リモート デスクトップのセットアップ
LinuxでもChrome リモートデスクトップを利用できるようです。Windows版のドキュメントもありますが、コスト面からLinuxで構築したほうがコストを安く抑えられそうです。
Google Cloudはシンガポールとジャカルタにリージョンを展開しているので、どちらかにインスタンスを展開して利用できそうです。
Google Cloud
Cloud のロケーション
東南アジアの滞在先から日本の自宅へ直接Google Chrome Remote Desktopで接続することもできそうですが、現地の通信状況がわからないため、クラウドが提供する広帯域ネットワークインフラの利用も検討しておいた方が無難に思えます。
次回は、Google Cloud にインスタンスを構築してGoogle Chrome Remote Desktopの動作を確認してみたいと思います。それでは。