スマホからVNC / リモートデスクトップRDP

# はじめに
~ VNC/RDP connection from your Smart phone ~
スマホからサーバーやPC、またはラズパイのデスクトップにVNCやリモートデスクトップ（RDP）する、ちっちゃいけど使えるよ！しかもremote.itでインターネット越しにつないじゃおうという記事です。

# やりたいこと
AndroidまたはiPhoneを小さいながらも VNC/リモートデスクトップ のクライアントとして使ってみたいと思います。remote.itを経由すれば携帯電波網でも、しかもポートフォワーディング無しでリモートホストに接続できます。
キーボード／マウスをつなぐとなお一層使いやすいですね。Androidならテキトーなキーボード・マウスでも認識するのでハードルは低くかなり使える環境になります。

![smartphonevncrdp_overview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/77fc8a2f-7184-aee0-4854-a6822db8b5c1.png)

# おすすめ VNC/リモートデスクトップ クライアント
まずはスマホにVNCもしくはリモートデスクトップクライアントをインストールしましょう。それぞれの個人的おすすめアプリ（2022/2現在）は以下の通り。

### VNC クライアント
- Androidのおすすめ：「**VNC Viewer - Remote Desktop**」

https://play.google.com/store/apps/details?id=com.realvnc.viewer.android&hl=ja&gl=US

- iPhoneのおすすめ：「**VNC Viewer - Remote Desktop**」

https://apps.apple.com/jp/app/vnc-viewer-remote-desktop/id352019548


### リモートデスクトップ（RDP） クライアント

- Androidのおすすめ：「**Remote Desktop**」

https://play.google.com/store/apps/details?id=com.microsoft.rdc.androidx&hl=ja&gl=US

- iPhoneのおすすめ：「**Microsoft リモート デスクトップ**」

https://apps.apple.com/jp/app/microsoft-%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88-%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/id714464092


# remote.it のセットアップ（接続先・サーバー側）
リモート環境に接続するにはremote.itが必要です。
まずは接続したい装置側にremote.itをセットアップしましょう。ここでは詳細は省略しますが参考になる記事をいくつかリンクします。

https://qiita.com/mskairmail/items/25f985927beb5d3f1b04

https://qiita.com/mskairmail/items/8025ba8eee3a4408c521


# remote.it mobileアプリケーションのインストール（接続元・スマホ側）
同じく手元のスマホにもremote.itをインストールするとSSHクライアントと自動連携して（カスタムURLスキーム）快適に接続できます。
Google Play/App Store で "remote.it" を検索してみてください！念のために以下にリンクを。

- Android - **Google Play "remote.it"**

https://play.google.com/store/apps/details?id=com.remoteit&hl=ja&gl=US

- iPhone - **App Store "remote.it"**

https://apps.apple.com/jp/app/remote-it/id1437569166


# スマホにキーボード・マウスを接続
### Androidの場合
Androidは割とどんなキーボード・マウスでも認識するようです。試しに手元にあった無線キーボードタッチパッド付き（非Bluetooth）を接続してみました。こんなかんじ。特に設定はせずともキーボード・マウス共反応しました。
![Androd_VNC_01.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/511dc95b-7608-acee-d40d-f07a2c073a57.jpeg)

IMEがGboardの場合 [Shift]+[Space] で日本語／英語入力を切り替えられます。少し癖があって2回押さないと切り替わらないことがあります。
下の写真のこの赤丸部分に「あ」の表示が現れたり消えたりするので見分けられます。

![Androd_VNC_02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/094df1e2-2e68-ea3e-41b3-159bceb2d222.jpeg)


### iphoneの場合

手元にあったBluetoothキーボードとマウスを接続してみました。マウスの接続は少し癖があります。ここでは割愛しますがアクセシビリティ設定あたりを操作します。

![iphone_VNC_01.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/4c8faa92-1eba-ec77-411b-af992d8313ca.jpeg)


 [Ctrl]+[Space] で日本語／英語入力を切り替えられます。macと同じなのでわかりやすいですね。
![iphone_VNC_02.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/c5f1f84e-ab78-3873-8a66-e128cf99d92f.jpeg)


# リモートホストにremoteitしてVNC/リモートデスクトップを開始する
いよいよ接続の手順です。Androidもiphoneも手順はさほど変わらないのでここではAndroidからラズパイへのVNCを例に説明します。

スマホからremote.itのアプリケーションを起動し、下部「Devices」タブから接続したいデバイス（ターゲット）の一覧を表示します。
ここでは「develop_JPN_04」というラズパイに接続してみます。

![smartphonevncrdp_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/1ca3fcb8-ebac-7028-60f5-e22e0eb2bae5.png)

上記画面遷移のように、ターゲットのVNCサービス詳細画面まで移動したら起動アプリケーション設定（Launch default）にオススメの「**VNC Viewer**」が設定されている事を確認して「Connect」ボタンをタップします。

:::note info
NOTE：接続先サービスがリモートデスクトップの場合、Launch defaultは「Remote Desktop Client」です。
:::

![smartphonevncrdp_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/aea4f43f-64ee-45ec-9525-1fc017f69409.png)

接続が完了する上記画面に遷移、外部アプリ呼び出し（URLスキーム）ボタン「↗」をタップすると…　VNC VIewerが自動的に呼び出されラズパイへの接続に必要なパラメーターが引き渡されます。「OK」→「CONTINUE」をタップして進みます。


![smartphonevncrdp_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/c388df53-0ef6-cd9a-744e-5f7e1c585e6d.png)

次の上記画面ではラズパイへVNC接続するユーザー名／パスワードを入力して「CONTINUE」をタップすると…　ラズパイのデスクトップ画面に繋がりました！なれると意外と快適に操作できると思います。
終了時はexitしてremoteitモバイルアプリまで戻り…

![smartphonevncrdp_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/309124/ba5d5557-63fc-bc22-ee5a-d886cc816b18.png)

「Close Connection」をタップして接続を終了します。


# まとめ

スマートフォンは常に持っているのでちょっとした作業ぐらいであれば…　と思ってまとめて見ましたが、小さくて笑っちゃいますね。
それでもヘッドレス（ディスプレイ等の無い）のラズパイにちょっとだけ操作したいな、ぐらいなら思ったより使えます！

とても似ていますが「スマホからSSH」する手順もありますのでよろしければ下記も合わせてご参照ください。

https://qiita.com/mskairmail/items/c4e2d77bbb58c9f5f00e