remote.itでLAN内の他の端末へ接続中のリモートアクセスを共有する

# 1. 今回の要約
* remote.itの接続をLAN上の他の端末に共有する

remtoe.itで接続(先)を共有する場合には、以下のいずれかの方法があります。

1. 他のremote.itアカウントへの接続先の共有 (Port Sharing)
1. LAN上の他の端末への接続の共有 (LAN Sharing)

前者は接続先(Service)の共有となります。オーナーとなっているデバイス(Target Device)に作成した接続先を、他のremote.itアカウントへ共有します。使い方としては、remote.itの管理者(接続先デバイスとremote.itの管理を行う人)と利用者(共有された接続先にリモート接続する人)を分けたい場合など、自分の管理する接続先を他のremote.itアカウントから使わせたいときなどです。

後者は接続(Connection)の共有となります。クライアント(Initiator)が接続中のリモートアクセスを、LAN内の他の端末へ共有します。

本稿では、後者のLAN共有について説明をします。
※Port Sharingについては、別の記事([remote.itでの接続先の共有](https://qiita.com/masa-e/items/f4f230d50670435ee505))を参照ください

# 2. 通常のリモート接続とLAN共有の違い
まず通常のリモート接続についてみていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/795fda95-c629-b133-cae9-4ca2efd0f6b0.png)

remote.itでリモート接続を行うと、アクセス先はlocalhost(例127.0.0.1:33001)となります。リモート接続を行う端末には、remote.itソフトウェアをインストールしてクライアント(Initiater)として利用します。リモート接続は、remote.itを実行する端末のみが使用します。

次に、ＬＡＮ共有を使ったリモートアクセスについてみていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/5ea0aa45-8a4a-db2b-6f24-09c51ab5d98c.png)

LAN共有を使用したリモート接続では、アクセス先がリモート接続を行った端末のローカルIP(例 10.0.0.10:33003)になります。

LAN共有では、remote.itの接続(Connection)を共有します。これにより、remote.itをインストールできない端末からもリモートアクセスを行うことができます。リモート接続は、remote.itを実行する端末に加えて、その共有ポートにアクセスできるLAN上の他の端末から使用できます。また、共有先のIPアドレスを制限することができます。

LAN共有は、自分が利用できる接続(サービス)毎に設定が必要となります。複数のリモート接続先が利用できる場合には、それぞれに設定を行います。また、実際にLAN内の端末が共有されたリモート接続を利用するためには、共有元の端末でリモート接続を行っている(接続中である)ことが必要となります。

続いて、remote.it DesktopAppからのLAN共有の設定方法を説明します。CLIから設定したい場合には、以下のコマンドを使用してください。
※remoteit connection add --help でその他の各オプションを参照ください

```bash
remoteit connection add --id [UID] --port [SharingPort] --hostname [SharingIP] --restrict [RestrictIP]
```

# 3. remote.it DesktopAppからのLAN共有
* LAN共有を行う端末でDesktopAppを起動してください。次に、remote.itアカウントのメールアドレスとパスワードを入力し、SIGN INを選択します。
※共有を行いたい接続を利用できるアカウント
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/25131a99-7102-42ca-a0c7-7f3a41264a21.png)

* ログインに成功すると、デバイス一覧が表示されます。接続先のデバイスが一覧にあることを確認してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/40f43659-728e-1be2-ad4e-3d718266b2e0.png)

* LAN共有を設定するためには、接続するデバイス(例:WebServer)を選択します。

* サービス(接続先ポート)の一覧より、共有するサービス(例:www)を選択します。
※CONNECTボタン右側のサービス名をクリックしてください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/f7e7fd3f-05b1-b282-021f-966646683425.png)

* サービスの詳細設定が表示されます。下部の Local Network Sharing を選択します。
※LAN共有が設定されていないときには、Offになっています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/c3a06989-0a26-09ac-f9ce-9498add87f0b.png)

* Enable local sharingのトグルスイッチを選択し、LAN共有を有効化します。LAN共有を無効化する場合には、この画面でトグルスイッチの設定を変えて無効にしてください。
※Your local IP address には、その端末で共有するLANのIPが表示されています
![Something went wrong]()

* 続いて、LAN共有の共有先について次の設定で制限を行うことができます。

|設定|説明|
|---|---|
|IP Latching|共有先を最初に接続した1つのIPアドレスに制限します|
|Class-A Restriction|共有先をクラスA(255.0.0.0)のIPアドレスに制限します|
|Class-B Restriction|共有先をクラスB(255.255.0.0)のIPアドレスに制限します|
|Class-C Restriction|共有先をクラスC(255.255.255.0)のIPアドレスに制限します|
|Single IP Restriction|共有先を任意(入力)の1つのIPアドレスに制限します|
|None|共有先の制限を行いません|

* デフォルトはIP Latchingになっており、リモート接続を開始した後に、最初にその接続にアクセスしたIPアドレスを収集して制限します。一点注意として、最初には自分も含まれます。リモート接続を開始した後に、自分でその接続を利用すると他の端末から接続することができません。

* 自分も含めて複数の端末でその接続を利用するのであれば、その他の設定を利用してください。

* 設定が終わった後に、SAVEを選択してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/f036c61b-2d10-625a-7c93-d6f68d3e6a6d.png)

* Local Network Sharingが有効な場合には、その下に現在の設定が表示されます。共有されるIPは先ほどの設定画面で確認したIPとなります。またポート番号については、この画面内でPORTと表示されている部分を選択することにより変更することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/e4786b98-0aa5-8100-d502-83540380eb2e.png)

* 続いて先ほどの画面でCONNECTを選択して、接続を開始してみましょう。少し待って接続が開始されると、緑色のCONNECTが青色のDISCONNECTに変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/956927fa-a897-85ef-10f5-68b05e7f2408.png)

* 今回はHTTPのリモート接続を共有してみましたので、まずは自分の端末からブラウザで共有ポート(HTTP\://192.168.1.60:33003)にアクセスします。いつもであればlocalhostもしくは127.0.0.1宛でしたが、その部分を変えるだけでいつも通りにアクセスできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/d82fd0bd-d686-ac4f-5560-8174898a257a.png)

* 続いてLAN上の他の端末からも共有ポート(HTTP\://192.168.1.60:33003)にアクセスしてみてください。remote.itが入っていない端末からでも、同じようにアクセスできることが確認できます。

* なお、先ほどIP Latchingの注意点を記載いたしましたが、共有ポートへの接続が制限されている場合にはリモート接続が行えません。IP Latchingの場合には再接続(切断>接続)を行うことで制限先をリセットすることができますが、必要に応じて制限の設定は見直しを行ってください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/df9fe43a-d480-887a-5f77-a3dff60e8bab.png)