スマホ側システム: postmarketOS (Alpine Linux)、デスクトップ環境はPhosh
PC側システム: Ubuntu 20.04
PCからスマホLinuxのリモートデスクトップへログインします。図のように、PCでスマホをリモート操作するのと同じです。リモートデスクトップ環境のcompositorはwlrootsである必要があるため、GNONE/KDE/Westonはサポートされません。
概要#
Linuxの表示プロトコルにWaylandを使っている場合、従来のx11 VNC Serverはおそらく通用しません。この場合はWayVNCという新しい技術を使う必要があります(詳細情報)。
まずリモートデバイスへSSHし、暗号化トンネルを作ってパケットを転送し、その後ローカル側のVNC Viewerを開いて接続します。
以下の表記では、本機=PC、リモート=スマホとします。
1. 先にリモート側のSSH設定を調整する#
- postmarketOSではデフォルトでSSHサービスがインストール済みのはずなので、まず起動します:
sudo rc-service sshd start
sudo rc-update add sshd- まずリモート側でsshd設定(
/etc/ssh/sshd_config)を編集し、以下の2項目があるか確認します。なければ追加するか、コメントアウトを解除します:
AllowTcpForwarding yes
X11Forwarding yes- その後ファイルを保存し、SSHサービスを再起動します。
sudo rc-service sshd restartifconfigを入力してスマホのIPを確認します(私はローカルネットワークを使っているため、先頭は192.168.です)
xiaomi-beryllium:~$ ifconfig
wlan0 Link encap:Ethernet
inet addr:192.168.0.243 Bcast:192.168.0.255 Mask:255.255.255.0- WayVNCパッケージをインストールします
sudo apk add wayvnc- WayVNCを起動します。IPはスマホのIPです(
localhostはスマホ本体だけが接続できるという意味で、0.0.0.0なら外部接続を開放します)。5901は私が自分で選んだポート番号です。この時点で画面上にマウスが表示されるはずです。
wayvnc localhost 5901- WayVNC起動後は何も出力されません。終了するにはCTRL+Cを使います。
2. 本機でSSHトンネルを作成する#
SSHトンネルを作成する目的は、VNC通信を暗号化することです。速度優先なら、暗号化しないのもまあ手です。
- ターミナルを開き、以下のコマンドを入力します(5901はリモート側のポート番号と一致させます。userはリモート側のアカウントで、@の後ろに付けるのはリモートIPです)
ssh -L 5901:localhost:5901 user@192.168.0.243- リモート側のパスワードを入力するとログインに成功します
Welcome to postmarketOS! o/This distribution is based on Alpine
Linux.First time using postmarketOS? Make sure to read the cheatsheet in the wiki: https://postmarketos.org/cheatsheetYou may change this message by editing /etc/motd.
xiaomi-beryllium:~$- 本機でRealVNC VNC Viewerを開き、接続IPを入力します:
localhost:5901AllowTcpForwardingを設定しても接続できない場合は、本機の
~/.sshディレクトリを削除してから再試行してみます。リモートデスクトップへの接続に成功します。
