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サーバーはTigerVNCとx11vncです。
tightvncをインストールします:
$ sudo apt install tightvncserver
次に、VNCサーバーインスタンスを実行して、インストールされているそのサーバーのパスワードを設定する必要があります。
$ vncserver
インストール後に初めてサーバーを起動しているため、クライアントが接続に使用するパスワードを設定するように求められます。また、表示専用のパスワードを設定するように求められます。これにより、ユーザーは画面を表示できますが、画面を操作することはできません。
パスワードの長さは6〜8文字であることに注意してください。長い方のパスワードを入力すると、自動的に削除されます。
VNCサーバーのパスワードを変更したい場合は、次のコマンドを実行してみましょう。
$ vncpasswd
VNCサーバーを構成する
VNCサーバーインスタンスを初めて起動すると、初期構成ファイル'〜/ .vnc / xstartup'が作成され、VNCサーバーはポート5901でリッスンします。このポートを表示ポートと呼びます。 VNCサーバーの多くのインスタンスを起動でき、各インスタンスには独自のディスプレイポートがあります。最初のディスプレイはポート5901でリッスンし、2番目のディスプレイはポート5902でリッスンします。
Ubuntuサーバーの起動と同時に実行するようにVNCサーバーを構成する必要があります。さらに、VNCサーバーが接続するデスクトップ環境を明示的に指定する必要があります。
まず、TCPポート5901で実行されている現在のVNCサーバーインスタンスを停止しましょう:
$ vncserver -kill :1
次に、現在の構成ファイルをバックアップします。
$ cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
次に、「xstartup」ファイルをお気に入りのエディターで次のように変更します。
#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &
VNCサーバーを再起動します:
$ vncserver -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 <user>
WindowsでSSHトンネリングを設定する
Windows OSを実行している場合は、PuTTYSSHクライアントを使用してSSHトンネルを設定できます。
PuTTYを開いて、UbuntuサーバーのIPアドレスを入力してみましょう:
次に、サブメニュー[接続]> [SSH]> [トンネル]を展開し、[送信元ポート]に「5901」、「宛先」に「
SSHトンネルを使用することにより、Ubuntu 20.04サーバーへのVNC接続では、サーバーにSSH接続できるマシンのみが許可されます。すべてのマシンがポート5901に接続するだけではありません。
これで、VNCクライアントを使用してリモートのUbuntuサーバーに接続できます。このチュートリアルでは、VNCビューアを使用します。 VNCクライアントを開き、サーバーのIPアドレスとポート5901を入力します。
UbuntuサーバーのXFCEデスクトップに正常に接続しました:
オフィスの物理サーバーを操作しているかのようにサーバーを制御できます。たとえば、ファイルマネージャにアクセスしたり、プログラムを起動したり、ターミナルを開いたりできます。
VNCサーバーをsystemdサービスとしてセットアップする
VNCサーバーをシステムサービスとして実行することにより、いつでもサーバーを簡単に起動、停止、または再起動できます。
Ubuntuサーバーのディレクトリ「/etc/ systemd /system/」に「[email protected]」という新しいファイルを作成しましょう。
$ sudo vim /etc/systemd/system/[email protected]
e
次のコンテンツをファイル「[email protected]」に追加し、7、8、9、13行目の値を環境に合わせて編集してください。
[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サーバーを管理できます。
読んでいただきありがとうございます。以下のコメントセクションに提案を残してください。