Guacamole はHTML5とAjaxで実現されたVNCクライアントです。
ウェブブラウザさえあれば、どこからでもアクセスできるし便利そうなので試してみました。

(Guacamoleを使ってノートPCからデスクトップPCにつないでみた様子。Chromeの中でChromeを立ち上げてしまうセンスの無さ…。)
実際にGuacamoleを使ってグリグリ動かしている動画が 公式サイト にもあるので、そちらも参照のこと。
Guacamoleは日本語だと「ガカモレ」とか「ワカモレ」と発音するようです。
基本的に 公式サイト に載ってるインストール手順通りでハマるところはありませんでしたが、ググっても日本語記事が少ないようなのでメモ。
はじめに Link to heading
Guacamoleを利用するためには vncserver, apache, tomcat のほか デスクトップ環境 が必要です。デスクトップ環境の構築方法については触れないので、その辺りが分からない方はググってください。
また、この記事はとりあえず実験的に動かすことを目的にしているので、継続して利用するのであれば設定を見直す必要があります。
インストール手順 Link to heading
まずは必要なパッケージをインストールする。(debian squeezeの場合)
$ sudo apt-get install vnc4server apache2 tomcat6
Apache Tomcat
ApacheとTomcatはインストール直後に既に実行されていたが、一応確認。
$ /etc/init.d/apache2 status Apache2 is running (pid 1250). $ /etc/init.d/tomcat6 status Tomcat servlet engine is running with pid 2601.netstatすると8080番でTomcatがLISTENしているので、アクセスしてみる。$ curl http://localhost:8080/ <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Apache Tomcat</title> </head> <body> <h1>It works !</h1>ぶじに実行できている。
VNCサーバ
VNCサーバを起動する。
$ vncserver初回起動時にはパスワードを問われるので、適当に設定。このパスワードはGuacamoleの設定でも使用します。
You will require a password to access your desktops. Password: [password] Verify: [password]vncserverは起動時のオプションで解像度や色数も変えられます。使いづらかったらその辺りをいじってみましょう。Guacamole
ここまできたら、いよいよGuacamoleのダウンロードと設定です。ダウンロードは このへん からお好きなものを。
ぼくは
guacamole-0.3.0rc1.tar.gz(最新版:2011/1/21時点) をつかいました。ダウンロードしたら解凍して中身を見てみる。
$ tar xf guacamole-0.3.0rc1.tar.gz $ ls guacamole-0.3.0rc1 LICENSE.txt guacamole-src.tar guacamole-users.xml guacamole.war guacamole.xmlこの中で使うのは
guacamole-users.xml,guacamole.war,guacamole.xmlの3ファイルです。3.1.
guacamole.warまずは
guacamole.warを任意の場所に設置します。設置場所のパスは
guacamole.xmlで指定することになりますが、ここではguacamole.xmlの初期設定で指定されている/var/lib/guacamole/guacamole.warに置くことにします。$ sudo mkdir -p /var/lib/guacamole $ sudo cp guacamole.war /var/lib/guacamole/3.2
guacamole-users.xmlつぎに
guacamole-users.xmlを/var/lib/tomcat6/conf/にコピーして設定を編集します。このファイルにはBASIC認証でのアクセス時に使用するユーザーとパスワードの設定を行います。
$ sudo cp guacamole-users.xml /var/lib/tomcat6/conf/ $ sudo nano -wk /var/lib/tomcat6/conf/guacamole-users.xml5行目の
username="",password=""を適当に設定しましょう。1<?xml version='1.0' encoding='utf-8'?> 2 3<tomcat-users> 4 <role rolename="guacamole"/> 5 <user username="guacamole" password="changeme" roles="guacamole"/> 6</tomcat-users>3.3
guacamole.xmlさいごに
guacamole.xmlをTomcatの./conf/Catalina/HOSTNAME/以下に設置します。HOSTNAMEは実行するホストに応じて決める。ぼくはとりあえず動作確認のため localhost に置きました。$ sudo cp guacamole.xml /var/lib/tomcat6/conf/Catalina/localhost/guacamole.xmlの編集の前に、VNCサーバが待ち受けてるポート番号を調べます。$ sudo netstat -anp --tcp 稼働中のインターネット接続 (サーバと確立) Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 PID/Program name tcp 0 0 0.0.0.0:6001 0.0.0.0:** LISTEN 4752/Xvnc4 tcp 0 0 0.0.0.0:22 0.0.0.0:** LISTEN 1405/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:** LISTEN 1619/exim4 tcp6 0 0 :::8080 :::** LISTEN 4825/java tcp6 0 0 :::80 :::** LISTEN 1250/apache2 tcp6 0 0 :::22 :::** LISTEN 1405/sshd tcp6 0 0 ::1:25 :::** LISTEN 1619/exim4 tcp6 0 0 127.0.0.1:8005 :::** LISTEN 4825/java tcp6 0 0 :::5901 :::** LISTEN 4752/Xvnc4 ...Xvnc4ってのがVNCサーバ。
tcpとtcp6の両方で待ち受けていることがわかりますが、javaの待ち受けがtcp6の8080番なので、VNCサーバもそれに合わせてtcp6のほう(5901番)を使います。
VNCサーバのポート番号はわかったので
guacamole.xmlを編集しましょう。1$ sudo nano -wk /var/lib/tomcat6/conf/Catalina/localhost/guacamole.xml 2<?xml version="1.0" encoding="UTF-8"?> 3 4<!-- 5 Guacamole - Pure JavaScript/HTML VNC Client 6 Copyright (C) 2010 Michael Jumper 7 8 This program is free software: you can redistribute it and/or modify 9 it under the terms of the GNU Affero General Public License as published by 10 the Free Software Foundation, either version 3 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU Affero General Public License for more details. 17 18 You should have received a copy of the GNU Affero General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. 20--> 21 22<Context antiJARLocking="true" path="/guacamole" docBase="/var/lib/guacamole/guacamole.war"> 23 24 <!-- Change the lines below to match your VNC server --> 25 <Parameter name="host" value="localhost"/> 26 <Parameter name="port" value="5900"/> 27 28 <!-- Password (VNC Authentication) 29 30 Uncomment and change the line below if your VNC server is 31 password protected. --> 32 33 <!-- 34 <Parameter name="password" value="PASSWORD"/> 35 -->name=“host”, name=“port”, name=“password” の value を編集。
passwordにはvncserver起動時に設定したパスワードを設定する。パスワードの設定は コメントアウトされている ので解除する必要があります。そこだけ注意。
これで設定は完了! Link to heading
あとはTomcatを再起動してから http://localhost:8080/guacamole へアクセスすればおっけー。
$ sudo /etc/init.d/tomcat6 restart
Stopping Tomcat servlet engine: tomcat6.
Starting Tomcat servlet engine: tomcat6.
使ってみた感想 Link to heading
レスポンスもなかなかいいし、設定も簡単なのでとっつきやすいです。あと、ブラウザにデスクトップが表示されるのはちょっと感動する。
操作性はデスクトップ環境にもよると思いますが、タイル型のWMとの相性はかなり悪め。この辺りは設定次第なのかもしれません。
重たい処理もやってみようと思い、ためしに Neverwinter Nights(PCゲーム) を動かしてみた。PCが非力なのもあってか、カックカクでゲームってレベルじゃない。色もおかしいし。

でも、ブラウザ内で3DのPCゲームが動くってすごいね。
Wineも使ってあれこれやってみたけど、そっちはうまくいかなかったのでまた今度挑戦しよう。
それにしてもGuacamoleって覚えづらい名前だ…。ブラウザから見に行く時に「http://localhost:8080/gua… gua… えーと、なんだっけ?」ってことが何度もあった。