ローカルマシン(A)とRaspberry Pi 3(B)があります。
BにはHDMIモニターが接続されており、RaspbianOSを実行しています。
XアプリケーションをAで実行したい-たとえば、AにあるLibre Office Impressプレゼンテーションを、Bに接続された画面に表示(表示)します。
Aマシンの前でそれをやりたい:
ssh -X to_A
によるものではなく、私は探していません:
from_a $ ssh -X machine_B
またはrdp/remmina/vncクライアントのいずれかで実行できます)from_a $ ssh machine_b from -> at_a_but_sshed_onto_b $ xhost + && export DISPLAY=:0 xeyes
))。私が試したのは、リモートXアイテムを実行するためのセットアップ(B)でした...何も忘れていない場合-nmap -p6000 machine_B
がそのポートを返したのでclosed、そして実行中( Aのコマンドラインから):
A_machine $ env DISPLAY=B_machine:0 xeyes
ここで、B_machineは/etc/hosts
に設定されており、~/.ssh/config
は失敗します。
私が疑うのは、.XauthorityからX11magic_cookiesをコピーする手順を完全に見逃していることです...しかし、この手順は必要ないかもしれませんし、もっと簡単な方法があります仕方?
編集:@Rostislav Kandilarovの質問への回答-lightdmがXサーバーを起動しているように見えますが、すぐに月曜日を確認し、--nolisten tcp
で始まるかどうかを確認できるようになります。
(編集済み、以下の古い回答)
Bに触れずにAからこれらすべてを実行するという追加の要件があるため、BでXサーバーを実行し、Aのアプリケーションで接続する場合の問題は、このXサーバーが入力デバイス(キーボード、マウス)のみを使用することです。 )Bに接続されています。したがって、アプリケーションを使用するには、これらの入力デバイスを使用する必要がありますが、これは不要です。
原則として、Aからの入力デバイスを共有しようとすることもできますが、その後、構造は実際にビザンチンになり始めます...
したがって、 [〜#〜] vnc [〜#〜] は、この状況でははるかに簡単です。
Aでvnc4server
を設定します。このサーバーは、AでアプリケーションのXサーバーとしても機能します。Aでxvnc4viewer
を起動し、それを使用してアプリケーションを起動および制御します。 Bで別のvncviewerを起動し、Aのサーバーに接続すると、アプリケーションが表示されます。 directvnc
のように単純にすることも(RaspPiのフレームバッファーを直接使用し、Xを迂回する必要がないため、RaspPiの作業負荷が少なくなる)、またはBで既存のXサーバーを実行し続ける場合はxvnc4viewer
。
最も簡単な方法は、 [〜#〜] vnc [〜#〜] のようなリモートデスクトップを使用することです。これは、ディストリビューションのパッケージとしてすでに利用可能である可能性が非常に高いです。これは通常、sshなどを介したX転送よりもはるかにうまく機能します。これは、圧縮がはるかに優れており、ワイヤ上でXプリミティブを使用しないためです。
もちろん、ssh経由または直接でX転送を設定する方法もいくつかあります。たとえば、ssh -X
を介してBからAにログインし、Aでアプリケーションを実行し、出力をBに表示することができます(逆方向を除外しましたが、これについては何も言わなかったので、あなたがそれを望むかどうかはよくわかりません)。
[〜#〜] xdmcp [〜#〜] を介してリモートセッション用にXサーバーを構成することもできます。または、適切なxauth
およびDISPLAY
設定を使用して単一のアプリケーションでリモートXサーバーを使用するようにします。
ただし、最初にVNCを試すことをお勧めします。
したがって、(B)でRaspbian OSを使用している場合、おそらくlightdmを使用していると思われるように、特定のカスタマイズを行っていない場合。
確かに、lightdmにXサーバーにtcp(ポート6000)をリッスンするように指示する必要があります。これを行うには、グローバルセクション_xserver-allow-tcp=true
_のconfファイルに_[Seat:*]
_を設定します。明示的に_xserver-command=X -listen tcp
_を指定する必要がある場合もあります(見てください ここ )。 _/etc/lightdm/lightdm.conf.d/*.conf
_内の追加ファイル、または_/etc/lightdm/lightdm.conf
_内の直接のいずれかを選択できます。
次に、セキュリティをあまり気にしない場合は、おそらく(B)xhost + IP_OF_(A)
のような何らかの形式の_xhost +
_コマンドで実行する必要があります。 LANの脆弱性を気にする場合最初にtcpを介して直接Xを使用するべきではありませんが、sshがないと、MITを交換するために少しハックの硬さを与えることができます-(B)xauth extract - $DISPLAY | ssh (A) xauth merge -
で実行することによる(A)と(B)の間のMAGIC-COOKIE。
次に、OSのバージョンに応じてlightdm _service lightdm restart
_または_systemctl restart lightdm.service
_を再起動します。
最後-Xorgが6000でリッスンしているかどうか(B)を確認します_netstat -antp | grep -F 6000
_