リモートデスクトップのソフト TigerVNC のインストールと利用(Ubuntu にリモート接続)

Ubuntu マシンに TigerVNC で VNC 接続する手順を示す。ここでは、すでに表示されているデスクトップ画面をそのまま共有する x0tigervncserver(スクレイピングサーバ)を使う。x0tigervncserver は X11 の画面を共有するため、共有したいデスクトップは X.org セッションで動作している必要がある。通信は SSH トンネル経由で行い、VNC のポートは外部に開かない設定を用いる。設定ファイルとログは ~/.config/tigervnc に置かれる。TigerVNC のパスワードは 6 文字以上で、先頭 8 文字のみが有効である。

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うには, 次のコマンドを実行する.

Ubuntu のインストールは別ページ »で説明する.

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを更新 (依存関係も考慮)
sudo apt full-upgrade
# 変更をシステム全体に反映させるために再起動
sudo shutdown -r now

X.org セッションの用意

x0tigervncserver は,動作中の X サーバの画面を VNC で配信する.そのため,共有したいデスクトップは X.org セッションで動作しており,そのユーザでログインしている必要がある.

Ubuntu 26.04 LTS の標準デスクトップ(GNOME 50)は Wayland でのみ動作し,GNOME の X.org セッションは提供されない.そのため,物理デスクトップを x0tigervncserver で共有する場合は,X.org セッションで動作するデスクトップ環境(Xfce,MATE,KDE on X11 など)をインストールし,ログイン画面でそのセッションを選んでログインする.

X.org セッションを使わない選択肢は次の 2 つである.画面を共有せずに新しい仮想デスクトップを VNC で使う場合は,tigervncserverXtigervnc)を用いる.Wayland の GNOME 画面をそのまま遠隔操作したい場合は,GNOME の設定アプリに含まれるリモートデスクトップ機能(RDP)を用いる.

サーバ側の設定

  1. ssh サーバを起動し,SSH のポートを開放する
    sudo apt -y install openssh-server
    sudo apt install ufw
    sudo ufw allow 22/tcp
    sudo ufw enable
    

    VNC の通信は SSH トンネル経由で行うため,VNC のポート(5900/tcp)は開放せず,SSH のポート(22/tcp)のみを許可する.sudo ufw enable でファイアウォールを有効化する.有効化のときに既存の接続が切断される場合がある.

    SSH トンネルを使わず,VNC クライアントから直接接続する場合は,sudo ufw allow 5900/tcp で VNC の標準ポートを開放する.この場合,VNC の通信内容は経路上で保護されない.

  2. SSH のポートフォワーディングを許可する

    /etc/ssh/sshd_config ファイルで次のように設定する.この設定は既定値でもある.

    AllowTcpForwarding yes
    

    設定変更を反映させるために,sshd サービスを再起動する.

    sudo systemctl restart ssh
    
  3. tigervnc のインストール,古い設定データの消去
    sudo apt install tigervnc-scraping-server
    cd
    rm -rf ~/.config/tigervnc
    

    tigervnc-scraping-server パッケージが x0tigervncserver を提供する.cd コマンドでホームディレクトリに移動する.rm -rf ~/.config/tigervnc は,以前の設定,パスワード,証明書などを削除し,設定を最初からやり直すために実行する.

    新しい仮想デスクトップを使う場合は,別途 sudo apt install tigervnc-standalone-server を実行し,tigervncserver を使用する.

  4. パスワードを設定
    tigervncpasswd
    

    VNC 接続で使用するパスワードを設定する.このコマンドを実行するとパスワードの入力を求められ,~/.config/tigervnc/passwd に保存される.パスワードは 6 文字以上で,先頭 8 文字のみが有効である.

  5. デスクトップを共有するようにサーバを起動
    x0tigervncserver -localhost yes
    

    表示中のデスクトップ(:0)を共有する VNC サーバが起動する.パスワードファイルは既定で ~/.config/tigervnc/passwd が使われる.待ち受けポートは 5900 に共有するディスプレイ番号を加えた値である(:0 の場合は 5900).

    -localhost yes は,同一マシン(localhost)からの接続のみを受け付ける設定であり,SSH トンネル経由の接続で用いる.SSH トンネルを使わず,他のマシンから直接接続を受け付ける場合は -localhost no を指定する.

    x0tigervncserver -localhost no
    

    共有する画面の範囲を指定する場合は -Geometry 幅x高さ を追加する.

    x0tigervncserver -localhost yes -Geometry 1920x1080
    

    起動したサーバの一覧表示と停止は,次のコマンドで行う.

    x0tigervncserver -list
    x0tigervncserver -kill :0
    

    ログファイルは ~/.config/tigervnc/<ホスト名>:<ディスプレイ番号>.log に保存される.接続できないときは,このファイルの内容を確認する.

Windows マシンからの接続

Windows マシンで MobaXTerm を使って接続する手順を示す.

  1. MobaXTerm のインストール: 別ページ »で説明する.
  2. MobaXTerm での操作

    「Session」 をクリックする. 「New Session」をクリックする. 「VNC」を選ぶ.

    SSH トンネル経由で接続する場合は,「Remote hostname or IP address」に localhost,「Port」に 5900 を設定する.そして「Network settings」をクリックし,「Connect through SSH gateway」をチェックする.Gateway SSH server に接続先の Ubuntu マシンの IP アドレスまたはホスト名を設定し,「User」にログインするユーザ名を設定する.

    SSH トンネルを使わず直接接続する場合は,「Remote hostname or IP address」に接続先の Ubuntu マシンの IP アドレスまたはホスト名,「Port」に 5900 を設定する.このとき,サーバ側は -localhost no で起動し,5900/tcp を開放しておく必要がある.

    接続時には,tigervncpasswd で設定したパスワードを入力する.