Chrome リモートデスクトップ

V
4 min readOct 22, 2018

--

ブラウザだけで利用できるリモートデスクトップ機能。使う側のマシンにセットアップするだけですぐに使えるようになる。

Chrome 拡張と、専用のアプリをいくつかインストールするだけ。とてもインストールは簡単。ほぼほぼマウスクリックするだけで終わり。

あとはマシンの名前とピンコードを登録さえすればピンコードがわかっていればアクセスできる。

この Chrome リモートデスクトップが今までのリモートデスクトップと大きく違うのはブラウザで実現していることだろう。

そしてこの Chrome リモートデスクトップはがっつり WebRTC を利用した仕組みだ。WebRTC P2P で実現している。

  • VP8 でリモート先のマシンの全画面を WebRTC MediaChannel を利用して P2P 経由で送っている
  • リモート側のマウスやキーボード情報を WebRTC DataChannel を利用して P2P 経由で送っている
  • TURN-UDP や TURN-TCP 完備
  • TURN IPv6 対応済み
  • ContentType は Screen

使ってみると驚くが、本当によくできている。自分が管理している端末以外もコントロールできるのが凄い。

https://remotedesktop.google.com/support

リモートサポートを使えば、Chrome がインストールしてあればあとは簡単にリモート経由でマシンを操作してもらうことも可能になる。

以下は chrome://webrtc-internals で取得した値。

https://remotedesktop.google.com/access/session/f082812a-5fbe-ccd5-8ba5-e4f73cfad905, { iceServers: [stun:192.0.2.1:19302, stun:[2001:0DB8::7f]:19302, turn:192.0.2.1:19305?transport=udp, turn:[2001:0DB8::7f]:19305?transport=udp, turn:192.0.2.1:19305?transport=tcp, turn:[2001:0DB8::7f]:19305?transport=tcp], iceTransportPolicy: all, bundlePolicy: balanced, rtcpMuxPolicy: require, iceCandidatePoolSize: 0, sdpSemantics: "plan-b" }, {enableDtlsSrtp: {exact: true}, enableRtpDataChannels: {exact: false}}

解像度は本来 4K だったのを少し下げて利用している。

googCodecName VP8
googContentType screen
googFrameHeightReceived 1440
googFrameWidthReceived 2560

使い心地は抜群で、ほぼほぼ遅延は感じない。さすが P2P で WebRTC という感じ。解像度が大きいがフレームレートが 0 か 1 というレベルなので気にならない。

それにしても Google は Project Stream といい、Chrome レモートデスクトップといい、 WebRTC をうまく活用している。

--

--