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 tcpopção. Porgdm3, você pode adicionarDisallowTCP=falsea/etc/gdm3/daemon.confno contexto de segurança. Depois você tem que reinicie o gdm3. Agoraps axuf | grep Xorgdeve 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
xhostpara geralmente permitir o acesso de um sistema específico, e.xhost +hostou fornecendo o cookie mágico, veja DISPLAY e AUTORIDADE para mais informações. -
Agora você só precisa especificar a variável
DISPLAYem 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, erroxhostcomando, 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.