MENU
カテゴリー
アーカイブ

リモートデスクトップ接続あれこれ

自宅の LAN には Windows 仮想マシンやデスクトップ環境ありの仮想マシン、在宅勤務用のデスクトップ PC がある。Windows 以外はこれまで主に Ubuntu を使っていたけれど、最近いずれも Pop!_OS に統一した。

普段使いのノート PC からリモート接続する手段としてRemmina(RDP)や virt-viewer(spice)を使用しているが、RustDesk が良さそうな記事を見かけたから試してみた。

RustDesk は自前で中継サーバーを準備できるから、AnyDesk や Chrome Remote Desktop のように外部サーバーを経由しなくても LAN 内で閉じられた環境を構築できるのがイイ。また、サーバーのパブリックキーを知っている端末しか接続できないように設定すれば、LAN 内でも暗号化通信かつ接続制限を実現できる(必要かどうかは別として)。

目次

前提

Pop!_OS(22.04 LTS) のサウンドサーバーは Ubuntu 22.10 以降と同じく PipeWire が採用されている。Remmina で RDP 接続する場合、xRDP は PipeWire をサポートしていないから接続先 PC のサウンドを再生できない(設定画面で確認するとダミー音源になっている)。

これを解決するために次のような取り組みが行われていて、次期バージョンではテストモードとして PipeWire のサポートが予定されている。このスクリプトはターミナルからいちいち設定ファイルを修正することなく、一発で xRDP 接続環境を簡単に構築できるから大変便利に使わせてもらっている。

自分の環境だとサウンドを有効にして接続するには、上のサイトのとおり接続先の仮想マシン(Pop!_OS)に手動でテスト版を適用するか、Proxmox 管理画面を開いてからコンソール(SPICE)をクリックして virt-viewer を立ち上げることになる。
普段停止しているデスクトップ環境の仮想マシンなら、使用するときに必ず管理画面を開いて起動するから spice でも OK 。でも本番環境のデスクトップ PC にはテスト版の適用を避けたいから、今しばらく xRDP の対応を待つ必要がある。

ということで、自鯖とも Proxmox とも直接関係ないけれどメモ。

RustDesk Server のインストール

冒頭のサイトで懇切丁寧に記述されている。
インストールの流れは次のとおり。

STEP
サーバーの準備

今回は VM ではなく CT(Ubuntu 22.04) にした。常に中継サーバーを経由するわけじゃないから CPU 1コア、メモリー 512MB、ストレージ 8GBとかでも十分。
フィアアーウォールの設定は適切に。

STEP
関係ファイルのダウンロード

GitHub から3つのファイルをダウンロードする。
5月21日時点の最新版は 1.1.7-4。

  • rustdesk-server-hbbr_1.1.7_amd64.deb
  • rustdesk-server-hbbs_1.1.7_amd64.deb
  • rustdesk-server-utils_1.1.7_amd64.deb ※ファイルが多いため隠れている
STEP
インストール
$ sudo apt install ./rustdesk-server-*.deb
STEP
ユーザーの追加
$ sudo adduser --system --group --no-create-home rustdesk
STEP
パーミッション変更
$ sudo chown -R rustdesk: /var/lib/rustdesk-server/ /var/log/rustdesk/
STEP
ファイルの修正(2つ)

ExecStart のオプション "-k _" は、公開鍵を持たず暗号化されていない接続を禁止するため。

$ sudo systemctl edit --full rustdesk-hbbr.service

以下の3行の修正
ExecStart=/usr/bin/hbbr -k _
User=rustdesk
Group=rustdesk
$ sudo systemctl edit --full rustdesk-hbbs.service

以下の3行の修正
ExecStart=/usr/bin/hbbr -k _
User=rustdesk
Group=rustdesk
STEP
リスタートと動作確認
サーバーリスタート
$ sudo systemctl restart rustdesk-hbbr.service
$ sudo systemctl restart rustdesk-hbbs.service

動作確認(アドレスは自分の環境に合わせること)
$ sudo rustdesk-utils doctor 192.168.1.100
STEP
キーの確認

RustDesk Client の設定に必要な /var/lib/rustdesk-server/ 内の公開鍵ファイル(id_XX00000.pub)の内容をメモしておくこと。

RustDesk Client のインストール

STEP
ダウンロード

PipeWire に対応する RustDesk Client は開発版の 1.2.0 だから、次のサイトからダウンロードする。

  • deb パッケージ
    rustdesk-1.2.0-x86_64.deb
  • Windows インストーラー
    rustdesk-1.2.0-x86_64.exe
STEP
インストール

仮想マシンにダウンロードしたファイルをコピーしてインストールする。

STEP
接続

接続先の仮想マシンで接続時のパスワードを設定する。
Remmina でも spice でもいいので仮想マシンにログインしてから RustDesk を起動、バーガーメニューをクリックして設定タブを表示する。
最初は「Security」の項目から。
上部青い部分の「Unlock Security Settings」をクリックしてから「固定パスワードの設定」をクリックして保存すれば OK。接続元のノート PC で初めて接続するときに入力するので忘れないように。

Security

続いて「Network」から認証・中継サーバーの情報を入力する。自分の環境だと最初に作った RustDesk Server の IP アドレスを入力することになる。
また、Key にはメモしておいた id_XX00000.pub の内容をコピー&ペーストで貼り付ける。

Network

あと、接続先の ID を忘れないようメモしておくこと。
接続先の作業としては、最低限これくらい設定すれば大丈夫。

続いて接続元ノート PC の作業。
インストールした RustDesk Client を起動して同じように「Network」で認証・中継サーバーの情報を入力する。それから、下画像の「リモートの ID を入力」のところに、接続先の ID を入力して「接続」をクリックする。初めて起動したときは「最近のセッション」には何もない。一度でも接続すると出てくる。

接続

Proxmox の仮想マシンでは無理だけど、デスクトップ PC なら WOL に対応していて、かつ設定を行っていれば、上画像の「WOL」をクリックすることで PC を起動できるから便利。

  • これまではマジックパケットを送出するスクリプトを実行していた。
  • 仮想マシンを起動しっぱなしにしているなら関係なし。常にグリーン(準備完了)のハズ。

感想

今のところサウンドサーバーが Pipewire なことを前提とすると、

  • デスクトップ PC でサウンドを有効化するなら RustDesk。
  • 普段停止している仮想マシンにサウンドを有効化して接続するなら spice か RustDesk。
  • 常時起動している仮想マシンにサウンドを有効化して接続するなら RustDesk。
  • 音が出なくても良いなら Remmina か RustDesk。

という感じかな。Windows な仮想マシンへの接続ならどれでもいい。

その他としては、

  • 速度は画質の調整次第なところもあるから何とも言えない。
  • RustDesk はリモートデスクトップ接続中の接続元〜接続先ファイル転送をサポートしている。けど自分の環境では Nextcloud で共有しているから使用頻度は少ない。
  • spice は USB パススルーをお手軽に実行できるから活躍することがある(かもしれない)。

・・・結局のところお好みでどうぞ、ということで参考にならないな。

コメント

コメントする

目次