今回は、もっとも簡単に利用できるリモートデスクトップ接続であるVNCについて解説します。
リモートデスクトップいろいろ
過去には、本連載第21回(!)で、すでにVNCについて解説しています。また、RDP互換のxrdpの解説は第208回と第376回で行っています。そしてX2Goについては第330回で解説しています。
これらは、デスクトップ画面を転送するということに絞れば方式は違えど結果は概ね同じことを行っていますが、それぞれ付加価値があり、使用されるシーンも分かれてきます。
今回はある意味原点回帰なVNCをあらためて紹介することにしたのは、8年前とはVNC事情が変わっていること、4G回線の普及によるモバイル通信の高速化により、外出先からのデスクトップ転送も現実味を帯びてきたこと、VPSの普及によるVDIもまた考慮に値するなど、充分に価値がある情報であると思ったからです[1]。
UbuntuデフォルトのVNCサーバー、Vino
前述の第21回で紹介したVinoは、現在でも最初からUbuntuにインストールされています。バージョンは14.04でも15.10でも、ついでに16.04でも3.8です。バージョンアップしない理由はバグ報告で述べられています。いわく、新しいバージョンだとGNOMEコントロールセンターからしか起動できなくなっているので、それだと困るとのことです[2]。
当然ではありますが、Vinoはデフォルトで動作していません。UbuntuではUnity Dashから設定ツールを起動してください(図1)。
設定は特に迷うところはないでしょう(図2)。[このマシンへの接続を毎回確認する]のチェックを外し、[パスワードの入力を要求する]でパスワードを設定するのがオススメです。確認しなくても[誰かが接続しているときのみ]にチェックが入っているとVNCでログインしている人がいることはわかります。自分しか使用しない場合は[このマシンへの接続を毎回確認する]にチェックが入っているとVNCでログインできないという罠もあります(図3)。
現在のVinoは暗号化した状態で通信するようになっています。このまま使用するのが望ましいのですが、VNCクライアントによっては接続できないこともあります。その場合は次のコマンドを実行、暗号化しないで通信してください。
UbuntuデフォルトのVNCクライアント、Remmina
UbuntuにはあらかじめVNCクライアントしてRemminaがインストールされています。正確にはRemminaではプラグイン機構で対応するリモートデスクトップが追加できます。VNCのほかにRDPにも対応していますし、そのほかにもいくつかのプラグインが提供されています。少なくともVNCで使うぶんには特に問題なく使用でき、ほかのものをインストールする理由は好みを除けば特にはありません[3]。
Ubuntuの場合はUnity Dashから起動します。今回はXubuntu 14.04を使用しましたが、こちらだとインストールされていません。使用したい場合は次のパッケージをインストールしてください。
Remminaを起動し(図4)、[接続]から[新規]を選択するか、左から2番目の白いアイコンをクリックすると接続ダイアログが表示されます(図5)。[プロトコル]を[VNC -仮想ネットワークコンピューティング]にし、あとは[サーバー]と[ユーザー名]を入力して(必須)、あとは任意で設定してください。設定を繰り返し使用する場合は、[名前]をわかりやすいものに変更して[保存]をクリックし、保存してください。
[接続]をクリックすると、VNCサーバーに接続します。
TigerVNC
TigerVNCはオープンソースでマルチプラットホームであり、現在も活発に開発されているVNCサーバーとクライアントです。これだけ聞くと使わない理由がないと思いがちなのですが、残念ながらUbuntuのリポジトリにはパッケージがありません。開発者によってUbuntu 12.04用と14.04用のパッケージは配布されています。いくつか問題があるので気づいた点を修正したパッケージをPPAにアップロードしておきました[4]。
次のコマンドを実行してインストールしてください。なお、用意しているのは執筆時点の最新版である1.6.0で、14.04と15.10用です。後者は若干制限がありますが、今回紹介する方法であれば特に問題なく動作します。
TigerVNCを使用するメリットは、オープンソースでマルチプラットフォームであり、かつサーバーもクライアントも用意されていることです。それは、いずれのプラットフォームでも相互に相性問題が発生する可能性が極めて低いことを意味します。ということは、暗号化した状態で安全に接続できるということでもあります。
TigerVNCサーバー
今回はVinoと同じく現在ログインしているデスクトップを転送するため、TigerVNCサーバーはユーザー権限で動作し、新しい仮想ディスプレイは作成しません。TigerVNCにはそのような便利なコマンドが用意されています。
まずは次のコマンドを実行してパスワードを作成してください。
すると"Would you like to enter a view-only password (y/n)?"と質問されますので答えてください。たいていの場合は"n"でいいでしょう。
特に引数を指定しない場合、~/.vnc/passwdがパスワードの作成場所になります。パスワードを指定した場合はそこに作成しますが、今回の用途ではホームフォルダ以下に作成するのが妥当でしょう。
続いて次のコマンドを実行し、TigerVNCを起動します。
ログインする度に実行するのが面倒な場合は、[自動起動するアプリケーション](コマンドはgnome-session-properties)で自動実行するようにすると楽です。
TigerVNCクライアント
TigerVNCにはネイティブクライアントとJavaクライアントがありますが、今回は前者を使用します。次のコマンドを実行してインストールしてください。なお、TigerVNCサーバーをインストールしてある場合は3行目だけでいいです。
UbuntuではUnity Dashで起動してください。"TigerVNC"で絞り込むといいでしょう。今回の例であるXubuntuの場合は、[インターネット]に分類されています。
残念ながらメニューは翻訳されていません(図6)。基本的には[VNC Server]にサーバーのホスト名ないしIPアドレスを入力すればいいのですが、[Options]で必須の設定があるのでクリックします。
[Compression]タブは特に変更するところはありません(図7)。圧縮レベルを上げたい場合は[Custom compression level]にチェックを入れ、"3"を入力するくらいでしょうか。
[Security]タブは、[Encryptions]の[None]のチェックを外します(図8)。間違っても暗号化なしでの接続をしないためです。
[Input]タブも特に変更するべきところはありません(図9)が、[Menu key]が[F8]だとまずいこともあるので、ほかのものに変更しておくのが無難です。
[Misc]タブの[Show dot when no cursor]は必須で、必ずチェックを入れてください。
[VNC Server]にサーバーのホスト名ないしIPアドレスを間違いなく入力し、[Connect]をクリックして接続してください。