この記事では、UbuntuServer20.04でVNCを設定する方法を説明します。
Virtual Network Computing(VNC)は、キーボードとマウスを使用して別のコンピューターを制御できるグラフィカルデスクトップ共有テクノロジーです。
前提条件
チュートリアルを続行する前に、sudo権限を持つユーザーとしてログインしていることを確認してください。
デスクトップ環境のインストール
Ubuntuサーバーにデスクトップ環境がインストールされている可能性はほとんどありません。最初に行う必要があるのは、軽量のデスクトップ環境をセットアップすることです。
Ubuntuリポジトリには、さまざまなデスクトップ環境(DE)があります。推奨されるデスクトップ環境はXfceです。軽量、高速、安定しているため、リモートサーバーでの使用に適しています。
次のコマンドを使用して、パッケージインデックスを更新し、UbuntuサーバーにXfceをインストールします。
$ sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
お使いのマシンによっては、Xfceパッケージのダウンロードとインストールに時間がかかる場合があります。
UbuntuへのVNCのインストール
TightVNC、TigerVNC、およびx11vncは、UbuntuリポジトリでアクセスできるVNCサーバーのほんの一部です。速度とセキュリティの観点から、各VNCサーバーには長所と短所があります。
積極的にメンテナンスされている高性能VNCサーバーであるTigerVNCを利用します。次のコマンドを実行して、UbuntuサーバーにTigerVNCをインストールします。
$ sudo apt install tigervnc-standalone-server tigervnc-common
VNCサーバーのテスト
VNCサーバーがインストールされたら、vncserverコマンドを実行して初期構成を作成し、パスワードを設定します。次のコマンドを実行するときは、sudoを使用しないでください。
$ vncserver
パスワードの入力と確認、およびパスワードを表示専用にするかどうかを確認するよう求められます。表示専用パスワードを設定することを選択した場合、ユーザーはマウスまたはキーボードを使用してVNCインスタンスを操作できなくなります。
パスワードファイルは、vncserverコマンドを初めて実行するときに作成され、/。vncディレクトリに保存されます。
上記の出力では、ホスト名の後の:1に注意してください。これは、vncサーバーが実行されているディスプレイポートの番号です。この場合、サーバーはTCPポート5901(5900 + 1)でリッスンしています。 vncserverを使用して2番目のインスタンスを作成すると、次に使用可能なポートである2で実行されます。これは、サーバーがポート5902(5900 + 2)で実行されることを意味します。
VNCサーバーを使用している場合、:Xはディスプレイポートとしての5900+Xに対応することに注意してください。
次の手順に進む前に、-killオプションとサーバー番号を引数として使用してvncserverコマンドを使用してVNCインスタンスを停止します。この例では、サーバーはポート5901(:1)でリッスンしているため、次のコマンドでサーバーをシャットダウンします。
$ vncserver -kill :1
VNCサーバーの構成
XfceとTigerVNCの両方がワークステーションにインストールされたので、Xfceを使用するようにTigerVNCをセットアップする必要があります。これを行うには、次のファイルを作成します。
$ vim ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
終了したら、ファイルを保存して閉じます。 TigerVNCサーバーを起動または再起動すると、上記のスクリプトが自動的に実行されます。
/.vnc/xstartupファイルには実行権限も必要です。権限が正しいことを確認するには、次のchmodコマンドを使用します。
$ chmod u+x ~/.vnc/xstartup
Systemdユニットファイルの作成
systemdユニットファイルを使用して、VNCサービスを簡単に開始、停止、再開できます。
次の設定をテキストエディタにコピーして貼り付けます。7行目のユーザー名を自分のユーザー名と一致するように変更することを忘れないでください。
$ sudo vim /etc/systemd/system/[email protected]
/etc/systemd/system/[email protected]
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=ubuntu
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
ファイルを保存して閉じます。
次のコマンドを実行して、新しい[email protected]ファイルが作成されたことをsystemdに通知します。
$ sudo systemctl daemon-reload
次に、サービスを有効にします:
$ sudo systemctl enable [email protected]
VNCサービスが実行される表示ポートは、@記号の後の数字1で定義されます。前のセクションで1を使用しているため、VNCサーバーはポート5901でリッスンします。
次のコマンドを実行して、VNCサービスを開始します。
$ sudo systemctl start [email protected]
サービスが正常に開始されていることを確認します:
$ sudo systemctl status [email protected]
VNCサーバーへの接続
Vncviewerを起動し、VNCサーバーに接続します。
TigerVNC、TightVNC、RealVNC、UltraVNC、Vinagre、GoogleChrome用のVNCViewerを含むすべてのVNCビューアを使用できます。
この例ではTigerVNCを使用します。 VNCビューアを開き、サーバーip:5901をアドレスバーに入力して、[接続]ボタンを押します。
プロンプトが表示されたらパスワードを入力すると、デフォルトのXfceデスクトップが表示されます。次のようになります:
この時点で、VNCを介してサーバーに正常に接続しています。これで、キーボードとマウスを使用して、ローカルワークステーションからリモートXFCEデスクトップを操作できます。
UbuntuにVNCをインストールする–結論
これで、VNCサーバーが稼働し、ローカルコンピューターのグラフィックインターフェイスを使用してUbuntuサーバーを操作できるようになります。
vncserverコマンドを使用して、初期設定を作成し、VNCサーバーのパスワードを指定して、複数のユーザーの表示を開始します。別のポートを持つ新しいサービスファイルも作成する必要があります。
他のチュートリアルをご覧ください