FreeNXをUbuntuにインストールすれば、UbuntuやWindows、Mac OSXがインストールされた他のマシンからUbuntuのデスクトップが利用できるようになります。VNCなど、他にもリモート・デスクトップを実現するソフトウェアはありますが、FreeNXの特徴は低速な回線でも快適に利用できることです。また、セキュリティを重視した仕組みであるため、インターネット経由で使うようセットアップするのも簡単です。今回はFreeNXのインストールから使い方までを解説します。
インストール前の準備
FreeNXをインストールする前に、SSHサーバをセットアップしておく必要があります。インストールしていなければ、端末を開いて以下のコマンドを実行しましょう。
sudo apt-get install openssh-server
インターネット経由で接続するのであれば、アタック対策としてfail2banパッケージをインストールしておくのも良いでしょう。
また、DHCPサーバからIPアドレスを取得している場合は、固定のものを設定しておいたほうが良いでしょう。IPアドレスを固定にするには を参考に固定のIPアドレスを設定してください。
なお、FreeNXで接続するUbuntuマシンにはデスクトップ環境が必要です。UbuntuのDesktop CDでインストールした環境ならば問題ないでしょう。デスクトップ環境がインストールされていない場合は、インストールしておきます。「 ubuntu-desktop」パッケージをインストールするのが簡単でしょう。
FreeNXのPPAを追加する
FreeNXのパッケージは、Personal Package Archive(PPA)で提供されています。FreeNXのPPAページ を参照し、レポジトリを追加しましょう。
9.10の場合
先月(2009年10月)にリリースされたUbuntu 9.10より、PPAのレポジトリが簡単に追加できるようになりました。FreeNXのPPAを追加するには、端末を開いて以下のコマンドを実行します。
sudo add-apt-repository ppa:freenx-team
これで、リポジトリと公開鍵の追加が行われます。続けて、以下のコマンドでパッケージ情報をアップデートしておきましょう。
sudo apt-get update
9.04以前の場合
9.04以前の場合は、少し複雑になります。FreeNXのPPAページ にある「Technical details about this PPA」をクリックし、現れたドロップダウンボックスから該当するUbuntuのバージョンを選択してください。すると、以下のような行が表示されます。
deb http://ppa.launchpad.net/freenx-team/ppa/ubuntu VERSION main
deb-src http://ppa.launchpad.net/freenx-team/ppa/ubuntu VERSION main
「VERSION」は、選択したUbuntuのバージョンに対応したコードネーム(たとえば、8.04なら「hardy」 )となっているはずです。この2行を、/etc/apt/sources.listに追記します。
さらに、端末で以下のコマンドを実行してFreeNXのPPAで使われている公開鍵を登録しておきましょう。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D018A4CE
最後に、以下のコマンドでパッケージ情報をアップデートしましょう。
sudo apt-get update
FreeNXをインストールする
PPAを追加したら、FreeNXのインストールしましょう。以下のコマンドを実行するだけです。基本的な設定は自動で行われます。
sudo apt-get install freenx
NXクライアントをインストールする
FreeNXサーバに接続するためのクライアントアプリケーションとして、イタリアのNoMachines社 が無償で配布している「NX Client」を利用することができます[1] 。ダウンロードページ で、クライアントのOSに応じたNX Clientをダウンロードしましょう。
[1] FreeNXで使われている「NX technology」は、NoMachines社が開発したものです。同社は、「 NX Server」を販売するほか、「 NX Client」を配布しています。無償で利用できる「NX Server Free Edition」も配布していますが、同時接続可能なセッション数に上限が設定されています。一方、この記事で取り上げた「FreeNX」は、Fabian Franz氏が開発したNXサーバのフリー実装であり、同時接続セッション数に制限はありません。また、他のフリーなNXサーバとしてGoogleが開発した「Neatx」 があります。本稿執筆時点では、Ubuntu 9.10用のneatxパッケージがFreeNXのPPAレポジトリ で提供されています。ただし、FreeNXやNeatxには商用のNX Serverに含まれる機能のすべてが実装されているわけではありません。とはいえ、リモートからログインしてデスクトップを使うための基本的な機能は提供されています。
Windowsの場合は、ダウンロードページ にある「NX Client for Windows」として配布されているファイルをダウンロード、実行します。セットアップ・ウィザードが起動するので、通常はデフォルト設定のままインストールすれば完了です。なお、Add-On Downloadsとしてフォントを追加するプログラムが提供されていますが、古いUnixアプリケーションを使うのでなければ必要ないでしょう。
Ubuntuの場合は、ダウンロードページ の「NX Client DEB for Linux - i386 」 ( 32bit版)もしくは「NX Client DEB for Linux - x86_64」( 64bit版)をダウンロードしましょう。ダウンロードしたパッケージをインストールすれば、メニューの「アプリケーション」 →「 NX Client for Linux」 →「 NX Client for Linux」で起動することができます。
FreeNXサーバに接続する
NX Clientを起動すると、「 NX Connection Wizard」が起動します。セッションの名前(接続先のホスト名などがいいでしょう) 、FreeNXをインストールしたPCのIPアドレス、サーバとの接続の種類を設定します。
図1
次の画面では、「 Unix」と「Gnome」を選択しておきます。また、「 Available area」のままだとウィンドウが画面いっぱいに広がるため、好みに応じて変更してもいいでしょう。
図2
ウィザードが終了すると、ログインダイアログが表示されます。FreeNXをインストールしたUbuntuマシンに登録されているユーザでログインしましょう。なお、「 Configure」をクリックすれば、ウィザードで設定した項目のほか、さまざまな設定を行うことができます。
図3
ログインに成功すれば、Ubuntuのデスクトップが表示されます。
図4
日本語入力を行うには
普通にセットアップするだけでは、FreeNXでログインしたデスクトップで日本語が入力できません。日本語入力を使えるようにするには、以下の設定が必要です。
iBusを使う
Ubuntu 9.10から標準となったiBusを使って日本語入力を行うことができます。ただし、筆者が試した限りではiBusのツールバーが表示されませんでした。日本語の入力自体は問題なく可能です。
まず、以下の内容で/usr/NX/bin/GNOME-iBus.shを作成します。
#!/bin/bash
export LC_CTYPE=ja_JP.utf8
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
export GTK_IM_MODULE=ibus
export USE_XOPENIM=t
/usr/bin/ibus-daemon --xim &
/usr/bin/nx-session-launcher-suid gnome-session
次に、以下の内容で/etc/nxserver/node.conf.d/10ibusを作成します。
COMMAND_START_GNOME='/usr/NX/bin/GNOME-iBus.sh'
その後、NX Clientでログインしなおせば日本語入力ができるはずです。
SCIMを使う
Ubuntu 9.04までの標準だったSCIMを使うこともできます。こちらを使えばツールバーも表示されます。SCIMがインストールされていない場合は、少なくとも以下のパッケージをインストールしておく必要があります。
sudo apt-get install scim-anthy scim-bridge-client-gtk
iBusの場合と同様に、ファイルを作成する必要があります。以下の内容で/usr/NX/bin/GNOME-SCIM.shを作成しましょう。
#!/bin/bash
export LC_CTYPE=ja_JP.utf8
export XMODIFIERS=@im=SCIM
export QT_IM_MODULE=scim-bridge
export GTK_IM_MODULE=scim-bridge
export USE_XOPENIM=t
/usr/bin/scim -d &
/usr/bin/nx-session-launcher-suid gnome-session
さらに、/etc/nxserver/node.conf.d/10scimを以下の内容で作成します。
COMMAND_START_GNOME='/usr/NX/bin/GNOME-SCIM.sh'
これでログインしなおせば、SCIMを使った日本語入力ができるようになります。
セッションの保存
UbuntuデスクトップからログオフすればNX Clientは終了しますが、FreeNXサーバにデスクトップ・セッションの状態を残したままNX Clientを閉じることもできます。ウィンドウの×ボタンをクリックし、表示されたダイアログで「Disconnect」を選択してください。次に接続したときには、終了したときの状態のデスクトップが表示され、作業を継続することができます。設定さえ同じならばクライアントPCを切り替えても接続可能なので、会社のPCでDisconnectし、自宅のPCからそのセッションに接続する、といったこともできます。