リモートコンピュータでXプログラムを起動しようとすると、「ディスプレイを開くことができません」

リモートコンピュータでXプログラムを起動しようとすると、「ディスプレイを開くことができません」

2つの仮想マシンがあり、1つはCentOS 7を実行し、もう1つはCentOS 6.5を実行します。 CentOS 6.5仮想マシンでアプリケーションを実行し、7仮想マシンに表示したいと思います。

ssh -X(または)は使用できません-Y。使用するxeyes -display host:displaynumber必要がありますが、今は機能させることはできません。

6.5VMで試したことは次のとおりです。xeyes -display 192.168.1.20:0

次のメッセージが表示されます。

No protocol specified
Error: Can't open display: 192.168.1.20:0

ただしssh -X 192.168.1.20(6.5VMで)これを行うとxeyes正常に動作します。正しく7VMに正常に接続され、xeyesアプリケーションが6.5VMに表示されることを意味するので、ホスト名の問題ではないようです。その逆の場合(たとえば、xeyesを起動するために7VMから6.5VMへのssh)もうまく機能します。

echo $DISPLAY:0両方のマシンに提供されます。X11Forwarding yes/etc/ssh/sshd_configに追加しました。 (AllowTcpForwarding yes度)

忘れた内容があれば、いつでも追加情報をお問い合わせください。私は初心者であり、いくつかの簡単な内容を忘れてしまったかもしれません。

返信ありがとうございます!

答え1

部分的な答え:

Xサーバーは、Unixドメインソケット(ローカル接続用)とTCPポート(6000 +ディスプレイ番号)をリッスンできます。後者は最新のサーバーでデフォルトで無効になっているため、接続できません。

したがって、接続したいサーバー(7番目のVM)でps axu | grep X同様の操作を実行し、Xサーバーを起動するコマンドラインを見てください。-nolistenまたは、存在する場合は削除して追加する-nolisten tcp必要があります-listen tcp

Xサーバーを起動する方法はいくつかあります。お使いのシステムでどのような方法を使用しているかわかりません。そのため、X プロセスの親プロセス ID (PPID) を確認し、何度も呼び出して判別できることをps確認してください。ディスプレイマネージャ(gdmやkdmなど)でもシステムでもかまいません。何を開始しても、これらのコマンドラインオプションを設定する必要があります。

サーバーがポート6000で正しくリッスンしている場合、次のステップはファイアウォールルール(iptables)を確認することです。

関連情報