###序章

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

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

##前提条件

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

  • Ubuntu16.04初期サーバーセットアップチュートリアルを介してセットアップされたUbuntu16.04ドロップレット。これには、sudo非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パッケージをインストールします。

  1. sudo apt-get update
  2. sudo apt install xfce4 xfce4-goodies tightvncserver

インストール後にVNCサーバーの初期構成を完了するには、 vncserver 安全なパスワードを設定するコマンド。

  1. vncserver

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

ランニング vncserver サーバーが使用するデフォルトの構成ファイルと接続情報を作成して、VNCのインストールを完了します。 これらのパッケージがインストールされたら、VNCサーバーを構成する準備が整います。

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

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

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

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

  1. vncserver -kill :1

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

Output
Killing Xtightvnc process ID 17648

新しい構成を開始する前に xstartup ファイル、オリジナルをバックアップしましょう。

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

今すぐ新しいを作成します xstartup とファイル nano またはお気に入りのテキストエディタ。

  1. nano ~/.vnc/xstartup

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

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

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

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

  1. sudo chmod +x ~/.vnc/xstartup

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

  1. vncserver

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

Output
New '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サーバーの接続をテストします。

まず、ローカルコンピュータにSSH接続を作成して、に安全に転送する必要があります。 localhost VNCの接続。 これは、LinuxまたはOSXのターミナルから次のコマンドで実行できます。 交換することを忘れないでください userserver_ip_address サーバーのsudonon-rootユーザー名とIPアドレスを使用します。

  1. ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

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

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

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

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

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

次に、VNCサーバーをsystemdサービスとしてセットアップします。 これにより、他のsystemdサービスと同様に、必要に応じて起動、停止、再起動できるようになります。

まず、という新しいユニットファイルを作成します /etc/systemd/system/[email protected] お気に入りのテキストエディタを使用する:

  1. 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=sammy PAMName=login PIDFile=/home/sammy/.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

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

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

  1. sudo systemctl daemon-reload

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

  1. sudo systemctl enable [email protected]

The 1 次の @ 記号は、サービスが表示される表示番号を示します。この場合はデフォルトです。 :1 上で議論されたように。 VNCサーバーがまだ実行中の場合は、現在のインスタンスを停止します。

  1. vncserver -kill :1

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

  1. sudo systemctl start vncserver@1

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

  1. sudo systemctl status vncserver@1

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

出力
[email protected] - TightVNC server on Ubuntu 16.04
   Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
   Active: active (running) 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.

##結論

これで、Ubuntu16.04サーバーでセキュリティで保護されたVNCサーバーが稼働しているはずです。 これで、使いやすく使い慣れたグラフィカルインターフェイスを使用して、ファイル、ソフトウェア、および設定を管理できるようになります。