web-dev-qa-db-ja.com

トンネリング時のX Windows DISPLAY環境変数について

X11Forwardingを有効にしてCentOSを実行しているリモートサーバーにSSH接続したいのですが。

ただし、Xアプリケーションはそのうちの1つでは正しく実行できません。ホストBでは正常に動作します。しかし、ホストAでは、Xアプリケーションを起動するたびに「ディスプレイに接続できませんでした」というエラーが表示されます。

Xウィンドウに関連すると思われるホストAのDISPLAY環境変数を確認した後、その値localhost:10.0を見つけました。ヒント here に従って、DISPLAY=0:10.0を変更すると機能します。ただし、ホストBのDISPLAYlocalhost:10.0であり、正常に動作します。

私の質問は、DISPLAYの値は何を表していますか? localhost:10.00:10.0の違いは何ですか?

localhostはホスト名を識別すると言われています。次に、どのホストが識別しますか、Xアプリケーションが実行されているサーバー(ホストA/B)、またはXウィンドウを表示するローカルクライアントですか?

ドキュメントへのヒントやポインタをいただければ幸いです。

答えの一部は実際にはここにあります: https://stackoverflow.com/questions/746119/how-do-you-use-display-specifications

DISPLAY変数は基本的に3つのコンポーネントです。

<Host>:<display>[.<screen>]

Localhost別名127.0.0.1対0.0.0.0 aka 0に関する限り、次の投稿をご覧ください。

https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127-0-0-1

それが違いを説明しています。

特定のケースでは、0.0.0.0:10.0とlocalhost:10.0は同じ効果がありますが、基本的には次のことを意味します。

  1. ディスプレイ10が設定されているインターフェイスに接続する
  2. lo0でディスプレイ10のリスナーに接続します。

最初のケースでは、すべてのインターフェースのスキャンがlo0で始まるため、実際には違いはありません。lo0は、通常、リストの最初のインターフェースです。

5
Karlson