2006年05月22日

FreeNXを用いて手軽にマルチウィンドゥモードを実現する


今の職場では、基本的にPC&Macはthe Internetに接続されていません
まぁポリシーやなんやらが存在するわけで(上司の頭の中に)
見ててかわいそうなのは、デザイナさんがWEBを参照できないこと
イマジネーションを核とする仕事にはちょっときついです
そのデザイナ班からどうにかならないかと相談を受けたので一計を案じてみました

実際の話は、WindowsとMacintoshばかりの職場にLinuxを食い込ませる橋頭堡にならんかなと画策したわけで

で、本題
Windows用のXサーバやVNCを使って、サーバサイドでブラウザを動かしたらどうだろうと考えてみた

でもWindows用Xサーバは高いし、フリーのも使い勝手が悪い

VNCは画質が…
それに作業領域が区切られてしまうので、いまいちスマートじゃない
#MetaVNCっていうのもあるけどね

そこでFreeNXですよ

■スラッシュドット ジャパン | KNOPPIX3.6日本語版 リリース
http://slashdot.jp/linux/04/09/16/1355214.shtml

この記事を見て存在は知ってたんだけど、使ったことはなかった
CitrixのMetaFrameを会社で使ってるので、比較してみたいというのもあって使ってみる

ディストリビューションはCentOSを使い、x.org、sshd、firefox、uim、anthy、freenxをインストール
uimとanthyは外部リポジトリから拾ってきた
そこらへんは好みで

■FedoraNEWS.ORG
http://www.fedoranews.org/contributors/rick_stout/freenx/

#cat /etc/ssh/sshd_config
Protocol 2
UsePAM yes
RSAAuthentication yes
PermitRootLogin no
RhostsRSAAuthentication no
HostbasedAuthentication no
PasswordAuthentication no
ChallengeResponseAuthentication no
X11Forwarding no

sshdの設定はこんな感じ
元々使ってた設定から特に変えてません
適当でも動くとは思う

あとはブラウズ用のアカウントを作っておく

freenxのセットアップ
# nxsetup --install
# nxserver --adduser [browser](さっき作ったユーザ)
# nxserver --passwd [browser](ユーザのUNIX Passwordとは違うものにも出来る)

# vi /usr/bin/startnx(接続時に実行するスクリプトを作る)
#!/bin/bash
xrdb $HOME/.Xresources
export LANG=ja_JP.UTF-8
export GTK_IM_MODULE=uim
export XMODIFIERS=@im=uim
export UIM_CANDWIN_PROG=uim-candwin-gtk
uim-toolbar-gtk &
firefox

#chmod +x /usr/bin/startnx

これでサーバ側の設定は終わり
あと、/etc/nxserver/client.id_dsa.keyをクライアント側に持って来ておいて下さい

クライアントは適当にダウンロードして普通にインストール

■NoMachine NX - Download the NX Terminal Server and Remote Access Software
http://www.nomachine.com/download.php

a)ID、PASSはさっき指定したものを
b)セッション名は適当に
c)「Server」→「Key」で/etc/nxserver/client.id_dsa.keyをインポート
d)「Desktop」は「UNIX」の「Custom」を選択し、「Setting」→「Run the following command」にトグル→「startnx」と入力
e)「Setting」→「Floatingwindow」にトグル
f)「Keybord」は「Japanese」を選択

起動しましょう
上手く行けば、右下にuimのツールバー
そして、firefoxがマルチウィンドゥモードのように立ち上がるはずです

「Run the following command」に、startnxではなくxtermとでも入れておけば、サーバにインストールしてあるアプリケーションをスムーズに立ち上げることが出来るでしょう


最後にパフォーマンスの話
今回は100baseなLAN内でのみ試しました

スムーズスクロールをはずしたfirefoxで、スクロールバーを上下に激しく動かしてCeleron600MHzで70-100%、smpなPentiumIII 1.13GHzで40%くらい
その時のサーバ(Celeron1.4GHz)側の負荷は最高で11%(!)20%、スラッシュドットJPのトップ表示で35%は食ってます
使用メモリはNXWin.exeで32MB、nxssh.exeで10MB
サーバ側はブラウザのプロセスごとに30MB程
ネットワークはタスクマネージャで見て、最高で0.35%

主観としては結構使えるかなと感じました
やっぱりクリック時の反応の遅さはいかんともし難いですが、スクロールなんかはとても軽くてびっくり
アプリケーションをたくさん立ち上げても重さ加減はほとんど変わりません
そして表示がとてもきれいなのも嬉しい
コピー&ペーストも出来るようですが、文字コードをそのままペーストするので現在の環境だと化けて見えます

気になったのは、ひとつのアプリケーションでウィンドゥを二つ立ち上げたとき、具体的にはfirefoxでブックマークウィンドゥを開いて閉じた時や、新しいウィンドゥを開いた瞬間、または最小化した時などに落ちるような気がしました
落ちるのはウィンドゥ操作時が多いですね
セッションセーバは必須かもしれません
#Floatingwindowを使わなければ安定してます


そのうち、まとめて提案書でも出したいと思います
Posted by flatline_proto at 23:15│Comments(0)