NoMachine NX 3.0で、Linuxマシンをリモートから快適に使う

 NoMachineが最近リリースした、リモート・デスクトップ製品バージョン3.0についてリポートする。このNX 3.0には他の類似製品より優れている点があるが、初心者には不親切と思われるところもある。

 NXには数種類のソフトウェアがあり、いずれもnomachine.comからダウンロードできるが、その種類の多さにNX初心者の私は面食らってしまった。無償ダウンロードできるものが、NX Free Edition、NX Server、NX Node、NX Client、NX Server Manager、NX Web Companion、NX Builderといろいろあるのだ。ページ上部のリンクを辿ってFAQを見ても役に立たず、製品を紹介するページを見ても製品がいかに優れているかを語るばかりで、導入する際の手順は説明されていない。

 仕方なく、私は同社とは無関係のLinuxフォーラムをいくつか覗き、先達が書いたインストール手順や解説を参考にすることにした。それによると、リモートからアクセスする先のLinuxマシンにはNX Server、NX Node、NX Clientを、アクセス元のマシン(Linux、Mac OS X、Windows、Solaris)にはNX Clientをインストールするということのようだ。

 数種類あるNX Serverコンポーネントのうち、NX Free Edition――正式名NX Server Free Edition――は無償で、そのほかは有償だ。それぞれの機能の違いは比較のページに一覧になっている。NX Server Free Editionの場合、同時接続可能なNXセッションとNX対応ユーザー・アカウント(Linuxの通常のアカウント、あるいはNXアクセス用に用意した専用のアカウント)の上限がそれぞれ2に制限されている。

 NoMachineがバイナリー・パッケージを提供しているLinuxディストリビューションは実に幅広く、Red Hat、Fedora、openSUSE、SLED、Mandriva、Xandros、Debian、Ubuntuに、しかも複数のリリースに対応している。その上、そのほかのディストリビューション用にtarballも提供。さらには、AMD64バージョンのあるディストリビューションについてはi386とAMD64の両方に対応するというサービスぶりだ。インストールの際は、パッケージをダウンロードしてから、nxclient、nxnode、nxserverの順にインストールする。

 NXはSSHを使うため、ホストマシン上にSSHサーバーを稼働させておく必要がある。NX ServerとNX Clientにはそれぞれ公開鍵の対の一方が付属しており、nxユーザー・アカウントがセッションを確立する際に使われる。接続が確立したあとの実際のログインは通常のLinuxユーザー・アカウントで行う。念のために、デフォルトのNX鍵(/usr/NX/home/nx/.ssh/authorized_keys2にある)が/etc/ssh/sshd_configファイルに追加されていることを確認しておこう。デフォルトの鍵の代わりに、自分で生成した鍵を使うこともできる。鍵を自分で用意すれば、それだけセキュリティーは向上する。なぜなら、デフォルトのパスワード同様、NoMachineが用意した鍵は周知のものだからだ。

 ただし、ちょっと使ってみようかというだけの場合は、NoMachineが用意した鍵をそのまま使うことをお勧めする。もちろん、OpenSSHの解説書(おそらくお手元のディストリビューションに含まれている)を見ながら新しい鍵を作ることはできるだろうが、その手間を掛けても掛けなくてもほとんど違いはない、どの鍵を使おうとNXの機能はまったく同じだからだ。

接続

 インストールが終わったら、コマンド「sudo /usr/NX/bin/nxserver --status」を実行して、サーバーを立ち上げる。その際、エラーメッセージが出ないかよく見ていること。サーバーが動き始めたら、いろいろなマシンのクライアントからサーバーに接続する準備は完了だ。

 VNCリモート・デスクトップ・アプリケーションの場合、VNCが動作するどのリモート・マシン上のセッションにも接続することができる。Linuxでも、Unixでも、Windowsでも、Macでも可能だ。しかし、NXの場合は一方通行だ。NX Clientにはいろいろなプラットフォーム用のものがあるが、NX ServerにはLinux用しかない。NX方式ではリモートのWindowsマシンに接続することはできないのだ。これはNXがX Windowセッションのレベルで圧縮し中継しているからだが、クロス・プラットフォームを諦めた代わりに、VNCやそのRemote FrameBufferのような低レベルでの方式に比べ動作はかなり速い。

