- add relay-only Docker Compose configuration - document KEY and key-file setup methods - clarify legacy -k _ behavior and Pro 1.8.6 changes - update all translations Signed-off-by: 21pages <sunboeasy@gmail.com>
12 KiB
title, weight, description, keywords
| title | weight | description | keywords | |||||
|---|---|---|---|---|---|---|---|---|
| リレーサーバーの設定 | 17 | RustDesk のリレーサーバーの設定に関するドキュメントです。インストール、設定、展開、トラブルシューティングのガイドを参照できます。 |
|
クイックアンサー
1 つの拠点や 1 台の Relay だけでは遅延、地域分散、トラフィック分配に足りない場合、追加 Relay が必要になります。主コンソールと基本展開が安定してから設定してください。
重要なポイント
- 重要な地域やユーザー群の近くに追加 Relay を配置します
- Web コンソールで Relay 設定を登録し確認します
- 本番トラフィックを切り替える前にルーティングを検証します
RustDesk Pro - dockerを使用してジオロケーション付きの追加リレーサーバーをインストール
{{% notice note %}}
シンプルインストールは、同じマシン上に暗黙的にリレーサーバー(hbbrプロセス)を作成します。リレーサーバーを明示的に指定する必要はありません。
別のマシン上に追加のリレーサーバーを明示的に作成したい場合は、OSS インストールに従ってhbbrを実行してください。hbbrはrustdesk-server-linux-amd64.tar.gz、rustdesk-server-hbbr_<version>-<arch>.deb、rustdesk-server-windows-x86_64.tar.gz、またはdocker(sudo docker run ... rustdesk/rustdesk-server-pro hbbr)で見つけることができます。
hbbrはライセンスを必要とせず、オープンソース版と同じです。
{{% /notice %}}
世界中で複数のリレーサーバーを実行し、ジオロケーションを自動的に活用して最寄りのリレーサーバーを使用することで、リモートコンピューターへの接続時により高速な体験を得ることができます。hbbsは数秒ごとに自動的にこれらのリレーサーバーがオンラインかどうかを確認し、オンラインのリレーサーバーのみを選択します。
{{% notice note %}} 既知の問題: https://github.com/rustdesk/rustdesk/discussions/7934 {{% /notice %}}
hbbrの環境変数KEYにid_ed25519.pubの公開鍵を設定するか、id_ed25519とid_ed25519.pubをリレーサーバーにコピーします。
Docker Compose
追加のリレーサーバーに必要なのはhbbrだけです。hbbsとdepends_onは必要ありません。次のいずれかの鍵設定方法を選択します。
environmentセクションを残し、次の例のようにKEYにid_ed25519.pubの内容を設定します。environmentセクション全体を削除し、id_ed25519とid_ed25519.pubを./dataに配置します。
次の内容でcompose.ymlファイルを作成します。
services:
hbbr:
container_name: hbbr
image: docker.io/rustdesk/rustdesk-server-pro:latest
environment:
KEY: "<PUBLIC_KEY>"
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
Docker
環境変数で鍵を設定する
KEYにid_ed25519.pubの内容を設定します。
# sudo docker run --name hbbr -e KEY="<PUBLIC_KEY>" -td --net=host rustdesk/rustdesk-server-pro hbbr
鍵ファイルを使用する
以下のDockerの例では、鍵ファイルを使用する方法を示します。
1 - dockerがすでにインストールされている場合、SSH経由でサーバーに接続し、hbbr用のボリュームを作成します。
# docker volume create hbbr
hbbrボリュームは/var/lib/docker/volumes/hbbr/_dataに配置される必要があります。
2 - 秘密鍵ペアをボリュームの場所にコピーします。この場合、SCPを使用してファイルをコピーします。
コマンドの構文はscp <パス/ファイル名> ユーザー名@サーバー:</宛先/パス>です。
# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
3 - 以前に作成したボリュームを使用してhbbrコンテナをデプロイします。このボリュームには、プライベートリレーサーバーを実行するために必要な秘密鍵ペアが含まれています。
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server-pro hbbr
rustdesk/rustdesk-serverイメージでは、引き続き-k <KEY>を使用できます。マウントした鍵ファイルを使用するには、-k _を指定して実行します。
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _
ここで_は鍵そのものではなく、特別な値です。hbbrにid_ed25519を読み込むか生成させ、そこから公開鍵を取得してリレー要求の検証に使用させます。RustDesk Server Pro 1.8.6より前のバージョンでも、id_ed25519を読み込むために-k _を使用できました。
RustDesk Server Pro 1.8.6以降、hbbrの-kオプションは非推奨となり、無視されます。KEYが設定されていない場合、hbbrはid_ed25519から公開鍵を取得し、秘密鍵ファイルが存在しない場合はid_ed25519.pubから読み取ります。どちらのファイルも存在しない場合、hbbrは公開リレーモードで動作します。
4 - 実行ログを確認して、hbbrが鍵ペアを使用して実行されていることを確認します。
# docker logs hbbr
INFO [src/common.rs:121] **Private key comes from id_ed25519**
NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :21117
OSによっては、ファイアウォールを使用してIPをブロック/許可したい場合があります。
我々の場合、Ubuntuを実行して、ポート21117と21119へのTCP接続を許可したいと思います。
# sudo ufw allow proto tcp from any to any port 21117,21119
ファイアウォールを有効にする
# sudo ufw enable
ステータスを確認する
# ufw status
Status: active
To Action From
-- ------ ----
21117,21119/tcp ALLOW Anywhere
21117,21119/tcp (v6) ALLOW Anywhere (v6)
Webコンソールを使用してジオロケーション用にRustDesk Proを設定
GeoLite2 Cityデータベースファイルの登録とダウンロード
ジオロケーションを使用するには、hbbsがMaxMind GeoLite2 Cityデータベースにアクセスする必要があります。データベースは無料で、登録してファイルをダウンロードし、APIキーを取得できます。
ウェブサイトにアクセスしてアカウントを作成します(まだない場合)。
Download Databasesに移動してGeoLite2 Cityをダウンロードし、gzipファイルを選択すると、解凍時にmmdbファイルが得られます。
Linuxマシンでインストールスクリプトを使用してRustDesk Proをインストールした場合、mmdbファイルは/var/lib/rustdesk-server/に移動する必要があります。
Dockerインストールの場合、ファイルは/rootにマップされたコンテナをデプロイする際にマップしたボリューム内にある必要があります。
プロセスを自動化するためのAPIキーの取得 - Linuxサーバー
このファイルを定期的に更新する必要があり、cronjobを使用できます。無料のダウンロードリンクにアクセスするためのAPIキーが必要です。
Manage License Keysに移動して新しいライセンスキーを生成します。
ダウンロードプロセスをいくつかの方法で自動化できますが、前のステップで取得したAPIキーで{Your Access Key}を置き換えて、以下のコマンドをcrontabに追加してください。
/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={Your Access Key}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb'
RustDesk Pro Webコンソールで設定を変更
リレーサーバーのIPアドレスまたはDNS名(DNSはバージョン1.1.11以降でサポート)をリレーサーバーに追加します。ポートは必要ありません。21117ポートが明示的に使用されます。
サーバーのIPアドレスとサーバーが配置されている座標を追加してジオオーバーライドを追加します。
Reload Geoをクリックすると、リストは以下のようになります。
結果を確認するには、Reload Geoをクリックした際のhbbsログを確認してください。リレーサーバーのIPアドレスとその座標を示すメッセージが表示されます。
LinuxマシンでRustDesk Proを実行している場合は、コマンド
RUST_LOG=debug ./hbbsを使用してログを表示します。Dockerコンテナで実行している場合はdocker logs hbbsを使用します。
RUST_LOG=debug ./hbbs
INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb
INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx
[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx
[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx
GEOIP_FILE loaded, #overrides 3
INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"]
NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))]
コンテナログを確認することで、hbbrインスタンスでリレー要求を直接確認することもできます。
# docker logs hbbr
INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired
INFO [src/relay_server.rs:442] Both are raw