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有一个名为remote.it Desktop App的带有图形用户界面的客户端软件。这个图形界面可以在Windows/macOS/Debian Linux等操作系统上使用。
*还有一种叫做headless Admin Panel service的服务,提供了WebUI界面。

在一些只能使用其他Linux操作系统或CLI的服务器环境中,可以使用remote.it CLI。
※remote.it CLI也附带在桌面应用程序中。

本稿では、remote.it CLIの利用方法について説明します。
※remote.it CLI 1.6.36での確認を行っているため、将来的に動作が変更になる場合があります

获得 remote.it 的 CLI 软件。

您可以从remote.it的下载页面(https://remote.it/downloads/)的”CLI”选项中获取remote.it的CLI软件。

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

    • Windows

 

    • https://downloads.remote.it/cli/latest/remoteit_windows_x86.exe (32bit)

 

    • https://downloads.remote.it/cli/latest/remoteit_windows_x86_64.exe (64bit)

 

    • macOS

 

    • https://downloads.remote.it/cli/latest/remoteit_mac-osx_x86_64 (Intel/64bit)

 

    • Linux

 

    • https://downloads.remote.it/cli/latest/remoteit_linux_x86_64 (amd64)

 

    • https://downloads.remote.it/cli/latest/remoteit_linux_arm64 (arm64)

 

    • https://downloads.remote.it/cli/latest/remoteit_linux_armv5 (armhf v5)

 

    • https://downloads.remote.it/cli/latest/remoteit_linux_armv6 (armhf v6)

 

    https://downloads.remote.it/cli/latest/remoteit_linux_armv7 (armhf v7)

使用remote.it CLI,在Linux上安装remote.it。

在中文中,CLI的安装

    今回は、Linux/amd64用のソフトウェアを使用します。インストールを行うLinuxにログインをして、remote.it CLIをダウンロードしてください。
$ 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を、実行パスの通ったディレクトリにコピーします(併せて、ファイル名を修正します)。コピーしたファイルに実行権限を付与してください。
$ 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が正しく配置されたことを確認します。
$ sudo remoteit version
1.6.36

在进行CLI服务的注册和相关工具的安装时。

    remote.it CLIサービスをsystemdに登録します。
$ 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を利用して、関連バイナリのインストールを行います。
$ 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

远程访问.it的登录

    最後に、remote.itアカウントでのサインインを行います。
$ 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に、サインインされたアカウントが表示されます
$ sudo remoteit status
 ? Fetching status

Username: xxxxxxxx@stylez.co.jp

Device:
No device...

Services:

Connections:
    • 以上で、remote.it CLIを使用するための準備が完了しました。

 

    次に、remote,itにターゲットデバイスとサービスを登録していきます。

使用remote.it CLI工具,注册设备和服务。

设备注册

    デバイスをremote.itに登録します。デバイス名を登録できますので、任意の名前(今回はMyLinux)を入力してください。
$ 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)で表示させることにより確認することができます。
$ 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を選択してください
$ 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)で表示させることにより確認することができます。
$ 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を選択してください
$ 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)で表示させることにより確認することができます。
$ 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": []
}
    • 以上で、ターゲットデバイスとサービスの登録が完了しました。

 

    次に、クライアントから登録されたターゲットとデバイスを確認して接続を行います。

使用remote.it CLI与其他remote.it设备进行连接。

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

 

    • Service IDは、CLIの場合には接続先のデバイスで、目的の接続先サービスのUIDから確認することができます。

 

    ※接続先のデバイスで実行ください
$ 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:
image.png
$ 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で接続中になっています。
$ 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 IDName接続先の名称Type接続先のサービスタイプ
※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)で設定ができますので、必要に応じて選択をしてください。※現時点のバージョンでは各単独で設定変更できないかつ、指定しないものはDefault値に戻ってしまうので、必要なものを全て指定する必要があります※add時にはDefault値があるが、modify時にはDefault値が設定されないものがあります(hostname, restrict, retry)
項目内容–id接続先のService ID(入力必須)–portロカールホストのremote.it用の接続ポート番号(Default:自動割当)–hostnameLAN共有をする場合のBIND IP(Default:127.0.0.1)–restrictLAN共有をする場合の接続IPの制限(許可IP、Default:0.0.0.0)–p2pp2p接続をを使用するか否か(trueで使用、Default:true)
※falseの場合にはproxy接続(–failover trueが必要)–failoverconnection filoverを使用するか否か(trueで使用、Default:true)–retry接続の再試行を行うか否か(trueで再試行あり、Default:false)–servicetype接続先のサービスタイプ(Default:自動検出)
※remoteit supportedApplicationsを参照–log接続の詳細ログを出力するか否か(trueで出力、Default:false)
※接続毎に別ファイルとして出力されます–logfolder接続ログ(詳細)を出力した場合の保存先フォルダ(Default:指定なし)
※logfolderを指定しない場合には、サービス実行ユーザのhome(~/)に出力されます(Default:/root)
    以下のオプションはconnection add時のみ指定できます。
項目内容–connect自動的に接続を開始するか否か(trueで自動開始)
    以下のオプションはconnection modify時のみ指定できます。
