2010年02月22日
ubuntu間でX windowを使ったリモートデスクトップ
Intel Core i7を搭載した新しいPCが来た。
古いPCは引き続き端末として使い、処理は新しいPCに集中させることにする。
家族には、新PCのコンソールをwindowsで使ってもらい、ぼくは裏でリモートデスクトップで旧PCを使う計画。
アーキテクチャは、下図のようになる。
旧PCは、X端末としてディスプレイサーバのみとし、ウィンドウ処理含めてアプリケーション稼働は新PCにする。
原理は以下のとおり。
旧PCをローカルPCといい、X windowのディスプレイサーバが動作している。ローカルPCは画面描画機能および入出力を利用者に提供する。
新PCをリモートPCといい、ウィンドウ制御、アプリケーションが動作しする。利用者との入出力は、XプロトコルでローカルPCと通信をする。
手順は、ローカルPCでディスプレイマネージャを起動し、sshでリモートPCにログインする。
リモートPC上でウィンドウマネージャを起動し、Xプロトコルで表示をローカルPCに飛ばすこととなる。
例として、以下のIPで詳細の手順を示す。
- ・ローカルPC:192.168.1.1
・リモートPC:192.168.1.2
ローカルPCとリモートPCでは、共にubuntu9.10が起動している。
(1)ローカルPCのGUI(X window)を落とす端末を開いて、以下のコマンドを入れる。
|
テキストコンソールが表示される。
(2)ローカルPCでディスプレイマネージャを起動
|
ルートウィンドウが表示され、枠のないxtermウィンドウが開く。ウィンドウマネージャが起動していないので、ウィンドウ操作はできない。
マウスカーソルをxtermに合わせて、コマンド入力できるようにする。
|
リモートPCのXクライアントが、ローカルPC上のディスプレイを使うことを許可する。
(4)リモートPCにログインする
|
ーXオプションをつけることで、ログインしたリモートPCからのXプロトコル通信をsshコネクションに乗せて通信することが可能となる。X protcol port forwarding機能。
補足-Xオプションをつけずにログインして、DISPLAY変数を以下のように設定することでも、リモートデスクトップは成立する。$ export DISPLAY=192.168.1.1:0
(5)ウィンドウマネージャを起動する
|
これで、gnomeおよび関連ソフトが起動し、その表示はローカルPCにforwardingされてくる。
終了する時は、(2)で開いたウィンドウをCTRL+Cして、exitすると、ローカルPCのテキストコンソールに戻る。
基本的な手順は、以上であるが、はじめからテキストコンソールで起動するとか、リモートPCに自動ログインするなど、実用にはもっと手順を自動化させる工夫が必要である。