remote.it CLIの使い方

# 1. 今回の要約
* remote.it CLI ソフトウェアを取得する
* remote.it CLIを使用して、Linuxへremote.itをインストールする
* remote.it CLIを使用して、デバイスとサービスを登録する
* remote.it CLIを使用して、他のremote.itデバイスへ接続する
* remote.it CLI の使い方全般を学ぶ

remote.itには、GUIを備えたクライアントソフトウェアとしてremtoe.it Desktop Appがあります。このグラフィカルなインタフェースは、Windows/macOS/Debian Linuxなどで使うことができます。
※headless Admin Panel serviceという、WebUIが用意されているものもあります

一方、その他のLinuxOSやCLIしか使用できないサーバ環境などでは、remote.it CLIが利用できます。
※remote.it CLIは、Desktop Appにも付属しています

本稿では、remote.it CLIの利用方法について説明します。
※remote.it CLI 1.6.36での確認を行っているため、将来的に動作が変更になる場合があります
 
# 2. remote.it CLIソフトウェアを取得する
remote.it CLIソフトウェアは、remote.itのダウンロードページ([https://remote.it/downloads/](https://remote.it/downloads/))の中の「CLI」から取得できます。

また、各種プラットフォーム用のremote.it CLIソフトウェアを直接入手する際のURLは、以下を確認ください。

* Windows
[https://downloads.remote.it/cli/latest/remoteit_windows_x86.exe](https://downloads.remote.it/cli/latest/remoteit_windows_x86.exe) (32bit)
[https://downloads.remote.it/cli/latest/remoteit_windows_x86_64.exe](https://downloads.remote.it/cli/latest/remoteit_windows_x86_64.exe) (64bit)

* macOS
[https://downloads.remote.it/cli/latest/remoteit_mac-osx_x86_64](https://downloads.remote.it/cli/latest/remoteit_mac-osx_x86_64) (Intel/64bit)

* Linux
[https://downloads.remote.it/cli/latest/remoteit_linux_x86_64](https://downloads.remote.it/cli/latest/remoteit_linux_x86_64) (amd64)
[https://downloads.remote.it/cli/latest/remoteit_linux_arm64](https://downloads.remote.it/cli/latest/remoteit_linux_arm64) (arm64)
[https://downloads.remote.it/cli/latest/remoteit_linux_armv5](https://downloads.remote.it/cli/latest/remoteit_linux_armv5) (armhf v5)
[https://downloads.remote.it/cli/latest/remoteit_linux_armv6](https://downloads.remote.it/cli/latest/remoteit_linux_armv6) (armhf v6)
[https://downloads.remote.it/cli/latest/remoteit_linux_armv7](https://downloads.remote.it/cli/latest/remoteit_linux_armv7) (armhf v7)

# 3. remote.it CLIを使用して、Linuxへremote.itをインストールする
## CLIのインストール
* 今回は、Linux/amd64用のソフトウェアを使用します。インストールを行うLinuxにログインをして、remote.it CLIをダウンロードしてください。

```bash
$ curl -LkO https://downloads.remote.it/cli/latest/remoteit_linux_x86_64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 3011k  100 3011k    0     0  2041k      0  0:00:01  0:00:01 --:--:-- 8340k
$
$ ls -l
total 3016
-rw-r--r-- 1 root root 3083868 Feb 15 06:40 remoteit_linux_x86_64
```

* ダウンロードしたremote.it CLIを、実行パスの通ったディレクトリにコピーします(併せて、ファイル名を修正します)。コピーしたファイルに実行権限を付与してください。

```bash
$ sudo cp remoteit_linux_x86_64 /usr/bin/remoteit
$ sudo chmod +x /usr/bin/remoteit
$
$ ls -l /usr/bin/remoteit
-rwxr-xr-x 1 root root 3083868 Feb 15 06:42 /usr/bin/remoteit
```

* remote.it CLIが正しく配置されたことを確認します。

```bash
$ sudo remoteit version
1.6.36
```

## CLIサービスの登録と関連ツールのインストール
* remote.it CLIサービスをsystemdに登録します。

```bash
$ sudo remoteit agent install
 ? Installed and started system service successfully
$
$ sudo systemctl status it.remote.cli
● it.remote.cli.service - remote.it agent, manages connections
     Loaded: loaded (/etc/systemd/system/it.remote.cli.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-02-15 06:44:25 UTC; 9s ago
       Docs: https://docs.remote.it
   Main PID: 2493 (remoteit)
      Tasks: 14 (limit: 535)
     Memory: 17.1M
     CGroup: /system.slice/it.remote.cli.service
(略)

Feb 15 06:44:25 ip-10-0-2-152 systemd[1]: Started remote.it agent, manages connections.
```

* 次に、remote.it CLIを利用して、関連バイナリのインストールを行います。

```bash
$ sudo remoteit tools install
 ? Installing tools
 ? Tools installed to: '/usr/bin'
$
$ ls -l /usr/bin |grep -e remoteit -e connectd -e muxer
-rwxr-xr-x 1 root   root      166968 Jan 18 05:08 connectd
-rwxr-xr-x 1 root   root        7588 Jan 18 05:07 connectd_options
-rwxr-xr-x 1 root   root        6722 Feb 15 06:44 connectd_task_notify
-rwxr-xr-x 1 root   root       34808 Jan 18 05:08 demuxer
-rwxr-xr-x 1 root   root       30712 Jan 18 05:08 muxer
-rwxr-xr-x 1 root   root     3083868 Feb 15 06:42 remoteit
```

## remote.it へのサインイン
* 最後に、remote.itアカウントでのサインインを行います。

```bash
$ sudo remoteit signin
Username: xxxxxxxx@stylez.co.jp [remote.itアカウントを入力]
Password:
 ? SIGNIN in progress ...
 ? Login with remote.it account
 ? Download & install dependencies
 ? NEXT-ACTION: run 'remoteit register' to register this device into your remote.it account
```

* remoteit statusコマンドを使用すると、サインインされたことが確認できます。
※Usernameに、サインインされたアカウントが表示されます

```bash
$ sudo remoteit status
 ? Fetching status

Username: xxxxxxxx@stylez.co.jp

Device:
No device...

Services:

Connections:
```

* 以上で、remote.it CLIを使用するための準備が完了しました。
次に、remote,itにターゲットデバイスとサービスを登録していきます。

# 4. remote.it CLIを使用して、デバイスとサービスを登録する
## デバイスの登録
* デバイスをremote.itに登録します。デバイス名を登録できますので、任意の名前(今回はMyLinux)を入力してください。

```bash
$ sudo remoteit register
Device name: MyLinux
 ? REGISTER in progress ...
 ? Login with remote.it account
 ? Register device 'MyLinux'
 ? Applying config
 ? NEXT-ACTION: run 'remoteit add' to add services to this device
```

* 登録したデバイスは、remoteit statusコマンドをjson(--json or -j)で表示させることにより確認することができます。

```bash
$ sudo remoteit status --json
{
  "device": {
    "name": "MyLinux",
    "id": "xx:xx:xx:xx:xx:xx:xx:xx",
    "type": "device",
    "state": "connected",
    "error": {
      "occur": false,
      "code": 0,
      "message": ""
    },
    "address": "127.0.0.1:65535",
    "startedAt": " 2021-02-15T06:51:53Z",
    "pid": "2864"
  },
  "services": [],
  "username": "xxxxxxxx@stylez.co.jp",
  "connections": []
}
```

## サービス(接続先)の登録(ローカルデバイス)
* remote.itでは、デバイスに対してアクセスさせたい通信(特定ポート宛てのリモート接続)をサービスとして登録します。まずは、このデバイス(MyLinux)宛てのSSH(TCP/22)を登録してみます。サービス名を登録できますので、任意の名前(今回はSSH)を入力してください。
※希望のサービスタイプがメニューに無い場合には、tcpを選択してください

```bash
$ sudo remoteit add

Service Type is not specified or invalid. This is a list of valid service types

 ID      | Name          | Default Port   | Protocol   | Description
-------------------------------------------------------------------------------------
 1       | TCP           | 0              | TCP        | Generic TCP
 4       | VNC           | 5900           | TCP        | VNC remote desktop
 5       | RDP           | 3389           | TCP        | Microsoft remote desktop
 7       | HTTP          | 80             | TCP        | Web protocol
 8       | HTTPS         | 443            | TCP        | Secure web protocol
 28      | SSH           | 22             | TCP        | Secure shell terminal
 34      | SMB/CIFS      | 445            | TCP        | Internet file sharing
 37      | NxWitness     | 7001           | TCP        | Nx Witness VMS
 38      | Nextcloud     | 443            | TCP        | Nextcloud hub
 39      | OpenVPN       | 1194           | TCP        | OpenVPN server
 41      | Minecraft     | 25565          | TCP        | Minecraft server
 42      | Admin Panel   | 29999          | TCP        | remote.it admin panel
 32769   | UDP           | 0              | UDP        | Generic UDP
 32770   | WireGuard     | 51820          | UDP        | WireGuard VPN server

Enter Service Type ('ID' or 'Name', not case sensitive, default is 'ssh'): ssh
Enter Port (default is '22'): 22
Enter Service Name (default is 'MyService'): SSH ? ADD in progress ...
 ? Login with remote.it account
 ? Creating 'SSH' service named 'SSH' at '127.0.0.1:22'
 ? NEXT-ACTION: run 'remoteit add' to add more services
```

* 登録したサービスは、remoteit statusコマンドをjson(--json or -j)で表示させることにより確認することができます。

```bash
$ sudo remoteit status --json
{
  "device": {
    "name": "MyLinux",
    "id": "xx:xx:xx:xx:xx:xx:xx:xx",
    "type": "device",
    "state": "connected",
    "error": {
      "occur": false,
      "code": 0,
      "message": ""
    },
    "address": "127.0.0.1:65535",
    "startedAt": "2021-02-15T06:51:53Z",
    "pid": "2864"
  },
  "services": [
    {
      "name": "SSH",
      "id": "xx:xx:xx:xx:xx:xx:xx:xx",
    "type": "SSH (28)",
      "state": " connected",
      "error": {
        "occur": false,
        "code": 0,
        "message": ""
      },
      "address": "127.0.0.1:22",
      "startedAt": "2020-10-13T04:43:31Z",
      "pid": "3077",
      "disabled": false
      "reachable": true
    }
  ],
  "username": "xxxxxxxx@stylez.co.jp",
  "connections": []
}
```

## サービス(接続先)の登録(リモートデバイス)
* remote.itのサービスはターゲットデバイス宛ての通信の他に、ターゲットデバイスを経由してそのデバイスに繋がれたネットワーク上にある、他のホスト宛ての通信(特定ポート宛てのリモート接続)を登録することができます。

* つぎに、リモートホスト宛てのSSH(TCP/22)を登録してみます。リモートホスト宛てにサービスを登録する場合には、remoteit addコマンドに--hostname [hostname/ipaddress]オプションで、リモートホストを指定してください。サービス名を登録できますので、先程とは異なる任意の名前(今回はRemoteHost1-SSH)を入力してください。
※希望のサービスタイプがメニューに無い場合には、tcpを選択してください

```bash
$ sudo remoteit add --hostname 10.0.2.142

Service Type is not specified or invalid. This is a list of valid service types

 ID      | Name          | Default Port   | Protocol   | Description
-------------------------------------------------------------------------------------
 1       | TCP           | 0              | TCP        | Generic TCP
 4       | VNC           | 5900           | TCP        | VNC remote desktop
 5       | RDP           | 3389           | TCP        | Microsoft remote desktop
 7       | HTTP          | 80             | TCP        | Web protocol
 8       | HTTPS         | 443            | TCP        | Secure web protocol
 28      | SSH           | 22             | TCP        | Secure shell terminal
 34      | SMB/CIFS      | 445            | TCP        | Internet file sharing
 37      | NxWitness     | 7001           | TCP        | Nx Witness VMS
 38      | Nextcloud     | 443            | TCP        | Nextcloud hub
 39      | OpenVPN       | 1194           | TCP        | OpenVPN server
 41      | Minecraft     | 25565          | TCP        | Minecraft server
 42      | Admin Panel   | 29999          | TCP        | remote.it admin panel
 32769   | UDP           | 0              | UDP        | Generic UDP
 32770   | WireGuard     | 51820          | UDP        | WireGuard VPN server

Enter Service Type ('ID' or 'Name', not case sensitive, default is 'ssh'): ssh
Enter Port (default is '22'): 22
Enter Service Name (default is 'MyService'): RemoteHost1-SSH ? ADD in progress ...
 ? Login with remote.it account
 ? Creating 'SSH' service named 'RemoteHost1-SSH' at '10.0.2.142:22'
 ? NEXT-ACTION: run 'remoteit add' to add more services
```

* 登録したサービスは、先程同様にremoteit statusコマンドをjson(--json or -j)で表示させることにより確認することができます。

```bash
$ sudo remoteit status --json
{
  "device": {
    "name": "MyLinux",
    "id": "xx:xx:xx:xx:xx:xx:xx:xx",
    "type": "device",
    "state": "connected",
    "error": {
      "occur": false,
      "code": 0,
      "message": ""
    },
    "address": "127.0.0.1:65535",
    "startedAt": "2021-02-15T06:51:53Z",
    "pid": "2864"
  },
  "services": [
    {
      "name": "SSH",
      "id": "xx:xx:xx:xx:xx:xx:xx:xx",
    "type": "SSH (28)",
      "state": " connected",
      "error": {
        "occur": false,
        "code": 0,
        "message": ""
      },
      "address": "127.0.0.1:22",
      "startedAt": "2020-10-13T04:43:31Z",
      "pid": "3077",
      "disabled": false
      "reachable": true
    }
  ],
    {
      "name": "RemoteHost1-SSH",
      "id": "xx:xx:xx:xx:xx:xx:xx:xx",
      "type": "SSH (28)",
      "state": "connected",
      "error": {
        "occur": false,
        "code": 0,
        "message": ""
      },
      "address": "10.0.2.142:22",
      "startedAt": "2021-02-15T08:59:36Z",
      "pid": "3191",
      "isDisabled": false,
      "isRetry": true,
      "isFailover": false,
      "isP2P": true,
      "reachable": true,
      "sessionID": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "initiatorUID": "xx:xx:xx:xx:xx:xx:xx:xx",
      "targetUID": "xx:xx:xx:xx:xx:xx:xx:xx"
    }
  "username": "xxxxxxxx@stylez.co.jp",
  "connections": []
}
```

* 以上で、ターゲットデバイスとサービスの登録が完了しました。
次に、クライアントから登録されたターゲットとデバイスを確認して接続を行います。

# 5. remote.it CLIを使用して、他のremote.itデバイスへ接続する
* 他のremote.itデバイスへの接続を、CLIで行ってみます。設定行うためには、接続先デバイスのサービスに割り当てされた「Service ID」が必要になります。

* Service IDは、CLIの場合には接続先のデバイスで、目的の接続先サービスのUIDから確認することができます。
※接続先のデバイスで実行ください

```bash
$ sudo remoteit status
 ? Fetching status

Username: xxxxxxxx@stylez.co.jp

Device:
(中略)

Services:
 UID                        | Name                             | Type              | Status       | IP:Port                  | Enabled
-----------------------------------------------------------------------------------------------------------------------------------------
 xx:xx:xx:xx:xx:xx:xx:xx    | SSH                              |                   | connected    | 127.0.0.1:22             | true
(後略)
Connections:
```

* remote.itのWEBポータルの場合には、接続先デバイスのサービス一覧から確認することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/153edee0-57dd-be13-fcf1-52b7a8d38954.png)

* 接続先のService IDが分かった後に、CLIで接続を作成します。
※接続元のデバイスで実行ください

```bash
$ sudo remoteit connection add --id xx:xx:xx:xx:xx:xx:xx:xx
 ? ADD in progress ...
 ? Creating local connection
 ? NEXT-ACTION: run 'sudo remoteit status' for status
```

* 作成した接続また、現在の接続状態はstatusで確認ができます。以下の例では、リモートホスト宛てのSSH接続が、ロカールホストのポート33001で接続中になっています。

```bash
$ sudo remoteit status
 ? Fetching status

Username: xxxxxxxx@stylez.co.jp

Device:

Services:

Connections:
 UID                        | Name                             | Type              | Status       | IP:Port                  | Enabled   | Retry   | P2P   | Failover
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
 xx:xx:xx:xx:xx:xx:xx:xx    | SSH                              | SSH (28)          | connected    | 127.0.0.1:33001          | true      | false   | true  | false
```

* 少しわかりづらいですが、statusで表示されている項目の内容は以下の通りとなります。

|項目|内容|
|---|---|
|UID	|接続先のService ID|
|Name	|接続先の名称|
|Type	|接続先のサービスタイプ<BR>※remoteit supportedApplicationsを参照|
|Status	|接続状況(connecting/connected/offline)|
|IP:port|現在の接続がBINDされているIP:port(ローカルの接続先)|
|Enabled|接続先が有効か否か(trueで有効)|
|Retry|接続の再試行が有効か否か(trueで有効)|
|P2P|現在の接続が、P2Pで接続されているか否か(falseの場合Proxy)|
|Failover|現在の接続が、failoverされた接続か否か(trueの場合failover(P2P->Proxy)された接続)|

* connectionの主なオプション(connection --help)は次の通りです。接続作成(connection add)もしくは、接続の修正(connection modify)で設定ができますので、必要に応じて選択をしてください。<BR>※現時点のバージョンでは各単独で設定変更できないかつ、指定しないものはDefault値に戻ってしまうので、必要なものを全て指定する必要があります<BR>※add時にはDefault値があるが、modify時にはDefault値が設定されないものがあります(hostname, restrict, retry)

|項目|内容|
|---|---|
|--id|接続先のService ID(入力必須)|
|--port|ロカールホストのremote.it用の接続ポート番号(Default:自動割当)|
|--hostname|LAN共有をする場合のBIND IP(Default:127.0.0.1)|
|--restrict|LAN共有をする場合の接続IPの制限(許可IP、Default:0.0.0.0)|
|--p2p|p2p接続をを使用するか否か(trueで使用、Default:true)<BR>※falseの場合にはproxy接続(--failover trueが必要)|
|--failover|connection filoverを使用するか否か(trueで使用、Default:true)|
|--retry|接続の再試行を行うか否か(trueで再試行あり、Default:false)|
|--servicetype|接続先のサービスタイプ(Default:自動検出)<BR>※remoteit supportedApplicationsを参照|
|--log|接続の詳細ログを出力するか否か(trueで出力、Default:false)<BR>※接続毎に別ファイルとして出力されます|
|--logfolder|接続ログ(詳細)を出力した場合の保存先フォルダ(Default:指定なし)<BR>※logfolderを指定しない場合には、サービス実行ユーザのhome(~/)に出力されます(Default:/root)|

* 以下のオプションはconnection add時のみ指定できます。

|項目|内容|
|---|---|
|--connect|自動的に接続を開始するか否か(trueで自動開始)|

* 以下のオプションはconnection modify時のみ指定できます。

|項目|内容|
|---|---|
|--name|任意の接続名称(Default:指定なし)|
|--enable|接続の有効無効の切り替え(Default:指定なし)<BR>※接続状態は remoteit status で確認(connecting/connected/offline)|

# 6. remote.it CLI の使い方全般を学ぶ
## CLIオプションの表示
remote.it CLIのその他のオプションは、remoteit --helpにて確認することができます。また、各コマンドの詳細オプションが知りたい場合には、各コマンドの最後に同様に--helpと入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/771955/87ce67a5-b347-eaf4-6fa1-1eb39c092ae3.png)

## CLI各オプションの概要
remoteit –helpで確認できる、各オプションの概要となります。

* Account

|項目|内容|
|---|---|
|remoteit siginin|サインインしたremote.itアカウントを、このデバイスで使用します|
|remoteit signout|このデバイスにサインインしているremote.itアカウントを、サインアウトします|

* Devices & Service

|項目|内容|
|---|---|
|remoteit register|このデバイスを、remote.itアカウントに登録します<BR>※サインインしているアカウントに登録されます<BR>※既に別のアカウントで登録済デバイスの場合には、そのアカウントでtransferを使用することができます|
|remoteit unregister|このデバイスを、登録されたremote.itアカウントから削除します<BR>※デバイスを登録したアカウントで実行ください|
|remoteit transfer|このデバイスの登録を、他のremote.itアカウントへ移管します<BR>※デバイスを登録したアカウントで実行ください|
|remoteit add|このデバイスに、remote.itの接続先ポート(サービス)を登録します<BR>※デバイスを登録したアカウントで実行ください|
|remoteit remove|このデバイスから、登録されたremote.itの接続先ポート(サービス)を削除します<BR>※デバイスを登録したアカウントで実行ください|
|remoteit modify|このデバイスに登録されている、remote.itの接続先ポート(サービス)の内容を変更します<BR>※デバイスを登録したアカウントで実行ください|

* Connection (connection)

|項目|内容|
|---|---|
|remoteit connection add|このデバイスから接続する、リモート接続先を登録します<BR>※他のデバイスへのリモート接続の登録となります|
|remoteit connection remove|登録されているリモート接続先を削除します|
|remoteit connection modify|登録されているリモート接続先の内容を変更します|

* DevOps & Automation

|項目|内容|
|---|---|
|remoteit tools|remote.itの関連バイナリファイル等をインストールします|
|remoteit scan|同じネットワーク(subnet)で動作しているホストのサービスをスキャンします (port scan)|
|remoteit uninstall|remote.itのすべての設定を削除し、remote.itバイナリを除くすべてのファイルを削除します<BR>※signout, unregister, remove, connection remove, tools uninstall, agent uninstall|
|remoteit reset|remote.itのすべての設定を削除します<BR>※signout, unregister, remove, connection remove|
|remoteit enableDebug|remote.itのデバッグログを有効/無効に設定します<BR>※設定後に、remoteit agent restartが必要です|

* remote.it Agent (agent/system)

|項目|内容|
|---|---|
|remoteit agent install|remote.it をシステムサービスに登録します (systemd)|
|remoteit agent uninstall|remote.it をシステムサービスから削除します (systemd)|
|remoteit agent start|remote.it サービスを開始します (systemctl start)|
|remoteit agent stop|remote.it サービスを終了します (systemctl stop)|
|remoteit agent restart|remote.it サービスを再起動します (systemctl restart)|

* Misc

|項目|内容|
|---|---|
|remoteit status|remote.itの設定とステータスを表示します|
|remoteit version|remote.itのagent/CLIのバージョンを表示します|
|remoteit info|remote.itの環境情報を表示します|
|remoteit support|remote.itへのサポートチケット(問合せ)を発行します<BR※詳細動作未確認となります|
|remoteit supportedApplications|remote.itに登録されているアプリケーションの一覧を表示ます<BR>※登録されていないアプリケーションでも、TCP/UDPを使用することで、任意のポートへのリモート接続が設定できます|

## CLI使用時のTips
remote.it CLIの使い方の例をいくつか紹介します。下記では紹介していませんが、必要なパラメータをワンライナーで入力することもできます。詳細オプションについては、各コマンドの--helpを参照してください。

* remtoe.it CLIを新規にインストールする(linux_x86_64の場合)

```bash
$ curl -LkO https://downloads.remote.it/cli/latest/remoteit_linux_x86_64
$ sudo cp remoteit_linux_x86_64 /usr/bin/remoteit
$ sudo chmod +x /usr/bin/remoteit
$ sudo remoteit agent instll
$ sudo remoteit tools install
```

* remtoe.it CLIをアップデートする(linux_x86_64の場合)

```bash
$ curl -LkO https://downloads.remote.it/cli/latest/remoteit_linux_x86_64
$ sudo cp remoteit_linux_x86_64 /usr/bin/remoteit
$ sudo remoteit tools install --yes
$ sudo remoteit agent restart
```

* remtoe.itアカウントでサインインする

```bash
$ sudo remoteit signin
※remote.itアカウントが必要(https://app.remote.it/auth/#/sign-up)
```

* remtoe.itアカウントにデバイスを登録する

```bash
$ sudo remoteit register
※remoteit signinが必要(siginしているremtoe.itアカウントに登録されます)
```

* デバイスにサービス(接続先)を登録する(ローカルデバイス) ※このホスト宛

```bash
$ sudo remoteit add
※remoteit registerが必要(registerしているデバイスに登録されます)
```

* デバイスにサービス(接続先)を登録する(リモートデバイス) ※リモートホスト宛

```bash
$ sudo remoteit add --hostname HOSTNAME
HOSTNAME: LAN内のリモートホストのホスト名またはIPアドレス
※remoteit registerが必要(registerしているデバイスに登録されます)
```

* リモート接続先を登録する(LAN共有無し)

```bash
$ sudo remoteit connection add –id UID
UID: 接続先サービスのServiceID
```

* リモート接続先を登録する(LAN共有あり)

```bash
$ sudo remoteit connection add –id UID --hostname LocalHostIP –restrict RestrictIP
UID: 接続先サービスのServiceID
LocalHostIP: この接続のLAN共有のために使用する、ロカールホストのIP
RestrictIP:　この接続のLAN共有に接続できるホストのIP
```

■remtoe.itのステータスを確認する

```bash
$ sudo remoteit status
$ sudo remoteit status --json
```

■remtoe.itのコンフィグを確認する

```bash
$ sudo cat /etc/remoteit/config.json
```

■remtoe.it agentの動作状況を確認する

```bash
$ sudo remoteit agent status
$ sudo remoteit agent status --verbose
$ sudo journalctl -u it.remote.cli
$ sudo tail /var/log/remoteit/remoteit.log
```