KVMスイッチに替わるソフトウェア:x2x

 仮想化の風潮に乗った人は別として、おそらく自宅かオフィスには(複数のオペレーティングシステムを利用する場合は特に)複数のコンピュータがあり、デスク上には1組以上のキーボードとマウスがあるはずだ。KVMスイッチを買わずにデスクのスペースを空けたい場合、解決策の1つは x2x である。簡単に言うと、x2xはTCP/IPネットワーク経由でディスプレイを走らせるX Window Systemの機能を利用する。この状況は、ディスプレイを走らせるというより、むしろ別のディスプレイのマウスとキーボードを動かす、というのに近い。

 x2xは、リモートXサーバに直接接続するか、SSHを経由して実行できる。後者は簡単で安全だ。一方、直接接続する方法はやや難しい。Xシステムの設定を変更する必要があるからだが、それによりシステム間でのカット&ペーストが可能になる。この方法でSSH経由の方法と同等のセキュリティを実現するにはSSHポート・フォワーディングを使う必要があるが、これは難しい。x2xのプライマリマシンで使用されるポートは固定されないからだ。いずれの方法でも、x2xを実行するマシンではXTEST X Windowエクステンションをサポートする必要がある。たいていのLinuxディストリビューションは初期設定でサポートするが、確認するには端末からコマンド「xdpyinfo | grep XTEST」を実行する。応答があれば、最初のハードルはクリアだ。

 x2xをUbuntuまたはDebianベース・ディストリビューションにインストールするには、コマンド「sudo apt-get install x2x」を実行する。残念なことにFedora 9にx2xは含まれないが、Fedora 8には含まれており、これを使えば依存関係の問題に悩まされずにx2xをFedora 9にインストールできる。今回はDries RPMリポジトリにあるパッケージを使った。他のディストリビューションの場合は、パッケージ・マネージャでx2xの有無を確認しよう。ソースからのコンパイルはできないかもしれない。プロジェクトのホームページにあるダウンロード用リンクからソースコードを入手できないからだ。プロジェクトのホストはMercurialリポジトリだが、そこにあるコードは不安定な1.30ベータ版だ。1.27の安定版のコードを入手するには、ディストリビューションのリポジトリを検索する必要がある。1.27と1.30では使用するプロトコルが異なるため、すべてのマシンに同一のバージョンがインストールされていることを確認しよう。

 x2xを使うには、セキュアシェルのデーモンをリモートマシンで実行する必要がある。Ubuntu 8.04.1とFedora 9では、SSHが既にインストールされているはずだ。未インストールの場合、UbuntuではSynapticを使ってインストールするか、コマンド「sudo apt-get install ssh」を実行する。Fedoraではコマンド「sudo yum install openssh」を実行する。

 もう1つ注意事項がある。gdmなどのログインマネージャを使っているときは、XサーバへのリモートTCP接続を有効にする必要がある。Ubuntu 8.04.1では、コマンド「sudo /usr/sbin/gdmsetup」を実行する。[Security]タブを選択し、[Deny TCP connections to the Xserver(XサーバへのTCP接続を拒否)]チェックボックスをオフにする。Fedoraとその他のディストリビューションでは、Xサーバとログインマネージャのドキュメントを参照する。「netstat -a | grep x11」を実行すれば、詳しい調査が必要かどうかを手早くチェックできる。出力に”LISTEN”が含まれていれば、次の手順に進むことができる。

 すべての依存関係が満たされたら、SSHを使う方法の設定は簡単である。まず、ディスプレイの方向を決める。リモートのディスプレイは、プライマリマシンの東西南北のいずれかの方角に配置できる。キーボードとマウスを制御するマシンで、次のコマンドを実行する。

ssh -X remote_machinename_or_ip_address x2x -direction_of_the_remote_display -to :0

 今回使ったテスト用マシンでは、リモートのディスプレイをプライマリディスプレイの左側に置いたので、-westオプションを指定した。何も問題がなければ、リモートマシンにパスワード入力のプロンプトが表示される。パスワードを入力すると、プライマリディスプレイの端にマウスポインタを移動して、リモートディスプレイの画面に表示することができる。

 この方法の利点は、x2xをリモートマシンにだけインストールすればよいことだ。試しに、プライマリマシンでx2xを無効にしてから、SSHを経由してx2xに接続し、実行してみた。完璧に動作した。プライマリマシンの設定ファイルへのアクセスが制限されている場合、この方法はとても便利だ。

 もう1つの方法は、やや複雑だが、コンピュータ間でカット&ペーストを使えることを考えればメリットはある。ただし、今回のテスト環境ではこの機能を実現できなかった。残念なことに、x2xのドキュメントはあまり充実していない。

 この方法では、リモートディスプレイに接続する前にプライマリマシンのIPアドレスかホスト名をリモートマシンのxhost認証に追加する必要がある。これをしないと、プライマリマシンからアクセスを拒否される。リモートマシンのコマンドラインでコマンド「xhost IP_or_hostname 」を入力しよう。エラーがなければ先へ進む。エラーの場合は、リモートマシンのセキュリティ設定をチェックする。この手順が無事に終わったら、次のコマンドをプライマリマシンで実行する。

x2x -to IP_or_hostname:0.0 -direction_of_the_remote_display

 これで準備は完了だ。選択した方向へ、画面でマウスポインタを移動してみよう。すべてが正常に機能すれば、ポインタはプライマリマシンの画面から消えてリモートマシンの画面に現れるはずだ。次に、カット&ペーストを試してみよう。うまくいけば申し分なし。たとえダメでも話が違うと咎めないで欲しい。そういうこともあると先ほど書いた。

 1組のキーボードとマウスで複数のマシンの複数のディスプレイに手軽にアクセスできれば十分なら、x2xは期待に適う。特にリモートマシンにしかrootでアクセスできない場合は便利だ。カット&ペーストの機能が是が非でも欲しい場合やコンピューティング環境にMac OS Xが含まれる場合は、Synergy翻訳記事)を使うことを検討しよう。

David Pendell 20年以上にわたってコンピューター上のオーディオ・ビデオ処理を扱ってきた。ここ10年は組み込み向けから中規模サーバーまで、種々のプラットフォームでLinuxを扱っている。

Linux.com 原文(2008年9月30日)