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


9

両方とも実行中のリモートサーバーにSSHで接続したい CentOSX11Forwarding 有効にします。

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

確認後 DISPLAY 私はXウィンドウに関連していると思うホストAの環境変数は、私はその値を見つけた localhost:10.0。ヒントに従う ここに 、 私は変える DISPLAY=0:10.0 そしてそれはうまくいきます。しかしながら、 DISPLAY ホストB上はまだ localhost:10.0 そしてうまくいきます。

私の質問は、その価値は何にありますか DISPLAY 表す?違いは何ですか localhost:10.0 そして 0:10.0

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

ドキュメンテーションへのどんなヒントまたはポインターも評価されるでしょう。

回答:


5

答えの一部は実際にここで見つけることができます: https://stackoverflow.com/questions/746119/how-do-you-use-display-specifications

DISPLAY変数は基本的に3つの要素からなります。

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

localhost別名127.0.0.1 vs. 0.0.0.0別名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で始まるため、実際には違いはありません。これは通常、リストの最初のインターフェースです。


初めはありがとう。私は本当の問題があなたの助言に従うのを見つけます。本当の問題はそれです localhost 束縛されている 192.168.1.200 (そのようないくつかの特定のIP。私は私の本当の設定を公開したくない。)ホストAで DISPLAY=127.0.0.1:10.0。 X転送はループバックインタフェースでのみ機能しますか?
Summer_More_More_Tea

localhost Linuxではループバックインタフェース(lo0)にバインドされる特別な名前で、実際のIPアドレスにはバインドされません。実際に実行することでバインディングを確認できます sudo netstat -apn | grep 6010 SSHはそのポートでディスプレイ接続を待機しているはずです。私が言うことができる限り 127.0.0.1 のみ。
Karlson

問題が解決しました。どうもありがとうございました。
Summer_More_More_Tea
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.