vino のインストールと利用(Ubuntu にリモート接続)

Vino は GNOME 用の VNC サーバである。Ubuntu 24.04 LTS では Xorg セッションでのみ動作する。Wayland セッションで画面共有を行うときは、RDP を使う gnome-remote-desktop を用いる。Vino のインストール、gsettings によるパスワード設定、ufw によるポート開放、SSH ポートフォワーディングの設定手順を示す。

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは、 次のコマンドを実行する。

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

サーバ側の設定

Ubuntu 24.04 LTS の GNOME の「設定」→「共有」→「リモートデスクトップ」は、RDP を使う gnome-remote-desktop である。Vino は universe リポジトリのパッケージとして提供されており、Xorg セッションでのみ動作する。VNC クライアントから接続したいときに Vino を使う。

  1. ファイアウォールの設定: ポート 5900, 5901 で通信可能にする(他のポートは遮断)

    Vino は VNC のポート 5900 を使う。複数のディスプレイを共有するときは 5901 以降も使う。外部からの接続を許可するため、ファイアウォールでこれらのポートを開放する。

    sudo apt -y install ufw
    sudo ufw allow 5900
    sudo ufw allow 5901
    
  2. SSH サーバのインストールと設定(SSH 経由でポートフォワーディングしたい場合)

    VNC の通信は暗号化されない。SSH でトンネル化すると、通信を暗号化できる。ポートフォワーディングを使うには、SSH サーバが動作している必要がある。SSH は既定でポート 22 を使うため、ファイアウォールでこれも許可する。

    sudo apt -y install openssh-server
    sudo ufw allow 22
    

    /etc/ssh/sshd_config で TCP フォワーディングが許可されていることを確認する。既定では許可されている。

    AllowTcpForwarding yes
    

    クライアント側では、次のコマンドでトンネルを作る。接続先には localhost:5900 を指定する。

    ssh -L 5900:localhost:5900 ユーザ名@サーバのIPアドレス
    
  3. Vino のインストールと設定

    次のコマンドでインストールする。

    # パッケージリストの情報を更新
    sudo apt update
    sudo apt -y install vino
    cd
    

    Ubuntu 22.04 LTS および 24.04 LTS では既定で Wayland セッションが使われる。Vino は Xorg セッションでのみ動作するため、ログイン画面の歯車アイコンから「Ubuntu on Xorg」を選んでログインする。

    Vino の設定は gsettings コマンドで行う。Vino では vncpasswd コマンドは使わない。パスワード認証を有効にするには、次のコマンドを実行する。パスワードは base64 でエンコードした値を設定する。xxxxxx の部分を実際のパスワードに置き換える。

    gsettings set org.gnome.Vino require-authentication true
    gsettings set org.gnome.Vino authentication-methods "['vnc']"
    gsettings set org.gnome.Vino vnc-password "$(echo -n 'xxxxxx' | base64)"
    

    接続のたびにサーバ側での許可操作を求めないようにするには、次のコマンドを実行する。

    gsettings set org.gnome.Vino prompt-enabled false
    

    Vino サーバの起動と自動起動の設定は、Xorg セッションにログインした状態で、次のコマンドを実行する。

    systemctl --user enable --now vino-server
    

    手動で起動するときのコマンドは次である。

    /usr/lib/vino/vino-server
    

Windows マシンからの接続

Windows マシンから Vino に接続するには、VNC クライアントを使う。ここでは MobaXTerm を使う場合の操作を説明する。gnome-remote-desktop に接続するときは、RDP クライアント(Windows の「リモート デスクトップ接続」など)を使う。

  1. MobaXTerm での操作

    MobaXTerm を起動し、「Session」をクリックする。「New Session」をクリックし、「VNC」を選ぶ。リモート接続したい Ubuntu サーバの IP アドレスまたはホスト名を設定する。

    SSH ゲートウエイ経由で接続するときは、「Network settings」をクリックし、「Connect through SSH gateway」をチェックする。Gateway SSH server の IP アドレスと「User」を設定する。

    *(⚠️ link removed: this file was never actually generated — ask me to produce it again)*