2009-08-07 15 views
0

これは奇妙な疑問のように思えるかもしれませんが、現在取り組んでいるプロジェクトの価値があります。WindowsサーバからリモートでXウィンドウのアプリケーションを実行する

XMing(またはCygwinx)を実行しているWindows 2003サーバーがあります。私はUbunutuからX11転送が有効になっているsshを使用してサーバーに接続しています。 Windows 2003サーバー(xeyesなど)でXアプリケーションを起動すると、ローカルのUbuntuマシンではなくWindowsサーバーにアプリケーションが表示されます。

Xmingは完全に実装されたXサーバですので、Xアプリケーションをリモートクライアントに提供することをサポートすると仮定しました。なぜこれがうまくいかないのか?

+0

ローカルハードウェア上にX11サーバが表示されている場合、Linuxマシン上にXサーバを表示する必要はありません.X11サーバでX11サーバを使用することができます。 また、これはプログラミングに関する質問でもありません。 – nos

答えて

1

sshサーバーのようなサウンドは、X転送要求を受け付けていません。ログイン後、環境を確認すると、DISPLAY変数が設定され、ホストとディスプレイを示します(例:localhost:10)。それがない場合、Xクライアントはデフォルト(例えば、localhost:0)のDISPLAYを使用する。

また、リモートマシン上のXサーバー(sshに入っているもの)はこれに関係なく、そこにインストールされているXクライアントだけです。リモートマシンにssh接続すると、ローカルのUbuntuホストがXサーバになり、リモートXクライアントからの接続を受け入れます。

+0

SSH経由で初めて接続すると、表示変数が設定されません。 DISPLAY = 127.0.0.1:0.0に手動で設定しました。これにより、xアプリケーションがリモートデスクトップに表示されます。 –

+0

X11転送を有効/設定するためのsshdの設定オプションがあります。たとえば、私のLinuxサーバでは、/ etc/ssh/sshd_configファイルに "X11Forwarding yes"と書かれています。この設定がWindowsサーバーのどこにあるのかわからない – libjack

+0

最後にこの設定を行うことができました。問題はアクセス制御の設定にありました。単純な解決法(安全な方法ではないが)は、X Serverのアクセス制御をオフにすることです。クライアントマシン上でXサーバを起動するには 'xming -ac -multiwindow'を、次にホストマシンには 'ssh -X userAip'を、最後に 'export DISPLAY = clientip:0.0'に接続します。 –

0

何が起こっているのは正しい動作です。 Xサーバ(XMing)はWindows 2003の で動作し、Xeyesアプリケーション(クライアント)を提供しています。いくつかの編集とウィキペディアから

...

Xサーバーはグラフィカルな出力のための要求を受け入れます(あなたのW2003サーバーの表示)と(キーボード、マウス、またはタッチスクリーンからの)ユーザー入力を送り返します。

Xウィンドウシステムのクライアント/サーバー用語 - サーバーであるユーザーの端末とクライアントであるアプリケーションは、用語が逆に見えるため、新しいユーザーを混乱させることがあります。しかし、Xはエンドユーザーの視点ではなく、アプリケーションの視点を取ります.Xはアプリケーションに表示とI/Oサービスを提供するため、サーバーです。アプリケーションはこれらのサービスを使用するため、クライアントです。

+1

これは正しい動作であることに私は同意しません。 XeyesはUbuntu sshセッション(Windows 2003サーバに接続)から起動されているので、WindowsデスクトップではなくUbuntuデスクトップに表示する必要があります。この状況を逆にすると(WindowsサーバーからUbuntuボックスに接続する)、正しい動作が得られます。つまり、XeyesはWindowsのsshセッションで起動され、Windowsに表示されます。 –

関連する問題