リモートデスクトップのソフト TigerVNC のインストールと利用(Ubuntu にリモート接続)
UbuntuマシンへのTigerVNCを用いたVNCリモート接続手順、特に既存デスクトップ共有(scraping)に焦点を当てる。セキュリティ確保のためSSHゲートウェイ経由接続を推奨し、ポートフォワーディング設定は必須である。UFWでのポート制御も重要となる。安定した利用にはWaylandよりX11セッション選択が望ましい。パスワードは先頭8文字のみ有効である。
前準備
Ubuntu のシステム更新
Ubuntu で OS のシステム更新を行うには, 次のコマンドを実行する.
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# 変更をシステム全体に確実に反映させるために再起動
sudo shutdown -r now
サーバ側の設定
- ポート 5900 で通信可能にする(他のポートは遮断)
sudo apt install ufw sudo ufw allow 5900/tcp
VNCの標準ポートである5900/tcpを開放する.ファイアウォールの設定を反映するためには、ufwサービスが有効になっている必要がある.ufwが有効になっていない場合は、
sudo ufw enable
コマンドで有効化する.有効化時には既存のSSH接続が切断される可能性があるため注意が必要である.セキュリティを高める場合は、SSH経由での接続を推奨する.その場合、UFWでVNCポート(5900/tcp)を外部に開放せず、SSHポート(22/tcp)のみを許可し、SSHトンネルを利用して接続する.
- ssh 経由でポートフォワーディングしたい場合,ssh サーバも起動する
sudo apt -y install openssh-server sudo ufw allow 22/tcp
/etc/ssh/sshd_config ファイルで次のように設定する.
AllowTcpForwarding yes
sshd_config の設定変更を反映させるためには、sshd サービスを再起動する必要がある.
sudo systemctl restart sshd
- tigervnc のインストールと設定,古いパスワードデータの消去
sudo apt install tigervnc-standalone-server sudo apt install tigervnc-scraping-server cd rm -rf .vnc
cd
コマンドでホームディレクトリに移動する.その後のrm -rf .vnc
コマンドは、以前の設定やパスワード情報を含む隠しディレクトリ.vnc
を削除するために実行する.これにより、VNCの設定を最初からやり直すことができる.ここでは
tigervnc-standalone-server
とtigervnc-scraping-server
の両方をインストールする.後述のx0tigervncserver
コマンドは、既存の物理デスクトップを共有するための scraping サーバを起動するものである.この方式は、ログインしているユーザーのX環境を共有するため、サーバーマシンでデスクトップ環境が動作しており、ユーザーがログインしている必要がある.Ubuntu 24.04 LTSではWaylandがデフォルトのディスプレイサーバーとして採用される場合があるが、TigerVNC(特にx0tigervncserver)はX11環境での利用が安定しているため、VNC接続前にX11セッションを選択してログインすることが推奨される. - パスワードを設定
tigervncpasswd
VNC接続時に使用するパスワードを設定する.このコマンドを実行するとパスワードの入力を求められる.TigerVNCのパスワードは、先頭から8文字までしか有効にならないという制限があるため注意が必要である.
- デスクトップを共有するようにサーバを起動
x0tigervncserver PasswordFile=$HOME/.vnc/passwd
上記のコマンドでVNCサーバを起動する.これは既存の物理デスクトップ (`:0`) を共有する scraping サーバである.
外部のマシンから直接接続を許可するためには、通常-localhost no
オプションを付けて実行する必要がある.例:x0tigervncserver -localhost no PasswordFile=$HOME/.vnc/passwd
共有する画面の解像度などを指定したい場合は、-geometry 幅x高さ
オプションを追加する(例:x0tigervncserver -geometry 1920x1080 PasswordFile=$HOME/.vnc/passwd
).なお、このコマンドはフォアグラウンドで実行されるため、ターミナルを閉じるとVNCサーバも停止する.実用的な運用では、バックグラウンドで実行するか、systemdなどのサービスとして登録することを検討する.
VNCサーバのログファイルは
~/.vnc/<ホスト名>:<ディスプレイ番号>.log
に保存される.VNC接続に問題が発生した場合のトラブルシューティングに役立つ.
Windows マシンからの接続
Windows マシンで MobaXTerm を使って接続する手順を示す.
- MobaXTerm のインストール: 別ページ »で説明する.
- MobaXTerm での操作
「Session」 をクリックする. 「New Session」をクリックする. 「VNC」を選ぶ. IPアドレスに接続先のUbuntuマシンのIPアドレスまたはホスト名を設定する.
VNCクライアントには、接続先のIPアドレスとディスプレイ番号(例:192.168.1.10:0
)またはポート番号(例:192.168.1.10::5900
)を指定する必要がある.TigerVNCサーバが:0
で起動した場合、デフォルトのポートは 5900 であるため、通常IPアドレス:0
またはIPアドレス::5900
と入力する.SSHトンネリングを併用することが推奨される.ssh ゲートウエイ経由で接続する場合は, 「Network settings」をクリックし, 「Connect through SSH gateway」をチェックする. Gate way SSH server の IP アドレスと「User」を設定する.
SSHゲートウェイ経由でVNCに接続するためには、SSHセッション設定の「Network settings」において、ポートフォワーディングを設定する必要がある.「Forward local port to remote address and port」の項目で、ローカル側のポート(例:
5900
)をリモート側のlocalhost:5900
に転送するように設定する.具体的には、Local port: 5900
,Remote address: localhost
,Remote port: 5900
のように設定する.これにより、MobaXTermのローカルポート5900への接続がSSHトンネルを通じてリモートホストのポート5900へ安全に転送される.接続後のパフォーマンスを向上させるため、MobaXTermのVNC設定において「Tight」エンコーディングを選択することを検討する.