Ubuntu Weekly Recipe

第411回VNCサーバー/クライアントを使用してみる

今回は、もっとも簡単に利用できるリモートデスクトップ接続である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⁠。

図1 Unity DashでVinoを起動しようとしている
画像

設定は特に迷うところはないでしょう図2⁠。⁠このマシンへの接続を毎回確認する]のチェックを外し、⁠パスワードの入力を要求する]でパスワードを設定するのがオススメです。確認しなくても[誰かが接続しているときのみ]にチェックが入っているとVNCでログインしている人がいることはわかります。自分しか使用しない場合は[このマシンへの接続を毎回確認する]にチェックが入っているとVNCでログインできないという罠もあります図3⁠。

図2 Vinoの設定
画像
図3 ⁠このマシンへの接続を毎回確認する]にチェックを入れていると表示されるダイアログ
画像

現在のVinoは暗号化した状態で通信するようになっています。このまま使用するのが望ましいのですが、VNCクライアントによっては接続できないこともあります。その場合は次のコマンドを実行、暗号化しないで通信してください。

$ gsettings set org.gnome.Vino require-encryption false

UbuntuデフォルトのVNCクライアント、Remmina

UbuntuにはあらかじめVNCクライアントしてRemminaがインストールされています。正確にはRemminaではプラグイン機構で対応するリモートデスクトップが追加できます。VNCのほかにRDPにも対応していますし、そのほかにもいくつかのプラグインが提供されています。少なくともVNCで使うぶんには特に問題なく使用でき、ほかのものをインストールする理由は好みを除けば特にはありません[3]⁠。

Ubuntuの場合はUnity Dashから起動します。今回はXubuntu 14.04を使用しましたが、こちらだとインストールされていません。使用したい場合は次のパッケージをインストールしてください。

remmina remmina-common remmina-plugin-rdp remmina-plugin-vnc

Remminaを起動し図4⁠、⁠接続]から[新規]を選択するか、左から2番目の白いアイコンをクリックすると接続ダイアログが表示されます図5⁠。⁠プロトコル][VNC -仮想ネットワークコンピューティング]にし、あとは[サーバー][ユーザー名]を入力して(必須⁠⁠、あとは任意で設定してください。設定を繰り返し使用する場合は、⁠名前]をわかりやすいものに変更して[保存]をクリックし、保存してください。

[接続]をクリックすると、VNCサーバーに接続します。

図4 Remminaの起動直後
画像
図5 Remminaの接続設定
画像

TigerVNC

TigerVNCはオープンソースでマルチプラットホームであり、現在も活発に開発されているVNCサーバーとクライアントです。これだけ聞くと使わない理由がないと思いがちなのですが、残念ながらUbuntuのリポジトリにはパッケージがありません。開発者によってUbuntu 12.04用と14.04用のパッケージは配布されています。いくつか問題があるので気づいた点を修正したパッケージをPPAにアップロードしておきました[4]⁠。

次のコマンドを実行してインストールしてください。なお、用意しているのは執筆時点の最新版である1.6.0で、14.04と15.10用です。後者は若干制限がありますが、今回紹介する方法であれば特に問題なく動作します。

$ sudo add-apt-repository ppa:ikuya-fruitsbasket/tigervnc
$ sudo apt-get update
$ sudo apt-get install tigervncserver

TigerVNCを使用するメリットは、オープンソースでマルチプラットフォームであり、かつサーバーもクライアントも用意されていることです。それは、いずれのプラットフォームでも相互に相性問題が発生する可能性が極めて低いことを意味します。ということは、暗号化した状態で安全に接続できるということでもあります。

TigerVNCサーバー

今回はVinoと同じく現在ログインしているデスクトップを転送するため、TigerVNCサーバーはユーザー権限で動作し、新しい仮想ディスプレイは作成しません。TigerVNCにはそのような便利なコマンドが用意されています。

まずは次のコマンドを実行してパスワードを作成してください。

$ tigervncpasswd

すると"Would you like to enter a view-only password (y/n)?"と質問されますので答えてください。たいていの場合は"n"でいいでしょう。

特に引数を指定しない場合、~/.vnc/passwdがパスワードの作成場所になります。パスワードを指定した場合はそこに作成しますが、今回の用途ではホームフォルダ以下に作成するのが妥当でしょう。

続いて次のコマンドを実行し、TigerVNCを起動します。

$ x0vncserver -display :0 -passwordfile ~/.vnc/passwd

ログインする度に実行するのが面倒な場合は、⁠自動起動するアプリケーション]⁠コマンドはgnome-session-properties)で自動実行するようにすると楽です。

TigerVNCクライアント

TigerVNCにはネイティブクライアントとJavaクライアントがありますが、今回は前者を使用します。次のコマンドを実行してインストールしてください。なお、TigerVNCサーバーをインストールしてある場合は3行目だけでいいです。

$ sudo add-apt-repository ppa:ikuya-fruitsbasket/tigervnc
$ sudo apt-get update
$ sudo apt-get install xtigervncviewer

UbuntuではUnity Dashで起動してください。"TigerVNC"で絞り込むといいでしょう。今回の例であるXubuntuの場合は、⁠インターネット]に分類されています。

残念ながらメニューは翻訳されていません図6⁠。基本的には[VNC Server]にサーバーのホスト名ないしIPアドレスを入力すればいいのですが、⁠Options]で必須の設定があるのでクリックします。

図6 TigerVNCクライアントの起動直後
画像

[Compression]タブは特に変更するところはありません図7⁠。圧縮レベルを上げたい場合は[Custom compression level]にチェックを入れ、"3"を入力するくらいでしょうか。

図7 Compressionタブ
画像

[Security]タブは、⁠Encryptions][None]のチェックを外します図8⁠。間違っても暗号化なしでの接続をしないためです。

図8 Securityタブ
画像

[Input]タブも特に変更するべきところはありません図9が、⁠Menu key][F8]だとまずいこともあるので、ほかのものに変更しておくのが無難です。

図9 Inputタブ
画像

[Misc]タブの[Show dot when no cursor]は必須で、必ずチェックを入れてください。

図10 Miscタブ
画像

[VNC Server]にサーバーのホスト名ないしIPアドレスを間違いなく入力し、⁠Connect]をクリックして接続してください。

図11 サーバー側の画面
画像
図12 クライアント側の画面
画像

おすすめ記事

記事・ニュース一覧