Ubuntu 22.04 TigerVNCのセットアップ
環境
Proxmox上のUbuntu22.04
Ubuntu初心者
記事を書いた理由
Ubuntuはデフォルトでリモートデスクトップの設定ができますが、ログイン済みの状態でないと使用できないようなので、代わりにTigerVNCを構築します。
TigerVNCを構築する記事はいくつかありますが、記事の通りに進めてもうまく動作させることができなかったのであれこれ試した結果を残します。
インストール
sudo apt install tigervnc-standalone-server -y
記事によってインストールするパッケージが増減しますが、上のコマンドだけで十分足りるようです。
パスワード設定
TigerVNCを実行します。ただ初回はパスワードなどの設定を求められます。
vncserver
Password:
Verify:
Would you like to enter a view-only password (y/n)?
パスワードの設定がすんだらいったん閉じましょう。(場合によっては設定が終わったら閉じてるかもしれません)
すべてのセッションを閉じるには
vncserver -kill :*
基本設定
私の場合TigerVNCの設定ディレクトリとファイルがなかったので作ります。
xstartupはTigerVNC起動時に実行されます。そのため実行権限を付与します。
mkdir ~/.vnc
touch ~/.vnc/xstartup
chmod +x ~/.vnc/xstartup
任意のエディタでxstartupを開き、ファイルに記述します。
#!/bin/bash
/etc/X11/Xtigervnc-session
gnome-session
次に~/.vnc/config
ファイルを編集します。これも私の環境だと最初はなかったので作成します。
touch ~/.vnc/config
任意のエディタでconfigを開き、記述します。
session=ubuntu
geometry=1200x720
alwaysshared
詳しくはこちらを見てください。
session=ubuntu
としているのは起動するセッション名/usr/share/xsessions/
内の.desktop
ファイルの名前を指定する必要があるからです。
geometry
はそのまま解像度ですね
alwaysshared
はlocalhost
と対になる設定のようです。
最後に/etc/tigervnc/vncserver.users
を編集してアクセスできるユーザーを設定します。
書いてある通りなのですが、:1=exampleのように追加します。
私の場合は:1が使用できなかったので代わりに:2に変更しました。
# TigerVNC User assignment
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
# :2=andrew
# :3=lisa
:2=nop
としました。
テスト
実行してテストしてみましょう。
vncserver
実行するとすぐにコマンドが終了するので、正常に動作しているかはメッセージで判断するか、以下のコマンドを実行して結果が出てくるかで判断します。
vncserver -list
(例)実行結果
TigerVNC server sessions:
X DISPLAY # RFB PORT # RFB UNIX PATH PROCESS ID # SERVER
2 5902 19473 Xtigervnc
この場合2番目のディスプレイをポート5902で開いていますね。
もしうまくいかなかった場合はディスプレイの番号を変えて試してみてください
vncserver :2
:2は2番目のディスプレイで開くという意味です。
終了するには
vncserver -kill :1
別のディスプレイ番号で開いた方は:1を適宜変えてください
この状態でTigerVNCにはアクセスできるのですがデフォルトではlocalhostからのアクセスしか許可されていません。そのため、外部からアクセスするには
vncserver -localhost no :1
とします
では、VNCクライアントでアクセスしてみましょう
私はクライアントにもTigerVNCを使いました
IPアドレスはip a
でも実行して取得し、:1で開いたなら:5901 :2で開いたなら:5902 のようにアクセスできます
私の場合は
192.168.1.15:5902
追加設定
毎回vncserver
コマンドを実行するのは面倒なのでサービスを立ち上げましょう。
設定ファイルはaptで入れた後なら既に入っているはずです。
/lib/systemd/system/tigervncserver@.service
起動するには以下のコマンドを実行します。
@の後にディスプレイ番号 :1や:2 を入力します
sudo systemctl status tigervncserver@:1.service
起動時に立ち上げるには
sudo systemctl enable tigervncserver@:1.service
ただこの状態だとlocalhostからのアクセスしか通さないので
/etc/tigervnc/vncserver-config-defaults
ファイルを編集します。
$localhost=false;
を追加します。
....省略
# the auto generation is disabled and the user has to take care
# that usable certificates are present.
$localhost=false;
1;
最後に
正直なところTigerVNCの情報が人によってまちまちで、この方法がすべて正しいかはわかりません。もし「もっとこうしたほうがいいよ」等のアドバイスがありましたら、コメントを頂けると嬉しいです。
Discussion