BlogBlogs.Com.Br

quarta-feira, 26 de setembro de 2007

X11 Forwarding no Ubuntu 7.04

Demorei pra postar pois estou na correria , consultoria nova , novo ambiente , novo estilo de trabalho. Junto com a consultoria nova vieram “problemas” novos.

Um deles tomou um pouco mais de tempo.

Vamos ao cenario.

Precisavamos conectar em uma maquina que estava no cliente e rodar uma aplicacao com interface grafica, ate ai tudo bem, mas inicialmente 2 empecilhos surgiram:

1 – Existia uma VPN Cisco no meio.

2 – O servidor (Solaris) nao possuia interface grafica.

Fomos a caça de um client VPN.

Instalamos uma PPTP GUI . Obvio que nao iria funcionar , a VPN era Cisco (darrr).

Perdemos algumas horas tentando instalar um Client Cisco tempo suficiente pra dizer ... NAO PRESTA. Creio que o principal dos motivos e' que toda vez que atualizarmos o kernel teremos que recompila-lo. Sem contar que ele e' proprietario.

Bom , instalamos o vpnc. Nao e' rico graficamente como o Client Cisco, mas funciona , e isso e' o que interessa.

sudo apt-get install vpnc


Conectei na VPN . Uma vez dentro , conectamos no servidor via ssh habilitando o X11 forwarding.

ssh +X servidor


Depois tentei usando -Y. E sempre recebia a mesma mensagem de erro:


ERROR: could not initialize interface awt - exception: java.lang.InternalError: Can't connect to X11 window server using 'meuIp:0.0' as the value of the DISPLAY variable



Um amigo aqui da Summa (Natanael Maia) ja havia me adiantado que isso iria acontecer e que estava acontecendo pois o servidor X deveria estar ouvindo na porta 6000. Mais um problema.

Aqui comecou a saga... vamos aos arquivos que devem ser editados:

Primeiro va em /etc/ssh/ssh_config e coloque as linhas (por default elas vem comentadas):

ForwardX11 yes

ForwardX11Trusted yes

TCPKeepAlive yes


Abra o arquivo /usr/X11R6/bin/startx e certifique-se de que a variavel esteja vazia.

serverargs=""


O startx procurara por 2 arquivos ao inicializar, primeiro ele buscara no home do usuario por .xinitrc e .xserverrc e depois pelos arquivos xinitrc e xserverrc que ficam em /etc/X11/xinit/

Abra o arquivo /etc/X11/xinit/xserverrc e comente o parametro:

-nolisten tcp

Agora vamos nos certificar que o “firewall” local nao esta bloqueando o trafego. Va para o arquivo /etc/X11/gdm/gdm.conf e procure pela propriedade DisallowTCP, em [Security]:

DisallowTCP=false


Ainda no terminal:

sudo gdmsetup


Na aba “General” marque a opcao :

Restart the xServer with each login


Isso fara com que as atualizacoes surtam efeito.

Na aba “Remote” selecione Style Plain.

Pronto , isso deve funcionar. Reinicie o servidor X.


PS: O servidor deve estar ciente de tudo isso. Uma variavel DISPLAY deve ser setada no servidor e ele deve estar com o X11 Forwarding habilitado.

Nenhum comentário: