前書き

VNC、または「仮想ネットワークコンピューティング」は、キーボードとマウスを使用してリモートサーバー上のグラフィカルデスクトップ環境と対話できるようにする接続システムです。 コマンドラインにまだ慣れていないユーザーにとって、リモートサーバー上のファイル、ソフトウェア、および設定の管理が容易になります。

このガイドでは、Ubuntu 16.04サーバーでVNCをセットアップし、SSHトンネルを介して安全に接続します。 使用するVNCサーバーは、高速で軽量のリモートコントロールパッケージであるTightVNCです。 この選択により、低速のインターネット接続でもVNC接続がスムーズで安定します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

  • sudo non -rootユーザー。 このチュートリアルは、任意のサイズのドロップレットを使用して完了することができますが、小さなドロップレット上に構築されたVNCは、大きなドロップレットよりも機能に制限がある場合があります。

  • SSHトンネルを介したVNC接続をサポートするVNCクライアントがインストールされたローカルコンピューター。 Windowsを使用している場合は、TightVNC、RealVNC、またはUltraVNCを使用できます。 Mac OS Xユーザーは、組み込みの画面共有プログラムを使用するか、RealVNCなどのクロスプラットフォームアプリを使用できます。 Linuxユーザーは、「+ vinagre 」、「 krdc +」、RealVNC、TightVNCなど、多くのオプションから選択できます。

ステップ1-デスクトップ環境とVNCサーバーのインストール

デフォルトでは、Ubuntu 16.04 Dropletにはグラフィカルデスクトップ環境やVNCサーバーがインストールされていないため、それらをインストールすることから始めます。 具体的には、最新のXfceデスクトップ環境用のパッケージと、公式のUbuntuリポジトリで利用可能なTightVNCパッケージをインストールします。

サーバーに、XfceおよびTightVNCパッケージをインストールします。

sudo apt-get update
sudo apt install xfce4 xfce4-goodies tightvncserver

インストール後にVNCサーバーの初期設定を完了するには、 `+ vncserver`コマンドを使用して安全なパスワードを設定します。

vncserver

パスワードと表示専用パスワードの入力と確認を求められます。 表示専用パスワードでログインしたユーザーは、マウスまたはキーボードでVNCインスタンスを制御できません。 これは、VNCサーバーを使用して他の人に何かをデモンストレーションしたい場合に便利なオプションですが、必須ではありません。

`+ vncserver +`を実行すると、デフォルトの設定ファイルとサーバーが使用する接続情報を作成することでVNCのインストールが完了します。 これらのパッケージをインストールすると、VNCサーバーを構成する準備が整いました。

ステップ2-VNCサーバーの構成

まず、VNCサーバーの起動時に実行するコマンドを指定する必要があります。 これらのコマンドは、ホームディレクトリの下の「+ .vnc 」フォルダー内の「 xstartup 」という設定ファイルにあります。 前のステップで「 vncserver +」を実行したときに起動スクリプトが作成されましたが、Xfceデスクトップ用のコマンドの一部を変更する必要があります。

VNCが最初にセットアップされると、ポート5901でデフォルトのサーバーインスタンスが起動します。 このポートはディスプレイポートと呼ばれ、VNCでは「:1」と呼ばれます。 VNCは、「:2 +」、「:3+」など、他のディスプレイポートで複数のインスタンスを起動できます。 VNCサーバーを使用する場合、「:X +」は「 5900 + X +」を参照する表示ポートであることを忘れないでください。

VNCサーバーの構成方法を変更するため、最初にポート5901で実行されているVNCサーバーインスタンスを停止する必要があります。

vncserver -kill :1

出力は、PIDが異なる次のようになります。

OutputKilling Xtightvnc process ID 17648

新しい「+ xstartup +」ファイルの設定を始める前に、元のファイルをバックアップしましょう。

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

ここで、 + nano`またはお好みのテキストエディターで新しい + xstartup`ファイルを作成します。

nano ~/.vnc/xstartup

これらのコマンドをファイルに貼り付けて、VNCサーバーを起動または再起動するたびに自動的に実行されるようにし、ファイルを保存して閉じます。

~/.vnc/xstartup#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

