Debian 8でVNCサーバーをセットアップする方法

前書き

VNC(仮想ネットワークコンピューティング)は、ユーザーがリモートコンピューターのグラフィカルデスクトップに接続して対話できるようにするシステムです。 ネットワーク経由で画面の更新、キーボードおよびマウスのイベントを送信できます。

VNCは、サーバーにグラフィカルなデスクトップ環境が必要な場合に便利です。

XFCEは軽量のデスクトップ環境です。 システムリソース要件が低く、多くのVNCユーザーがそれに慣れているため、このチュートリアルではXFCEを使用します。 ただし、代わりにGnomeやKDEなどのお気に入りのデスクトップ環境を使用することもできます。

このチュートリアルでは、Debian 8サーバーをセットアップし、XFCEデスクトップ環境をインストールして、VNC経由で接続します。 さらに、VNCサーバーの起動スクリプトを作成し、SSHを介して保護します。

前提条件

以下の前提条件を完了してください。

  • ルートアクセスが可能なDebian 8(または8.1)ドロップレット。 512 MBのRAMはVNCおよびXFCEを実行するのに十分ですが、グラフィカルインターフェイスで何を行うかによっては、より大きなドロップレットが必要になる場合があります

  • サーバーに接続するためのコンピューター上のVNCビューアー(クライアント)。 このチュートリアルでは、WindowsでUltraVNCを使用しますが、他のVNCクライアントも使用できます。 UltraVNC http://www.uvnc.com/downloads/ultravnc.html [こちら]をダウンロードできます。 OS Xには、画面共有と呼ばれるVNCクライアントが組み込まれています

  • SSHを介した安全な接続を確立するためのSSHクライアント。 Windows用のPuTTYを使用します。 PuTTY こちら。 OS Xでは、ビルトインターミナルアプリケーションを使用するだけです

ステップ1-VNCおよびXFCEのインストール

このステップでは、追加のソフトウェアとアイコンパックを備えたVNCサーバーとXFCEデスクトップ環境をインストールします。

サーバーのパッケージリストを更新します。

apt-get update

パッケージ自体をアップグレードします。

apt-get -y upgrade

それから、 `+ tightvncserver +`とXFCE4をいくつかの便利なアドオンとアイコンテーマと共にインストールします。

apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver

デフォルトでは、ブラウザはインストールされていません。 VNC接続からWebにアクセスする場合は、 + iceweasel +(Debian用Mozilla Firefoxのブランド変更バージョン)をインストールできます。

apt-get install iceweasel

ステップ2-VNCユーザーの作成

安全で整頓するために、VNC接続用に別のユーザーを作成します。 VNCサーバーで直接* root *ユーザーを使用する代わりに、 `+ sudo +`を使用することを強くお勧めします。

次のコマンドを使用して、Debian Dropletに* vnc *という名前のユーザーを追加できます。

adduser vnc

新しいユーザーにパスワードを与えます。 `+ ENTER`を押すだけで、他のすべての質問をスキップできます。

次のコマンドを実行して、 `+ sudo +`をインストールします。

apt-get install sudo

新しい* vnc ユーザーを sudo *グループに追加します。これにより、そのユーザーにルートコマンドを実行する権限が付与されます。

gpasswd -a vnc sudo
  • vnc *ユーザーに切り替えましょう。

su - vnc

ステップ3-VNCサーバーの起動と停止

新しく作成した* vnc *ユーザーとして、VNCサーバーを起動して接続をテストできます。

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

vncserver

サーバーを実行するのは初めてなので、クライアントが接続に使用するパスワードを設定するよう求められます。 後で使用するために、このパスワードを覚えておいてください! 表示専用パスワードを設定することもできます。これにより、ユーザーは画面を見ることができますが、画面と対話することはできません。 パスワードは* 6〜8文字*である必要があります。

サーバーが起動すると、ディスプレイ番号に関する通知が表示されます。

出力

xauth:  file /home/vnc/.Xauthority does not exist

New 'X' desktop is vnc:1

Creating default startup script /home/vnc/.vnc/xstartup
Starting applications specified in /home/vnc/.vnc/xstartup
Log file is /home/vnc/.vnc/vnc:1.log

デフォルトでは、VNC接続は最初のディスプレイの `+ 5901 `で始まるポートで提供されます。 2番目のディスプレイは、ポート「+5902」などで提供されます。

今すぐサーバーを停止しないでください。ただし、参照用に停止コマンドを含めています。

ステップ4-VNCクライアントからの接続

これでVNCサーバーに接続できます。 ローカルVNCクライアントを開きます。これは、オペレーティングシステムによって異なります。

Windowsでは、UltraVNC http://www.uvnc.com/downloads/ultravnc.html [こちら]を使用できます。

OS Xでは、組み込みの画面共有アプリを使用するか、Safariからこのアプリにアクセスできます。 Safariでは、* vnc://:5901 *と入力できます

VNCサーバーアドレスには、*:5901 *を入力し、VNC接続に設定したパスワードを使用します。

XFCEウェルカム画面で* Use default config *ボタンを選択して、簡単に開始できます。

image:https://assets.digitalocean.com/articles/vnc-debian8/ExJW2cB.png [Xubuntu Welcome Screen]

