Se você deseja executar um comando X
em um sistema remoto e mostrar ao cliente
no seu sistema local, a solução é bastante simples:
-
Você precisa garantir que seu servidor X aceite conexão via
TCP
, hoje em dia isso é normalmente desativado, pois é um problema de segurança. Você basicamente tem que rodar seu servidor Xorg sem o-nolisten tcp
opção. Porgdm3
, você pode adicionarDisallowTCP=false
a/etc/gdm3/daemon.conf
no contexto de segurança. Depois você tem que reinicie o gdm3. Agoraps axuf | grep Xorg
deve mostrar seu X-Server sem a opção-nolisten tcp
.Agora seu XServer deve escutar na porta
6000
, você pode verificar comnetstat -anp | grep 600.
-
Você tem que permitir o acesso do seu sistema remoto à sua Xsession local, isso pode ser feito via
xhost
para geralmente permitir o acesso de um sistema específico, e.xhost +host
ou fornecendo o cookie mágico, veja DISPLAY e AUTORIDADE para mais informações. -
Agora você só precisa especificar a variável
DISPLAY
em seu host remoto, por exemplo:export DISPLAY=localsystem:0
. Agora todos os clientes x automaticamente tente usar seu sistema local. Se você não permitiu o TCP acesso (ou ter um firewall no meio) ou você não forneceu o necessário autorização (por exemplo, erroxhost
comando, não copiou o xauth cookie) seus comandos não poderão se conectar ao seu sistema.
Por favor, esteja ciente de que a conexão não é criptografada e você basicamente
digitando texto simples. Se você usa xhost
, também permitiu que todos os clientes desse
acesso de host específico ao seu Xserver, por exemplo eles podem ler entradas de teclado, etc.