2007年11月12日月曜日

X端末の設定方法 ~XサーバとXクライアント~

Xの基本を勉強しなおしたところ、昔からXサーバとXクライアントをごちゃごちゃに覚えていることに気づきました。解釈した結果、Xクライアントは、gnome-terminalや、wiresharkなどアプリケーションを指し、XサーバはXクライアントが要求したキーボード操作やマウス操作などの入力のほか、どこに何を表示するかなど出力を制御しているとのこと。

X端末を使用することで、以下のような事が可能になります。

例:1
自分が使用しているアプリケーションを、相手の画面へ出力させる
(画像を渡したいときなどに、相手の許可なく表示することが可能)

この場合、表示させるアプリケーションがXクライアント(自ホスト)出力先がXサーバ(リモートホスト)

例:2
ssh等でリモートホストへ接続し、wiresharkなどのアプリケーションを接続元のディスプレイで表示させる

この場合、リモート先で起動したwiresharkがXクライアント(リモートホスト)出力先がXサーバ(自ホスト)

例:2の場合、通常エラーになりますが、理由はリモートホストのDisplay出力設定がリモートホストに向いているから。

【行うこと】

・サーバ側で、xhostで受け入れるクライアントを設定します。 (現在はxauthを使用するよう推奨されている)

・サーバ側で、tcp nolistenの設定を解除します。 (最近のは、Xのtcp接続が許可されていない)

・クライアント側で、環境変数の設定(DISPLAY)を行う

【手順】

1.サーバ側で、xhostコマンドを実施
# xhost 192.168.0.1 IPでの指定
# xhost client.localdomain ←ホスト名での指定
# xhost + ←全てのホストを許可 (※もちろん推奨ではありません)


2.サーバ側で、psコマンドを実行しXがnolisten tcpで起動していないか確認(nolistenオプションがついていない場合は、5.へ進みます)
# ps aux|grep X


3.nolistenオプションがついていた場合、以下のファイルの[security]セクションの#DisallowTcp=trueDisallowTcp=falseに変更
/etc/X11/gdm/gdm.conf


4.サーバ側のXを再起動し、psコマンドでnolistenが消えていることを確認


5.クライアント側で、環境変数の設定を実施
# export DISPLAY=192.168.0.20:0.0 

Xサーバを指定 0.0はディスプレイ番号0でもOK

6.クライアントからwiresharkを起動すれば、Xサーバ側に表示される。

0 件のコメント: