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

Ubuntu 24.04 LTSにTightVNCサーバーをインストールしリモート接続する方法を解説する。デフォルトのWayland環境でデスクトップを表示するには~/.vnc/xstartupにXorgセッションを起動する設定が必要である。SSHトンネリングによる安全な接続方法も説明する。

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 次のコマンドを実行する.システムのセキュリティと安定性を保つために,定期的な更新が推奨される.

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

# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新
sudo apt upgrade
# システム全体を最新の状態に更新 (依存関係の変更も伴う場合がある)
sudo apt full-upgrade
# 変更をシステム全体に確実に反映させるために再起動が必要な場合がある
sudo shutdown -r now

サーバ側の設定

  1. ファイアウォールの設定: ファイアウォール(UFW)を設定し,VNC接続で使用するポートを開放する.デフォルトではディスプレイ番号 :1 がポート 5901 を使用する.セキュリティのため,必要なポート(通常は5901)のみを開放し,他のポートは遮断する.
    sudo apt install ufw
    sudo ufw allow 5901 # 通常はディスプレイ番号 :1 (ポート5901) を使用
    # sudo ufw allow 5900 # ディスプレイ番号 :0 (ポート5900) を使用する場合
    sudo ufw enable
    

    注意: ファイアウォール有効化(sudo ufw enable)で許可ポート以外は遮断される.SSH(22)など他のサービスも必要に応じて開放が必要である.

  2. SSHサーバのインストール (オプション): SSH経由でポートフォワーディング(SSHトンネリング)したい場合には,SSHサーバも起動する必要がある.SSHトンネリングはVNC通信を暗号化し,セキュリティを向上させる.
    sudo apt -y install openssh-server
    sudo ufw allow 22 # SSHポートを開放
    

    SSHポートフォワーディングを有効にするには,/etc/ssh/sshd_config を編集し,以下の設定を確認または追加する.

    AllowTcpForwarding yes
    

    設定変更後はSSHサービスを再起動する(例: sudo systemctl restart sshd).

  3. TightVNCサーバのインストールと初期設定の削除: tightvncserver をインストールする.その後のコマンドは,以前の設定やパスワード情報を初期化するために ~/.vnc ディレクトリを削除する.
    # パッケージリストの情報を更新
    sudo apt update
    sudo apt -y install tightvncserver
    cd # 確実にホームディレクトリに移動
    rm -rf .vnc # 既存のVNC設定 (.vnc ディレクトリ内のファイルすべて) が削除されることに注意
    
  4. VNCパスワードの設定: VNC接続時に使用するパスワードを設定する.このコマンドを初めて実行すると,VNC接続用と読み取り専用のパスワード設定を求められる.パスワードは8文字以上の強力なものを設定し,定期的に変更することが推奨される.
    vncpasswd
    
  5. VNCサーバセッションの初回起動と xstartup ファイルの確認: VNCサーバセッションを起動する.
    vncserver
    

    このコマンドを初めて実行すると,通常,新しいセッションのディスプレイ番号(例: :1)やログファイルの場所が表示され,~/.vnc ディレクトリに xstartup ファイルなどが作成される.TightVNCはデフォルトでディスプレイ番号 :1(ポート 5901)で起動することが多い.別のディスプレイ番号を指定して起動するには vncserver :2,解像度を指定する場合は vncserver -geometry 1920x1080 :1 とする.

    Ubuntu 24.04 LTSはWaylandがデフォルトのため,TightVNCではxstartup設定がないとデスクトップが正しく起動しない可能性が高い.多くの場合,次のステップでの~/.vnc/xstartup編集が必須である.

  6. ~/.vnc/xstartup ファイルの設定(Ubuntu 24.04 LTS環境で必須): VNCセッションのデスクトップ環境や起動アプリは~/.vnc/xstartupで制御される.このファイルがないと画面が真っ暗になる場合がある.

    Ubuntu 24.04 LTS環境でGNOMEなどを表示するには,このファイルを編集し,Xorgセッションを起動する設定が必要である.以下に一般的な設定例を示す(環境に合わせて修正が必要).

    #!/bin/sh
    
    # TightVNCでデスクトップ環境を起動するための一般的な設定例
    # Ubuntu 24.04 LTS (GNOME) で Xorg セッションを起動する場合
    
    # DBusセッションバスアドレスを設定(必要な場合がある)
    # unset SESSION_MANAGER
    # unset DBUS_SESSION_BUS_ADDRESS
    # export DBUS_SESSION_BUS_ADDRESS
    
    # デスクトップ環境を起動する
    # Ubuntu標準のXorgセッションを起動する(最も推奨)
    exec /etc/X11/Xsession
    
    # または、gnome-sessionで特定のセッションを指定
    # exec gnome-session --session=ubuntu-xorg
    
    # XFCEデスクトップ環境を起動する例
    # exec startxfce4
    
    # その他の設定例(必要に応じてコメントアウトを解除または追加)
    # [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup # システム共通のxstartupがあれば実行
    # [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources # Xリソースをロード
    # xsetroot -solid grey # 背景色を設定
    # vncconfig -iconic & # VNC設定ツールを起動
    # x-terminal-emulator -geometry 80x24+10+10 -ls & # ターミナルエミュレータを起動
    # x-window-manager & # ウィンドウマネージャを起動
    

    上記例の中から,使用したいデスクトップ環境に対応する exec 行などを選び,他の行はコメントアウトするか削除する.ファイルを保存した後,実行権限を付与する.

    chmod +x ~/.vnc/xstartup
    

    設定反映には既存セッションを終了し,再度vncserverで起動し直す必要がある(例: vncserver -kill :1 後に再度vncserver実行).

    VNCサーバ起動時のスクリーンショット例

Windows マシンからの接続

Windows マシンからVNCサーバに接続するには,VNCクライアントソフトウェアを使用する.ここではMobaXTermを使用する場合を説明する.

  1. MobaXTerm のインストール: MobaXTermの入手とインストール方法は別ページ »で説明している.
  2. MobaXTerm での接続操作:

    MobaXTermを起動し,「Session」 をクリックする. 表示されるウィンドウで「New Session」をクリックする. セッションタイプ一覧から「VNC」を選択する.

    VNCサーバーのIPアドレス(またはホスト名)とポート番号を「Remote host (VNC server)」欄に設定する.ポート番号は通常,サーバー側で起動したセッションのディスプレイ番号に対応する(例: ディスプレイ番号 :1 ならポート 5901,入力欄には server_ip_address:5901 または server_ip_address:1 の形式で入力する).

    SSHゲートウェイを経由して安全に接続する(SSHトンネリングを利用する)場合は,以下の手順を追加で行う.

    • 「Network settings」のタブをクリックする.
    • 「Connect through SSH gateway」のチェックボックスをオンにする.
    • 「Gateway SSH server」の欄にSSHサーバーのIPアドレスまたはホスト名を入力する.
    • 「User」の欄にSSH接続に使用するユーザー名を入力する.必要に応じて,SSHポート番号や認証方法も設定する.

    設定後,「OK」をクリックして接続を開始する.VNCパスワードの入力を求められたら,サーバ側で設定したパスワードを入力する.