ディスプレイなしのXubuntu22.04にVNCでアクセスする

Xubuntu 22.04 TLS
TigerVNC Server 1.12.0
xserver-xorg-video-dummy 0.3.8

ここの手順でVNCサーバーとして設定されている前提です。この設定を行わない場合でもVNCビューワーで接続してもっさり操作は可能です。

必要なパッケージをインストールする。

apt install xserver-xorg-video-dummy

Xorgの設定ファイルにダミーディスプレイドライバを使用する設定を書き込む。内容はArchWikiのコピペっす。

Section "Monitor"
        Identifier "dummy_monitor"
        HorizSync 28.0-80.0
        VertRefresh 48.0-75.0
        Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
EndSection

Section "Device"
        Identifier "dummy_card"
        VideoRam 256000
        Driver "dummy"
EndSection

Section "Screen"
        Identifier "dummy_screen"
        Device "dummy_card"
        Monitor "dummy_monitor"
        SubSection "Display"
        EndSubSection
EndSection

Xubuntu22.04でVNCサーバーを起動して画面共有する

Xubuntu 22.04 TLS
TigerVNC Server 1.12.0

Xubuntuに必要なパッケージをインストールする。

# apt install tigervnc-scraping-server

vncのパスワードファイルを作成する。

$ tigervncpasswd

Xubuntuにログインした状態でvncサーバーを起動する。
※-localhostオプションはデフォルトでyesなので明示的にnoを指定する

$ x0tigervncserver -localhost=no

Xubuntu22.04でVNCサーバーを起動してsshトンネル経由で画面共有する

Xubuntu 22.04 TLS
TigerVNC Server 1.12.0
OpenSSH 8.9

Xubuntuに必要なパッケージをインストールする。

# apt install ssh tigervnc-scraping-server

sshサーバーを有効化して開始する。

# systemctl enable --now ssh

Xubuntuにログインした状態でvncサーバーを起動する。

$ x0tigervncserver -localhost=yes -securitytypes=none

外部から接続するには下記のコマンドをリモート側で実行しsshポートフォワーディングを開始する。
※-Lオプションはリモート側のlocalhost:12345をホスト側のlocalhost:5900に転送するという意味らしい

$ ssh user@hostname.local.example.com -L 12345:localhost:5900

sshを接続したままの状態でvncビューワーでlocalhost:12345に接続する。

$ xtigervncviewer localhost:12345