Tenho brincado com o encaminhamento do X11 nas últimas horas e até agora consegui encaminhar o servidor X do meu PC desktop para o meu laptop, usando o X11VNC como servidor e o X2VNC como cliente. X2VNC usa Xinerama para fornecer um comportamento de tela dupla entre meu laptop e meu PC desktop.
Na verdade, é realmente ótimo!
Eu sei que a maioria dos sistemas Linux executa ambientes Xorg e desktop em TTY7.
Portanto, eu estava pensando: é de alguma forma possível ter o túnel VNC vinculado ao seu próprio TTY?
Seria ótimo poder alternar entre dois TTYs para escolher qual máquina gerenciar. E eu gostaria mais dessa abordagem do que usar o Xinerama ou uma GUI.
Responder1
Acho que isso não é realmente uma resposta, mas pode ser um ponto de partida.
Comecei vários servidores X extras usando o xinit assim;
xinit -- :1 tty3
xinit -- :2
xinit -- :3 tty5
xinit -- :4
Parece que posso até iniciar várias sessões do gnome3 e do xfce em diferentes monitores virtuais
startx -- :2 tty3
startx -- :3 tty4
E agora posso começar as coisas nessas sessões exportando o DISPLAY var export DISPLAY=:3
e então selecioná-lo usando Ctrl-Alt-F2, F3 etc.
No entanto, não tenho absolutamente nenhuma ideia do que estou fazendo (estou trocando DISPLAY, sessão, console ou tty?), é muito legal, como você disse... ;-)
[tomh@workstation001 ~]$ export DISPLAY=:4
[tomh@workstation001 ~]$ google-chrome
Responder2
Eu sei que isso é antigo, mas:
xinit -e ssh -XYC $HOSTTOSSHTO startx -- :1
A única desvantagem que vejo é que você não pode fechar o terminal de login depois que a sessão é iniciada. Mova-se para frente e para trás com CTRL+ ALT+ F#como outras postagens mencionadas. Eu faço isso com meu Raspberry Pi o tempo todo e também com servidores e outros na Internet (um pouco lento). Você também pode trocar startx
por /usr/bin/icewm
, ou qualquer outra coisa openbox
.startKDE
Responder3
Parece que encontrei uma solução adequada para isso.
Criei um usuário especificamente com o propósito de conectar-me ao meu computador desktop.
Dentro do ~/.xinitrc do usuário no meu laptop, tenho a seguinte linha (/home/desktop/.xinitrc):
exec vncviewer 192.168.1.2
192.168.1.2 é o ip do meu computador desktop na minha rede.
No meu caso agora uso Tiger VNC como cliente e ainda X11VNC como servidor em meu PC desktop.
Qualquer cliente servirá, eu acho.
A maneira como funciona agora é: eu insiro tty2 por meio de CTRL + ALT + F2, faço login como o novo usuário da área de trabalho e, em seguida, inicio x com xinit -- :1
. O novo servidor x iniciará em tty8, pois já tenho meu xserver principal rodando em tty7.
O vncviewer é executado e conectado com sucesso ao meu PC desktop, fornecendo a tela inteira e barras de rolagem caso a resolução do PC desktop seja maior que a do meu laptop.
Agora posso alternar facilmente entre meu laptop e meu desktop com CTRL+ALT+7 e CTRL+ALT+8.
Este é o procedimento completo, assumindo que você usa Tiger VNC (a única diferença é exec vncviewer x.x.x.x
):
- Criar novo usuário com
adduser desktop
- A configuração do novo usuário está de acordo com os valores padrão, então continue pressionando Enter até que o usuário seja criado.
- Abra
/home/desktop/.xinitrc
(lembre-se de fazer isso como root, a menos que você esteja logado como desktop e também esteja ciente das permissões) e limpe o arquivo (caso ele tenha algum conteúdo) e digite esta linha:exec vncviewer x.x.x.x
- Substitua o
x.x.x.x
pelo endereço IP desejado. - Salve o arquivo.
- Insira um tty não utilizado usando CTRL+ALT+X onde X é um número de 1 a 9.
- Faça login como
desktop
- Inicie um novo servidor X com
xinit -- :1
, você poderá usar uma exibição diferente se :1 já estiver em uso. - Você será enviado para o novo tty onde o servidor X é iniciado e pronto! Tiger VNC agora deve estar conectado ao endereço IP que você escolheu.
Vocêpoderiaterá problemas se você tiver um ambiente de desktop que inicia automaticamente quando você inicia o X de qualquer usuário. Portanto, tenha isso em mente, se as coisas não funcionarem como deveriam.