自マシン上からリモートにあるXサーバーのプログラムを実行できるように解説していきます。
|
|
■想定する環境
まず、Xクライアント端末のホスト名を ns1.kororo.jp とし、Xクライアント上のプログラムを実行させる端末(Xサーバー)のホスト名を
ns2.kororo.jp とします。わかりやすく言えば、ここでの説明では最終的に、ns2.kororo.jp
の画面上に ns1.kororo.jp のXアプリケーションが表示されるようになります。
※Linxu上でのクライアント/サーバーとは、現在、操作している端末をサーバー(Xサーバー)
と言い、各種プログラムが入っているホスト側をクライアント(Xクライアント) と呼びます。
■自マシン上(Xサーバー=ns2.kororo.jp)での設定
まず、デフォルトではローカルホスト(自マシン)以外のコンピュータからのアクセスは拒否するように設定されているので、xhost
コマンドを使用して、Xアプリケーションを実行するマシン(ここでは、ns1.kororo.jp)からのアクセス許可の設定を行っておきます。
因みに、今、追加したホストを削除するには、以下のようにします。
ここで、アクセス許可の設定がきちんとなされたかを確認するために、単にxhost とコマンドを打ち込んでみましょう。以下のように上記で設定したホスト名が表示されていればOKです。
# xhost
access control enabled, only authorized
clients can connected
INET:ns1.kororo.jp
|
|
■リモートマシン(Xクライアント=ns1.kororo.jp)での設定
次に、リモートにあるXクライアントでの設定を行っておきます。Xクライアントの出力先のディスプレイをXサーバーに設定するには、環境変数
DISPLAY
にXサーバーのホスト名、もしくはIPアドレスを指定しておきます。ターミナル上で、env もしくは、printenv
コマンドを実行すると現在のDISPLAYの環境設定値を表示させる事ができます。デフォルトでは「:0.0」となっています。なお、Windowsからリモートログインしている場合は、以下コマンドを実行しても何も表示されません。
$ env | grep DISPLAY
DISPLAY=:0.0
もしくは、
$ printenv DISPLAY
:0.0 |
|
それでは、実際にDISPLAYの環境変数を変更してみます。書式は以下の通りです。
# DISPLAY=Xサーバー名:ディスプレイ番号.スクリーン番号 |
|
実際に設定を行うには以下のように設定します。以下コマンドを実行する事で、ディスプレイの出力先がns2.kororo.jp
に設定されます。
# DISPLAY=ns2.kororo.jp:0.0
# printenv DISPLAY
ns2.kororo.jp:0.0 |
|
以上で設定は完了したので、実際にXクライアント上のプログラムをXサーバー上のディスプレイに表示させて見ましょう。表示させるには、Xクライアント上でコマンドを入力しても、Xサーバ上からXクライアントにリモートログインして表示させる事もできます。まず、環境変数DISPLAYを設定したXクライアント上でmozilla
を実行してみます。Xクライアント上では、mozillaは起動しませんが、Xサーバー上でmozillaが起動されたのが確認できると思います。Xサーバー上で起動したmozilla
を終了させるには、Xクライアント上で、
CTRL+C を入力します。
# /usr/bin/mozilla
CTRL+C # Xサーバー上のmozilla
を終了させる
|
|
以下の画面は、Xサーバ(ns1.kororo.jp)上からXクライアント(ns2.kororo.jp)にログインして、xterm
プログラムを実行させた例です。実際に操作しているマシンは、ns2.kororo.jpですが、あたかも自マシン上で操作しているかのように、ns2.kororo.jp
のプログラムを実行できるようになります。
なお、全てのホストからのアクセス許可/拒否設定を行うには、以下のようにします。
|
xhost + |
全てのホストからの接続を許可 |
|
xhost - |
全てのホストからの接続を拒否(アクセスリストは削除されません) |
|
■次回、ログイン時/再起動時にも有効にする
なお、次回ログイン時や、次回再起動時にもXクライアント上のプログラムが試用できるようにするためには、.bash_profile
もしくは、.bashrc に環境変数DISPLAYの値を記述しておきます。
# vi ~/.bash_profile
DISPLAY=ns2.kororo.jp:0.0 |
|
■xauth による認証
xhost はセキュリティ上、あまり好ましいとはいえないので、認証を必要とするxauth について解説していきます。以下のようにコマンドを実行すると、現在のクッキーが表示されます。
# xauth list :0.0
ns1.kororo.jp/unix:0 MIT-MAGIC-COOKIE-1
36d8514e3d0a1bf2949ab7ab4501ac01 |
|
# xauth list :0.0
ns1.kororo.jp/unix:0 MIT-MAGIC-COOKIE-1
36d8514e3d0a1bf2949ab7ab4501ac01 |
|