これで、リモートデスクトップを使用できます!

ステップ5-VNCサーバーを自動的に開始するsystemdサービスの作成

このセクションでは、VNCサーバーをhttps://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files[systemd]に追加します。 サービスを使用すると、VNCサーバーを起動および停止したり、Dropletの再起動時に自動的に起動したりするのに役立ちます。

まず、現在のインスタンスを殺しましょう:

vncserver -kill

VNCサーバーを簡単に管理および構成する簡単なスクリプトを作成します。

  • vnc *または他のsudoユーザーとして、お気に入りのテキストエディターを使用してスクリプトファイルを作成します。

sudo nano /usr/local/bin/myvncserver

これらのコンテンツを正確に追加します。 このスクリプトは、VNCに起動用のいくつかのパラメーターを提供します。

/ usr / local / bin / myvncserver

#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;

stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;

restart)
$0 stop
$0 start
;;
esac
exit 0

スクリプトを変更して、VNC接続の色深度または解像度を変更できます。

nanoを使用している場合、 `+ CTRL + O `でファイルを保存し、 ` CTRL + X +`で終了できます。

ファイルを実行可能にします。

sudo chmod +x /usr/local/bin/myvncserver

このスクリプトは、設定を変更し、VNCサーバーを簡単に起動/停止するのに役立ちます。

これで、サービス用にhttps://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files[unit file]を作成できます。 ユニットファイルは、サービスを説明し、サービスを開始/停止または再起動するためにコンピュータに指示するために使用されます。

sudo nano /lib/systemd/system/myvncserver.service

これらのコマンドをサービスファイルにコピーします。 このサービスは、ユーザー* vnc *で上記の起動スクリプトを呼び出すだけです。

/lib/systemd/system/myvncserver.service

[Unit]
Description=Manage VNC Server on this droplet

[Service]
Type=forking
ExecStart=/usr/local/bin/myvncserver start
ExecStop=/usr/local/bin/myvncserver stop
ExecReload=/usr/local/bin/myvncserver restart
User=vnc

[Install]
WantedBy=multi-user.target

これで、 `+ systemctl +`をリロードしてサービスを有効にできます。

sudo systemctl daemon-reload
sudo systemctl enable myvncserver.service

これで新しいサービスが有効になりました。 これらのコマンドを使用して、 `+ systemctl +`コマンドを使用してサービスを開始、停止、または再起動します。

sudo systemctl start myvncserver.service
sudo systemctl stop myvncserver.service
sudo systemctl restart myvncserver.service

これで、VNCサーバーをDropletのサービスとして実行できます。

手順6-SSHトンネリングでVNCサーバーを保護する

デフォルトでは、VNC接続は暗号化を使用しないため、セッションを保護するためにSSHトンネルを使用することをお勧めします。

そのためには、VNCサーバーを* localhost *でのみ機能させます。 これを行うには、前の手順で作成した起動スクリプトの「 OPTIONS 」行に「 -localhost +」を追加します。

まず、VNCサーバーを停止します。

sudo systemctl stop myvncserver.service

構成スクリプトを編集します。

sudo nano /usr/local/bin/myvncserver

この行を変更してください。

/ usr / local / bin / myvncserver

. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

. . .

次のものに置き換えます。

/ usr / local / bin / myvncserver

. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} "

. . .

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

sudo systemctl start myvncserver.service

これで、リモートコンピューターからVNCサーバーに直接接続できなくなりました。

  • Windows:*

PuTTYを使用してSSHトンネルを作成し、作成したトンネルを介して接続します。

PuTTYを開きます。

左側のメニューから、*接続→ SSH→トンネル*セクションに移動します。

  • Add New Forwarded Port セクションで、 Source port *として `+ 5901 `を、* Destination *として ` localhost:5901 +`を入力します。

[追加]ボタンをクリックします。

image:https://assets.digitalocean.com/articles/vnc-debian8/jWDVCt9.png [PuTTY SSHトンネル構成]

これで、左側のメニューの[セッション]セクションに移動できます。

*ホスト名(またはIPアドレス)*フィールドにドロップレットのIPアドレスを入力します。

[開く]ボタンをクリックして接続します。 これらのオプションを保存して、後で使用することもできます。

画像:https://assets.digitalocean.com/articles/vnc-debian8/zvIl1fJ.png [PuTTY SSH Connection]

  • vnc *ユーザーでログインします。

VNC接続を確立する間は、PuTTYウィンドウを開いたままにしてください。

これで、通常どおりVNCビューアーを使用できます。 アドレスとして* localhost

5901 *を入力し、SSH接続をバッ​​クグラウンドで実行したままにします。

image:https://assets.digitalocean.com/articles/vnc-debian8/FZWF3UH.png [UltraVNC Viewer:localhost

5901]

  • OS X:*

SSHトンネルを確立するには、ターミナルで次の行を使用します。

ssh vnc@ -L 5901:localhost:5901

SSHの* vnc ユーザーの通常の認証を行います。 次に、画面共有アプリで localhost:5901 *を使用します。

結論

これで、Debian 8サーバーで共有リモートデスクトップを使用できます。

これを使用してサーバーを構成するか、画面を他のユーザーと共有します。