前書き
VNC、または「仮想ネットワークコンピューティング」は、キーボードとマウスを使用してリモートサーバー上のグラフィカルデスクトップ環境と対話できるようにする接続システムです。 VNCを使用すると、コマンドラインの操作にまだ慣れていないユーザーでも、リモートサーバー上のファイル、ソフトウェア、および設定を簡単に管理できます。
このガイドでは、Ubuntu 14.04サーバーでVNCをセットアップし、SSHトンネルを介して安全に接続します。 使用するVNCサーバーは、高速で軽量のリモートコントロールパッケージであるTightVNCです。 この選択により、低速のインターネット接続でもVNC接続がスムーズで安定します。
前提条件
このガイドを始める前に、最初に完了する必要があるいくつかのステップがあります。
sudo
権限を持つroot以外のユーザーでインストールおよび構成されたUbuntu14.04サーバーが必要になります。 まだこれを行っていない場合は、Ubuntu 14.04 initial server setup guideの手順1〜4を実行して、このアカウントを作成できます。
非rootユーザーを取得したら、それを使用してUbuntuサーバーにSSH接続し、VNCサーバーのインストールを続行できます。
[[step-one --- install-desktop-environment-and-vnc-server]] ==ステップ1—デスクトップ環境とVNCサーバーをインストールします
デフォルトでは、ほとんどのLinuxサーバーのインストールにはグラフィカルデスクトップ環境が付属していません。 その場合は、まず作業できるものをインストールする必要があります。 この例では、XFCE4をインストールします。XFCE4は非常に軽量でありながら、ほとんどのユーザーに馴染みがあります。
XFCEパッケージは、TightVNCのパッケージとともに、apt
を使用してUbuntuのソフトウェアリポジトリから直接取得できます。
sudo apt-get update
sudo apt-get install xfce4 xfce4-goodies tightvncserver
VNCサーバーの初期構成を完了するには、vncserver
コマンドを使用して安全なパスワードを設定します。
vncserver
(アクセスパスワードを設定した後、表示専用パスワードを入力するかどうかを尋ねられます。 表示専用パスワードでログインしたユーザーは、マウスまたはキーボードでVNCインスタンスを制御できません。 これは、VNCサーバーを使用して他の人に何かを見せたい場合に便利なオプションです。)
vncserver
は、サーバーが使用するデフォルトの構成ファイルと接続情報を作成することにより、VNCのインストールを完了します。 これらのパッケージをインストールすると、VNCサーバーとグラフィカルデスクトップを構成する準備が整います。
[[step-two --- configure-vnc-server]] ==ステップ2—VNCサーバーを構成します
まず、VNCサーバーの起動時に実行するコマンドを指定する必要があります。 これらのコマンドは、xstartup
という構成ファイルにあります。 VNCサーバーにはすでにxstartup
ファイルがプリロードされていますが、XFCEデスクトップにはいくつかの異なるコマンドを使用する必要があります。
VNCが最初にセットアップされると、ポート5901でデフォルトのサーバーインスタンスが起動します。 このポートはディスプレイポートと呼ばれ、VNCでは:1
と呼ばれます。 VNCは、:2
、:3
などの他のディスプレイポートで複数のインスタンスを起動できます。 VNCサーバーを使用する場合、:X
は5900+X
を参照する表示ポートであることに注意してください。
VNCサーバーの構成方法を変更するため、ポート5901で実行されているVNCサーバーインスタンスを最初に停止する必要があります。
vncserver -kill :1
新しいxstartup
ファイルの構成を開始する前に、後で必要になった場合に備えて、元のファイルをバックアップしましょう。
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
これで、nano
を使用して新しいxstartup
ファイルを開くことができます。
nano ~/.vnc/xstartup
VNCサーバーを起動または再起動するたびに自動的に実行されるように、これらのコマンドをファイルに挿入します。
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
ファイルの最初のコマンドxrdb $HOME/.Xresources
は、VNCのGUIフレームワークにサーバーユーザーの.Xresources
ファイルを読み取るように指示します。 .Xresources
は、ユーザーがグラフィカルデスクトップの特定の設定(端末の色、カーソルテーマ、フォントレンダリングなど)を変更できる場所です。
2番目のコマンドは、サーバーにXFCEを起動するように単に指示します。XFCEは、サーバーを快適に管理するために必要なすべてのグラフィカルソフトウェアを見つける場所です。
VNCサーバーがこの新しいスタートアップファイルを適切に使用できるようにするには、実行可能権限を付与する必要があります。
sudo chmod +x ~/.vnc/xstartup
[[step-three --- create-a-vnc-service-file]] ==ステップ3—VNCサービスファイルを作成します
新しいVNCサーバーを簡単に制御するには、Ubuntuサービスとして設定する必要があります。 これにより、必要に応じてVNCサーバーを起動、停止、再起動できます。
まず、nano
を使用して/etc/init.d
で新しいサービスファイルを開きます。
sudo nano /etc/init.d/vncserver
データの最初のブロックは、ユーザー名やディスプレイの解像度など、VNCが多く参照する一般的な設定を宣言する場所です。
#!/bin/bash
PATH="$PATH:/usr/bin/"
export USER="user"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
. /lib/lsb/init-functions
必ずuser
を設定したroot以外のユーザーに置き換え、仮想ディスプレイに別の画面解像度を使用する場合は1024x768
を変更してください。
次に、新しいサービスの管理を可能にするコマンド命令の挿入を開始できます。 次のブロックは、VNCサーバーの起動に必要なコマンドと、起動中であることを示すフィードバックをコマンドキーワードstart
にバインドします。
case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;
次のブロックは、コマンドキーワードstop
を作成します。これにより、既存のVNCサーバーインスタンスがすぐに強制終了されます。
stop)
log_action_begin_msg "Stopping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;
最後のブロックは、コマンドキーワードrestart
用です。これは、前の2つのコマンド(stop
とstart
)を1つのコマンドに組み合わせたものです。
restart)
$0 stop
$0 start
;;
esac
exit 0
これらのブロックがすべてサービススクリプトに含まれたら、そのファイルを保存して閉じることができます。 設定したコマンドを使用できるように、このサービススクリプトを実行可能にします。
sudo chmod +x /etc/init.d/vncserver
次に、サービスとコマンドを使用して、新しいVNCサーバーインスタンスを起動してみます。
sudo service vncserver start
[[step-four --- connect-to-your-vnc-desktop]] ==ステップ4—VNCデスクトップに接続します
VNCサーバーをテストするには、SSHトンネルを介したVNC接続をサポートするクライアントを使用する必要があります。 Windowsを使用している場合は、TightVNC、RealVNC、またはUltraVNCを使用できます。 Mac OS Xユーザーは、組み込みの画面共有を使用するか、RealVNCなどのクロスプラットフォームアプリを使用できます。
まず、VNCのlocalhost
接続に安全に転送するSSH接続をローカルコンピューターに作成する必要があります。 これは、LinuxまたはOS Xのターミナルで次のコマンドを使用して実行できます。
(user
とserver_ip_address
を、SSH経由でサーバーに接続するために使用したユーザー名とIPに置き換えることを忘れないでください。)
ssh -L 5901:127.0.0.1:5901 -N -f -l user server_ip_address
PuTTYなどのグラフィカルSSHクライアントを使用している場合は、接続IPとしてserver_ip_address
を使用し、プログラムのSSHトンネル設定でlocalhost:5901
を新しい転送ポートとして設定します。
次に、VNCビューアを使用して、localhost:5901
でVNCサーバーに接続できます。 VNCインスタンスにアクセスできる唯一のポートであるため、最後に:5901
があることを忘れないでください。
接続すると、デフォルトのXFCEデスクトップが設定および使用できる状態になります。 これは次のようになります。
VNC接続が機能していることを確認したら、VNCサービスをデフォルトのサービスに追加して、サーバーを起動するたびに自動的に開始されるようにします。
sudo update-rc.d vncserver defaults
結論
これで、Ubuntu 14.04サーバーで安全なVNCサーバーが稼働しているはずです。 これで、使いやすいグラフィカルインターフェースでサーバーのファイル、ソフトウェア、設定を管理できるようになります。