項目内容–name任意の接続名称(Default:指定なし)–enable接続の有効無効の切り替え(Default:指定なし)
※接続状態は remoteit status で確認(connecting/connected/offline)

学习如何使用remote.it的命令行界面

显示CLI选项

image.png

CLI各个选项的概要

在remoteit –help命令中,您可以查看每个选项的概要。

    Account
項目内容remoteit sigininサインインしたremote.itアカウントを、このデバイスで使用しますremoteit signoutこのデバイスにサインインしているremote.itアカウントを、サインアウトします
    Devices & Service
項目内容remoteit registerこのデバイスを、remote.itアカウントに登録します
※サインインしているアカウントに登録されます
※既に別のアカウントで登録済デバイスの場合には、そのアカウントでtransferを使用することができますremoteit unregisterこのデバイスを、登録されたremote.itアカウントから削除します
※デバイスを登録したアカウントで実行くださいremoteit transferこのデバイスの登録を、他のremote.itアカウントへ移管します
※デバイスを登録したアカウントで実行くださいremoteit addこのデバイスに、remote.itの接続先ポート(サービス)を登録します
※デバイスを登録したアカウントで実行くださいremoteit removeこのデバイスから、登録されたremote.itの接続先ポート(サービス)を削除します
※デバイスを登録したアカウントで実行くださいremoteit modifyこのデバイスに登録されている、remote.itの接続先ポート(サービス)の内容を変更します
※デバイスを登録したアカウントで実行ください
    Connection (connection)
項目内容remoteit connection addこのデバイスから接続する、リモート接続先を登録します
※他のデバイスへのリモート接続の登録となりますremoteit connection remove登録されているリモート接続先を削除しますremoteit connection modify登録されているリモート接続先の内容を変更します
    DevOps & Automation
項目内容remoteit toolsremote.itの関連バイナリファイル等をインストールしますremoteit scan同じネットワーク(subnet)で動作しているホストのサービスをスキャンします (port scan)remoteit uninstallremote.itのすべての設定を削除し、remote.itバイナリを除くすべてのファイルを削除します
※signout, unregister, remove, connection remove, tools uninstall, agent uninstallremoteit resetremote.itのすべての設定を削除します
※signout, unregister, remove, connection removeremoteit enableDebugremote.itのデバッグログを有効/無効に設定します
※設定後に、remoteit agent restartが必要です
    remote.it Agent (agent/system)
項目内容remoteit agent installremote.it をシステムサービスに登録します (systemd)remoteit agent uninstallremote.it をシステムサービスから削除します (systemd)remoteit agent startremote.it サービスを開始します (systemctl start)remoteit agent stopremote.it サービスを終了します (systemctl stop)remoteit agent restartremote.it サービスを再起動します (systemctl restart)
    Misc
項目内容remoteit statusremote.itの設定とステータスを表示しますremoteit versionremote.itのagent/CLIのバージョンを表示しますremoteit inforemote.itの環境情報を表示しますremoteit supportremote.itへのサポートチケット(問合せ)を発行します<BR※詳細動作未確認となりますremoteit supportedApplicationsremote.itに登録されているアプリケーションの一覧を表示ます
※登録されていないアプリケーションでも、TCP/UDPを使用することで、任意のポートへのリモート接続が設定できます

CLI使用时的技巧

以下是一些remote.it CLI的用法示例。尽管下面没有列出,但你也可以使用一行命令输入所需的参数。要了解详细选项,请参考每个命令的–help。

    remtoe.it CLIを新規にインストールする(linux_x86_64の場合)
$ 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の場合)
$ 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アカウントでサインインする
$ sudo remoteit signin
※remote.itアカウントが必要(https://app.remote.it/auth/#/sign-up)
    remtoe.itアカウントにデバイスを登録する
$ sudo remoteit register
※remoteit signinが必要(siginしているremtoe.itアカウントに登録されます)
    デバイスにサービス(接続先)を登録する(ローカルデバイス) ※このホスト宛
$ sudo remoteit add
※remoteit registerが必要(registerしているデバイスに登録されます)
    デバイスにサービス(接続先)を登録する(リモートデバイス) ※リモートホスト宛
$ sudo remoteit add --hostname HOSTNAME
HOSTNAME: LAN内のリモートホストのホスト名またはIPアドレス
※remoteit registerが必要(registerしているデバイスに登録されます)
    リモート接続先を登録する(LAN共有無し)
$ sudo remoteit connection add –id UID
UID: 接続先サービスのServiceID
    リモート接続先を登録する(LAN共有あり)
$ sudo remoteit connection add –id UID --hostname LocalHostIP –restrict RestrictIP
UID: 接続先サービスのServiceID
LocalHostIP: この接続のLAN共有のために使用する、ロカールホストのIP
RestrictIP: この接続のLAN共有に接続できるホストのIP

■查看remtoe.it的状态

$ sudo remoteit status
$ sudo remoteit status --json

确认远程.it配置

$ sudo cat /etc/remoteit/config.json

确认远程.it代理的操作状态。

$ sudo remoteit agent status
$ sudo remoteit agent status --verbose
$ sudo journalctl -u it.remote.cli
$ sudo tail /var/log/remoteit/remoteit.log
广告
将在 10 秒后关闭
bannerAds