~からhttps://unix.stackexchange.com/a/17278/674
を実行すると(
ssh -X localhost
おそらく$DISPLAY
)localhost:10.0
。比較済み:0.0
、SSHで接続していないときの値です。 (この.0
部分は省略可能です。画面番号ですが、複数の画面ほとんど使用しません。 ) 2 種類の X ディスプレイが表示されます。
- 古いコンテンツなしでローカルに表示されます
:
。- TCPディスプレイ、
:
。経由で
ssh -X localhost
アクセスできます。Xサーバー渡すモニター2個ただし、アプリケーションは、:NUMBER
ローカルソケットと共有メモリを介してサーバーにアクセスする方法、遅く、HOSTNAME:NUMBER
一部の拡張機能が無効になっているTCPを介してサーバーにアクセスする方法など、さまざまな方法を使用します。
Xサーバー、モニター、スクリーンの接続との違いは何ですか?
「Xサーバーが両側に表示されます」とはどういう意味ですか? 1つの「モニタ」は1つのディスプレイサーバ、すなわち1つのXサーバを意味し、2つの「モニタ」は2つのディスプレイサーバ、すなわち2つのXサーバを意味する。
「マルチスクリーン」とはどういう意味ですか? 「画面」とはディスプレイモニタを意味しますか?
ありがとうございます。
答え1
X11の基本とその背後で何が起こるのかを説明するための視覚的な例を見てみましょう。
この例では、ホストAに2つの「画面」を持つローカルX11サーバーがあります。通常、すべてのモニターにまたがる1つの画面(:0.0)を持つサーバーは1つだけです(複数のモニターアプリケーションを簡単に作成します)。 HostBには2つのXサーバーがあり、2番目のサーバーには物理ディスプレイ(VNC用の仮想フレームバッファなど)がありません。 HostCはモニターのないヘッドレスサーバーです。
ターミナル1a、2a、5a、6a:ローカル端末を開き、ディスプレイを:0.0(デフォルト)または:0.1に設定すると、グラフィックプログラムの描画呼び出しがメモリを介してローカルXサーバーに直接送信されます。
ターミナル1b、5b:サーバーにSSH接続する場合、通常、ディスプレイは自動的にローカルXサーバー(利用可能な場合)に設定されます。それ以外の場合はまったく設定されません(理由はターミナル3を参照)。
ターミナル2b、6b:SSH経由でサーバーに接続し、「-X」パラメータを介してX11転送を有効にすると、SSH接続を介してトンネルが自動的に作成されます。この例では、ホストBのTCPポート6010(6000 + display#)はホストAのポート6000(X Server#0)にトラフィックを転送します。通常、最初の10個のディスプレイは「実際の」サーバー用に予約されているため、sshは#10を再マップします(ログイン時にssh -Xを使用して接続する次のユーザーは#11を受け取ります)。追加のXサーバーは起動されず、ホストAのXサーバー#0に対する権限はsshによって自動的に処理されます。
第4ターミナル:ホスト名(localhostなど)をdisplay / screen#の前に追加すると、X11はメモリの代わりにTCPを介しても通信します。
第3ターミナル:SSHトンネルを最初に設定せずに、ネットワーク経由で直接X11コマンドを送信することもできます。ここで主な問題はネットワーク/ファイアウォールなどです。これを許可するように構成し(X11は実際には暗号化されていない)、Xサーバー(xhostsまたはXauthority)に対する権限を手動で付与する必要があります。
あなたの質問に答える
Xサーバー、モニター、スクリーンの接続との違いは何ですか?
ディスプレイのみを参照一部Xサーバーどこかに。 「2つのディスプレイ」という用語は、ローカルシステムの「:0.0」(「ローカルディスプレイ」)がSSHターゲットの「localhost:10.0」(「TCPディスプレイ」)と同じであることを意味します。 「画面」は、Xサーバーのさまざまな仮想モニタ(フレームバッファ)を表します。 「localhost:10.0」はローカルXサーバーにのみリダイレクトされ、SSHターゲットから起動されたXサーバーはありません(シナリオターミナル2b / 6bを参照)。