nx3-1_thumb.jpg
Mac OS X用のNX Client(クリックで拡大)

 NX Serverマシンへの接続は簡単だ。MacとWindows用のNX ClientにはGUIランチャーが付いている。Linux用のクライアント・パッケージの場合は複数の.desktopランチャーをインストールすることになる(メニューを再ロードしない限りアプリケーション・メニューには表示されないので注意)。また、コマンドラインから、/usr/NX/bin/nxclientを実行してクライアントを起動することもできる。

 NX Client Connection Wizardはセッションを始めるまで案内してくるだけでなく、その際のプレファレンスを保存するので、次回からはそれを利用することができる。接続に必要な情報は、IPアドレスまたはNX Serverが動作するマシンの名前、そのマシン上の有効なアカウントだけだ。ローカルにログインしているときにNX Serverマシンに接続する場合は(最初NXを試用したとき私はそうした)、そのユーザー・アカウントが複数のログインを許されている必要があるので注意すること(私のアカウントはそうなっていなかった)。

 ログインすれば、そのクライアント・マシン上でX、GNOME、KDEのいずれでも通常通りにセッションを開き使うことができる。サーバー・マシンにローカルにログインしたときにアクセスできるものであれば何であれ、リモートからアクセス可能だ。パフォーマンスもよい。私が試した限りでは、マウスをクリックすると直ぐに画面も追随し、遅れはほとんどない。VNCでは、こうはいかない。

 ただし、サウンドについては若干問題があった。Linuxクライアントからは標準の音楽プレーヤー(Rhythmboxなど)をリモート接続を介して動かすことができたが、Mac OS Xからはできなかった。しかも、機能するのはサーバー上でEnlightened Sound Daemon(esd)を使ってオーディオ出力可能なアプリケーションだけで、video4linuxアプリケーションなど、それ以外のアプリケーションはどのクライアントでも鳴らなかった。

 NXには多くのオプションがあるが、セッション・データのSSH暗号化がデフォルトで無効になっているのも疑問だ。この設定でもユーザー認証の際はもちろん暗号化される。しかし、通常のトラフィックは平文のままだ。しかも、暗号化を無効にしておくとセッションを確立する際に問題が生じた。これはファイヤウォールのないLAN上でも同じだ。認証が終わったあと、最初の画面データをダウンロードしている間にセッションがタイムアウトしてしまうことがよくあるのだ。

 リモート・セッション中にハングアップすることもあった。しかし、ことリモートXセッションに関する限り私は決して完全を求めず、ハングアップはやむを得ないことだと思っている。VNCやRDPはなかなか微妙なものなのだ。だが、そんな私でもNX 3.0がハングアップしてもエラーを報告しないのにはガッカリした。NXセッションは~/.nxにログを作るが、そこには何のエラーも記録されていない。接続のタイムアウトも、クラッシュも、失敗したログインも、何も記録されないのだ。リモート接続で作業していて不具合があれば、その理由を知りたいと思うのは人情だと思うのだが。そうした情報はどこか(/usr/NX/など)にあるのかもしれないが、私には見つけることができなかった。

nx3-2_thumb.jpg
NX Client for Linuxで通常のセッションとシャドウセッションを開いているところ(クリックで拡大) and a second NX client shadowing the first client session

 NXは単純なリモートXセッションを超える機能を持っている。VNCとRDPのどちらにも対応しているし、「シャドウ」セッションを設定することもできる。シャドウ・セッションというのはリモートのユーザーにも見えるが触れることのできないXセッションのことで、NXではリモート・ユーザーがセッションをシャドウイングし始めたことがわかるし、シャドウイングを完全に禁止することもできると聞けば、神経質な人には嬉しいことだろう。

 NX Serverの機能の比較表を見ると、無償ユーザーに比べ、ビジネス・ユーザーにはかなり多くのオプションが用意されている。有償版ではNXユーザー数や同時接続数の上限が緩和されるほか、ユーザー・プロファイルや複数のNX Serverを1個所から管理するなど、便利な機能も備えている。

まとめ

 総じて言えば、NX 3.0は非常に機能の豊富なソフトウェアでVNCよりも高速だ。これだけでも、無償版をネットワークに導入するだけの価値はある。

 ところで、初めてNXを使った私がつまずいた個所についてだが、本当に困ったのは理由や対策が見つからないことだった。Supportのサービスは、無償版の場合、NoMachineのオンライン・ナレッジベースとトラブル・チケット・システムだけしかなく、「初心者」向けに工夫する余地が多分にある。少なくともオープンな討論の場など、ユーザー同士が教えあえる場がほしい。こうした欠点を持つNXだが、詳細に調査するだけの価値はある。

Linux.com 原文