Ubuntu20.04にVNCをインストールして構成する

VNCはVirtualNetworkComputingの略です。 Ubuntuマシンをリモートで制御するのに役立ちます。 VNCサーバーは、リモートフレームバッファープロトコル(RFB)を使用して、別のコンピューターをリモートで制御します。

テクニカルサポートスタッフがキーボードまたはマウスを使用する場合、VNCはキーボードとマウスからの信号をリモートサーバーに送信します。 グラフィカルユーザーインターフェイスを使用して、管理作業をより簡単かつ便利にします。 さらに、VNCはグラフィカルSSHおよびRDP接続よりも信頼性があります。

このチュートリアルでは、TightVNCを使用してUbuntu20.04でVNCをセットアップおよび構成する手順を説明します。 以前のバージョンのUbuntu16.04でVNCを実行している場合は、そのガイドがあります。

デスクトップ環境とVNCサーバーをインストールします

まず、デフォルトではインストールされていないため、Ubuntuサーバーにデスクトップ環境をインストールしましょう。 多くの選択肢があります:GNOME、MATE、XFCEなど。

このチュートリアルでは、XFCEを選択します。 これは軽量のデスクトップ環境であり、VNC接続が安定してスムーズになるのに役立ちます。

Ubuntuサーバーで、次のコマンドを実行してパッケージリストを更新します。

$ sudo apt update

次に、XFCEデスクトップ環境をインストールしましょう。

$ sudo apt install xfce4 xfce4-goodies gnome-icon-theme

ここで私は使用しています TightVNC サーバー、他の人気のあるVNCサーバーは TigerVNCx11vnc

tightvncをインストールします。

$ sudo apt install tightvncserver

次に、VNCサーバーインスタンスを実行して、インストールされているそのサーバーのパスワードを設定する必要があります。

$ vncserver

インストール後に初めてサーバーを起動しているため、クライアントが接続に使用するパスワードを設定するように求められます。 また、表示専用のパスワードを設定するように求められます。これにより、ユーザーは画面を表示できますが、画面を操作することはできません。

vncserverを起動します

パスワードの長さは6〜8文字であることに注意してください。 長い方のパスワードを入力すると、自動的に削除されます。

VNCサーバーのパスワードを変更したい場合は、以下を実行してみましょう。

$ vncpasswd

VNCサーバーを構成する

VNCサーバーインスタンスを初めて起動すると、初期構成ファイル ‘〜/ .vnc / xstartup’が作成され、VNCサーバーはポート5901でリッスンします。このポートを表示ポートと呼びます。 VNCサーバーの多くのインスタンスを起動でき、各インスタンスには独自のディスプレイポートがあります。最初のディスプレイはポート5901でリッスンし、2番目のディスプレイはポート5902でリッスンします。

Ubuntuサーバーの起動と同時に実行するようにVNCサーバーを構成する必要があります。 さらに、VNCサーバーが接続するデスクトップ環境を明示的に指定する必要があります。

まず、TCPポート5901で実行されている現在のVNCサーバーインスタンスを停止しましょう。

$ vncserver -kill :1

vncserver -kill:1

次に、現在の構成ファイルをバックアップします。

$ cp ~/.vnc/xstartup ~/.vnc/xstartup.bak

次に、「xstartup」ファイルをお気に入りのエディターで次のように変更します。

#!/bin/sh

xrdb $HOME/.Xresources
startxfce4 &

VNCサーバーを再起動します。

$ vncserver -localhost

vncserver -localhostvncserver -localhost

VNCサーバーに接続します

デフォルトでは、VNCサーバーはセキュアプロトコルを使用しません。 リモートのUbuntuサーバーへの接続を保護するには、SSHトンネルを作成し、VNCクライアントがそのトンネルを介してVNCサーバーに接続することを示す必要があります。

VNCの「localhost」にトラフィックを転送するローカルマシンでSSH接続を確立しましょう。 ローカルマシン(macOSまたはLinux)でターミナルを起動し、次のコマンドを実行します。

$ ssh -L 59000:localhost:5901 -C -l <user> <server_ip_address>>

どこ:

-L 59000:localhost:5901:ローカルマシンのポートは59000で、宛先サーバーに転送されます:localhost:5901

-C:接続を高速化するためにデータを圧縮します

-l <ユーザー> :ログインするユーザーとUbuntu20.04サーバーのIPアドレスを示します

WindowsでSSHトンネリングを設定する

Windows OSを実行している場合は、PuTTYSSHクライアントを使用してSSHトンネルを設定できます。

PuTTYを開いて、UbuntuサーバーのIPアドレスを入力してみましょう。

パテのIPアドレスPuttyのUbuntuサーバーのIPアドレスを入力します

次に、サブメニュー[接続]>[SSH]>[トンネル]を展開し、[送信元ポート]に「5901」、「宛先」に「:5901」と入力します。 次に、以下のように「追加」ボタンをクリックします。

パテにsshトンネルを作成するパテのsshトンネル

SSHトンネルを使用することにより、Ubuntu 20.04サーバーへのVNC接続では、サーバーにSSH接続できるマシンのみが許可されます。 すべてのマシンがポート5901に接続できるわけではありません。

これで、VNCクライアントを使用してリモートのUbuntuサーバーに接続できます。 このチュートリアルでは、VNCビューアを使用します。 VNCクライアントを開き、サーバーのIPアドレスとポート5901を入力します。

Enter  UbuntuサーバーのIPアドレスとポート5901Enter UbuntuサーバーのIPアドレスとポート5901

これで、UbuntuサーバーのXFCEデスクトップに正常に接続できました。

vncビューアvncビューア

オフィスの物理サーバーを操作しているかのようにサーバーを制御できます。 にとって example、ファイルマネージャにアクセスしたり、プログラムを起動したり、ターミナルを開いたりできます。

Ubuntuサーバーを制御するUbuntuサーバーを制御する

VNCサーバーをsystemdサービスとしてセットアップする

VNCサーバーをシステムサービスとして実行することにより、いつでも簡単に起動、停止、または再起動できます。

Ubuntuサーバーのディレクトリ「/ etc / systemd / system /」に「vncserver @ .service」という新しいファイルを作成しましょう。

$ sudo vim /etc/systemd/system/[email protected]e

次のコンテンツをファイル ‘vncserver @ .service’に追加し、7、8、9、および13行目の値を環境に一致するように編集してください。

vncserver @ .servicevncserver @ .service

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

[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu

PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

次に、システムデーモンをリロードします。

$ sudo systemctl daemon-reload

サービスを有効にします。

$ sudo systemctl enable [email protected]

どこ:

@ 1.service:ポート5901に関連付けられた最初のディスプレイ。

出力:

Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /etc/systemd/system/[email protected].

実行中のインスタンスを強制終了します。

$ vncserver -kill :1

Killing Xtightvnc process ID 3159

次に、そのsystemdサービスを再度開始します。

$ sudo systemctl start vncserver@1

これで、サービスが正しく実行されているかどうかを確認できます。

$ sudo systemctl status vncserver@1

出力:

[email protected] - Start TightVNC server at startup
Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
Active: active (running) since Sun 2020-08-16 17:37:51 UTC; 2min 2s ago
Process: 4611 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
Process: 4615 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status>
Main PID: 4623 (Xtightvnc)
Tasks: 129 (limit: 7125)
Memory: 187.5M
...

結論

このチュートリアルでは、Ubuntu20.04にVNCサーバーをインストールして構成する方法を学びました。 これで、グラフィカルユーザーインターフェイスを使用してリモートでUbuntuサーバーを管理できます。

読んでいただきありがとうございます。以下のコメントセクションに提案を残してください。