ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Mac から Ubuntu へ VNC 接続設定方法

Ubuntu 24.10 に VNC サーバーを設定し、Mac からアクセスする手順をここにメモします。

環境

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 24.10
Release:	24.10
Codename:	oracular

ubuntu 側 vnc 設定

VNCサーバーのインストール

Ubuntu に VNC サーバーをインストールします。ここでは TigerVNC を使用します。

sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common

VNCパスワードの設定

VNC 接続用のパスワードを設定します。
パスワードを入力し、確認のために再度入力します。必要に応じて、view-onlyパスワードも設定できます。

vncpasswd

VNCサーバーの起動

VNC サーバーを起動します。以下のコマンドで、ディスプレイ番号1で VNC サーバーを起動します。

vncserver :1

ファイアウォールの設定

VNC 接続を許可するために、ファイアウォールでポートを開けます。デフォルトでは、VNC サーバーは 5901 ポートを使用します。

sudo ufw allow 5901

VNCサーバーの自動起動設定(オプション)

システム起動時に VNC サーバーが自動的に起動するように設定するには、以下の手順を実行します。
サービスファイルの作成

/etc/systemd/system/vncserver@.serviceにサービスファイルを作成します。

sudo vi /etc/systemd/system/vncserver@.service

以下の内容を記述します。

[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=your_username
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -localhost no :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

[your_username] は、VNCサーバーを実行するユーザー名に置き換えてください。

サービスの有効化と起動

サービスを有効化し、起動します。

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service

Mac からの接続

MacからVNCクライアント(例えば、Screen SharingやVNC Viewer)を使用して、Ubuntuに接続します。

  • VNCアドレス: ubuntuのIPアドレス:1
  • ポート: 5901

おまけ(追加設定)

VNCで接続後に青い背景の画面が表示される場合、デスクトップ環境が正しく設定されていない可能性があります。Ubuntu 24.10では、デフォルトのデスクトップ環境がGNOMEまたはWaylandであるため、VNCサーバーが正しくデスクトップ環境を起動できていないことがあります。

GNOME デスクトップ環境のインストール

GNOME デスクトップ環境がインストールされていない場合は、インストールします。

sudo apt update
sudo apt install ubuntu-desktop

VNC サーバーの設定ファイルを編集

VNC サーバーが GNOME デスクトップ環境を起動するように設定します。

[~/.vnc/xstartup] ファイルの編集

VNC サーバーの設定ファイルである [~/.vnc/xstartup] を編集します。

vi ~/.vnc/xstartup

以下の内容を記述します。

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME"
export GNOME_SHELL_SESSION_MODE="ubuntu"
exec /usr/bin/gnome-session
ファイルの権限を変更

xstartup ファイルに実行権限を付与します。

chmod +x ~/.vnc/xstartup

VNCサーバーの再起動

VNCサーバーを再起動して、設定を反映します。

vncserver -kill :1
vncserver :1

Waylandの無効化

Ubuntu 24.10ではデフォルトでWaylandが有効になっている可能性があります。WaylandはVNCと互換性がないため、無効化します。

/etc/gdm3/custom.conf の編集
sudo vi /etc/gdm3/custom.conf
Waylandを無効化

以下の行を探し、コメントを外します。

WaylandEnable=false
GDMの再起動
sudo systemctl restart gdm3

ログの確認

VNCサーバーのログを確認して、エラーメッセージがないかチェックします。
ログにエラーメッセージが表示されている場合は、その内容に基づいて問題を解決します。

cat ~/.vnc/*.log

ファイアウォールの確認

ファイアウォールが VNC 接続をブロックしていないか確認します。以下のコマンドでポートを開けます。

sudo ufw allow 5901

vncサービスの再起動

sudo systemctl restart vncserver@1.service

mac から接続

mac から再度接続してみます。