ホームに戻る

自前のリレー

RemoScreen リレー導入ガイド

RemoScreen リレーの導入方法を説明します。パッケージには Linux リレー、初期設定ツール、設定テンプレート、本ガイドが含まれます。ダウンロードの提供状況はアプリで確認してください。

リレーパッケージをダウンロード

サーバーのアーキテクチャに合わせて選んでください。パッケージに SHA256SUMS が入っているので、確認してから展開します。

Linux x86_64 Linux ARM64(テスト中)

リレーの役割

端末はまず直接接続を試みます。直接接続できない場合、リレーが承認済みセッションの画面・音声・操作データを転送します。Mac と iPad の両方の「接続サービス」に自分のリレーを追加すると、予備経路として利用できます。本ガイドのダウンロード、設定、起動手順はすべてリレー向けです。

ダウンロードと準備

サーバーの CPU に合わせて Linux x86_64 または ARM64 を選びます。remoscreen-service、remoscreen-setup、テンプレート、本ガイド、バージョンとソース識別情報、SHA256SUMS が含まれることを確認してください。公開ページのチェックサムと照合し、新しいバージョン用ディレクトリに展開して旧版を残します。

Linux サーバー、そのサーバーを指すドメイン、ドメインと一致する有効な HTTPS 証明書を用意します。最小限の権限を持つ専用ユーザーと永続データ用ディレクトリを使います。実行権限を付与し、状態ディレクトリは専用ユーザーだけがアクセス可能に、生成された鍵ファイルは 0600 に設定します。

例では connect.example.com、HTTPS 8443、リレー TCP 9443 を使用します。ドメイン、ポート、ファイアウォール、クラウドのセキュリティグループを事前に確認してください。ポートが使用中ならリバースプロキシか別の待受アドレスを計画し、既存サービスを置き換えないでください。

予備リレーの初期設定

サービス用ユーザーで実行します。ドメインを実際の値に置き換え、そのユーザー所有の専用データディレクトリを指定します。

./remoscreen-setup -directory /var/lib/remoscreen/relay \
  -role relay -name RemoScreen \
  -control-url https://connect.example.com:8443/v2/control \
  -relay-host connect.example.com -relay-tcp-port 9443

サービス ID、クライアント用アクセスキー、設定が生成されます。再実行時も relay ロールと元のアドレスを維持してください。既存の ID は上書きされません。更新のためにデータを削除したり、鍵を再生成したりしないでください。

予備リレーの起動

同じデータディレクトリを使用し、証明書のパスをサービス用ユーザーが読める実際の PEM ファイルに置き換えます。

./remoscreen-service -service-role=relay \
  -control-listen=:8443 \
  -control-tls-certificate=/etc/remoscreen/fullchain.pem \
  -control-tls-key=/etc/remoscreen/privkey.pem \
  -service-info-config=/var/lib/remoscreen/relay/service-info.json \
  -relay-control-config=/var/lib/remoscreen/relay/relay-control.json \
  -relay-access-keys=/var/lib/remoscreen/relay/relay-access-keys.json \
  -control-revocation-store=/var/lib/remoscreen/relay/revocations.json \
  -control-primary-lock=/var/lib/remoscreen/relay/primary.lock \
  -account-deletion-journal=/var/lib/remoscreen/relay/deletion-journal.json \
  -usage-ledger-store=/var/lib/remoscreen/relay/usage.jsonl \
  -public-host=connect.example.com -tcp-relay-listen=:9443 \
  -tcp-require-local-control-allocation=true \
  -relay-node-id=self-hosted -relay-region=self-hosted \
  -require-commercial-subscription=false

まずフォアグラウンドで起動を確認し、その後 Linux のサービス管理機構で管理します。専用ユーザー、実行ファイルの絶対パス、同じ引数、非公開データディレクトリ、障害時の再起動をサービス定義に設定します。証明書更新後は、このサービスを再起動して新しい証明書を読み込みます。

Mac と iPad に追加

サーバー上の非公開 client-connection.json からアドレスとクライアント用アクセスキーを読み、信頼できる方法で利用者に伝えます。各端末の「接続サービス」→「サーバーを追加」で入力し、サービス ID を確認して保存します。

アプリで読み込む設定ファイルは「設定を書き出す」で生成してください。client-connection.json は管理者向けの初期設定結果であり、アプリへの読み込み用ではありません。service-info.json、relay-control.json、TLS 秘密鍵、サーバーのデータディレクトリ全体は共有しないでください。

接続は直接経路を優先します。リレーが許可され、直接接続できない場合だけ予備リレーを利用します。

導入後の確認

別のネットワークから HTTPS 証明書と /v2/service-info の署名付きサービス ID を確認し、アプリ内のサーバー接続チェックを実行します。承認済み端末と直接接続できないテスト用ネットワークで、このリレーが実際に使われることを確認してください。ログに証明書やアクセスキーのエラーがないか調べます。

プロセスの起動やヘルスチェック成功だけでは十分ではありません。リモート画面、キーボード、マウス、ファイル転送、再接続を確認し、サーバーの報告バージョンが配布版と一致することも確かめます。

更新・復元・アンインストール

更新前に設定、すべての永続データ、旧版の実行ファイルをバックアップし、現在のバージョンを記録します。対象サービスを停止して新版に切り替え、データディレクトリと ID を保持したまま導入後の確認を繰り返します。失敗した場合は新版を停止し、対応するバックアップと旧版を復元します。データ形式が変わる場合は、その版の移行手順に従ってください。

アンインストールでは対象のサービス定義を無効化して削除し、プログラムやデータの削除は管理者が明示的に判断します。永続データとバックアップは既定で保持し、他のサービスやアプリのデータを削除しないでください。