ファイルの最初のコマンド「+ xrdb $ HOME / .Xresources 」は、サーバーユーザーの「 .Xresources 」ファイルを読み取るようVNCのGUIフレームワークに指示します。 ` .Xresources +`は、ユーザーが端末の色、カーソルテーマ、フォントレンダリングなど、グラフィカルデスクトップの特定の設定を変更できる場所です。 2番目のコマンドは、サーバーにXfceを起動するように単に指示します。Xfceは、サーバーを快適に管理するために必要なすべてのグラフィカルソフトウェアを見つける場所です。

VNCサーバーがこの新しいスタートアップファイルを適切に使用できるようにするには、実行可能権限を付与する必要があります。

sudo chmod +x ~/.vnc/xstartup

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

vncserver

次のような出力でサーバーを起動する必要があります。

OutputNew 'X' desktop is your_server_name.com:1

Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/liniverse.com:1.log

ステップ3-VNCデスクトップのテスト

このステップでは、VNCサーバーの接続をテストします。

最初に、VNCの `+ localhost +`接続に安全に転送するSSH接続をローカルコンピューターに作成する必要があります。 次のコマンドを使用して、LinuxまたはOS Xのターミナル経由でこれを行うことができます。 “と “をサーバーのsudo非ルートユーザー名とIPアドレスに置き換えることを忘れないでください。

ssh -L 5901:127.0.0.1:5901 -N -f -l

PuTTYなどのグラフィカルSSHクライアントを使用している場合、接続IPとして「+」を使用し、プログラムのSSHトンネル設定で「 localhost:5901+」を新しい転送ポートとして設定します。

次に、VNCクライアントを使用して、 `+ localhost:5901 +`でVNCサーバーへの接続を試みることができます。 認証を求められます。 使用する正しいパスワードは、ステップ1で設定したものです。

接続すると、デフォルトのXfceデスクトップが表示されます。 これは次のようになります。

image:http://i.imgur.com/X4eEcuV.png [Ubuntu 16.04サーバーへのVNC接続]

以下に示すように、ファイルマネージャーまたはコマンドラインからホームディレクトリ内のファイルにアクセスできます。

image:http://i.imgur.com/n5VPuSa.png [Ubuntu 16.04へのVNC接続を介したファイル]

ステップ4-VNCサービスファイルの作成

次に、VNCサーバーをsystemdサービスとして設定します。 これにより、他のsystemdサービスと同様に、必要に応じて開始、停止、および再起動できます。

まず、お気に入りのテキストエディターを使用して、「+ / etc / systemd / system / vncserver @ .service +」という新しいユニットファイルを作成します。

sudo nano /etc/systemd/system/[email protected]

以下をコピーして貼り付けます。 * User の値と PIDFILE *の値のユーザー名を、ユーザー名と一致するように変更してください。

/etc/systemd/system/[email protected] [Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=
PAMName=login
PIDFile=/home//.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

ファイルを保存して閉じます。

次に、システムに新しいユニットファイルを認識させます。

sudo systemctl daemon-reload

ユニットファイルを有効にします。

sudo systemctl enable [email protected]

「+ @ 」記号に続く「+1」は、サービスが表示されるディスプレイ番号を示します。この場合、上記のデフォルトの「:1」です。 + VNCサーバーの現在のインスタンスがまだ実行中の場合は停止します。

vncserver -kill :1

次に、他のsystemdサービスを開始するのと同じように開始します。

sudo systemctl start [email protected]

次のコマンドで開始したことを確認できます。

sudo systemctl status [email protected]

正常に起動した場合、出力は次のようになります。

出力

[email protected] - TightVNC server on Ubuntu 16.04
  Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
   since Mon 2016-04-25 03:21:34 EDT; 6s ago
 Process: 2924 ExecStop=/usr/bin/vncserver -kill :%i (code=exited, status=0/SUCCESS)

...

systemd[1]: Starting TightVNC server on Ubuntu 16.04...
systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0)
systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0)
systemd[1]: Started TightVNC server on Ubuntu 16.04.

結論

これで、Ubuntu 16.04サーバーで安全なVNCサーバーが稼働しているはずです。 これで、使いやすく使い慣れたグラフィカルインターフェイスを使用して、ファイル、ソフトウェア、設定を管理できるようになります。