CentOS 6.7では、ssh
ローカルワークステーションからリモートホストに移動し、ホスト名またはIPアドレスを使用してDISPLAY環境変数をワークステーションに設定すると、Xディスプレイを開くことができません。
例:
$ ssh -Y host1
$ export DISPLAY=ws1:0.0 # workstation hostname=ws1
$ xeyes
Can't not open display
しかし、以下はうまくいきます。
$ ssh -Y host1
$ echo $DISPLAY
localhost:10.0
$ xeyes # works as expected
ホスト名で$ DISPLAYを設定するとX-displayが機能しないのはなぜですか?
ベストアンサー1
重大なセキュリティ問題のため、X サーバーへのリモートアクセスは現在一般的に禁止されています。
ファイアウォールおよび/またはXサーバーの設定により、これらの接続が成功しない可能性があります。
これにより、ローカルおよびUnixドメインソケット接続のみが許可されます。ローカルホスト:サーバー[.display]またはまったくホストがありません:サーバー[.display]利用可能な設定があります。
XサーバーがTCPポートでリッスンしていることを確認するには、次のコマンドを実行し、Xサーバー(トンネリングの場合はSSH)が6000以上の範囲のポートを使用していることを確認できます。
$ sudo netstat -anp|grep -w LISTEN
サーバーがUnixバインディングソケットのみを受信している場合は、次のように表示されますlsof
。
$ sudo lsof -p $(pgrep Xorg)
次の行は Unix ソケットを示します。
Xorg 1874 root 21u unix 0xffff8800d5db4000 0t0 21169 @/tmp/.X11-unix/X0 type=STREAM
TCPポートでリッスンしているすべてのプロセスを識別するには、次のコマンドを実行できます。
$ sudo lsof -P | grep -w LISTEN
たとえば、次はTCPポート22でリッスンするSSHデーモンです。
sshd 1032 ルート 4u IPv6 22727 0t0 TCP *:22(リスニング)