Encaminhamento Putty X11, algo não está funcionando direito

0

Eu tenho o PuTTY instalado e consigo fazer login com êxito no host remoto. Eu também tenho o Xming instalado no mesmo host que executa o PuTTY. O host remoto está executando o Ubuntu 12.04 e, por padrão, localhost está definido como 127.0.1.1 no arquivo /etc/hosts . Quando efetuo login, a variável DISPLAY está corretamente definida como localhost:10.0 , mas, por algum motivo, os aplicativos X não conseguem abrir a exibição:

[user@host ~]$ xeyes
Error: Can't open display: localhost:10.0

No entanto, se eu definir a variável DISPLAY como 127.0.0.1:10.0 , o X11 será encaminhado com sucesso para o Xming. Se eu alterar localhost na caixa do Ubuntu para resolver para 127.0.0.1 , ele funciona, mas um heap de outros aplicativos fica muito lento, mesmo depois de uma reinicialização. Então isso não é uma solução para mim.

O que eu quero saber é o que está escutando em 127.0.0.1 em vez de 127.0.1.1? É o X? Ou SSH? Como posso forçar o que quer que seja para resolver localhost de /etc/hosts em vez de assumir que é 127.0.0.1 ? De acordo com Wikipedia , os aplicativos podem fazer essa suposição, mas no meu caso particular isso está me causando problemas! Como alternativa, como posso personalizar a variável DISPLAY para que seja automaticamente definida como 127.0.0.1:10.0 no login?

    
por dreamlax 01.08.2013 / 02:29

1 resposta

1

Crie um alias em seu .bashrc / .bash_aliases (dependendo de como seus arquivos de recurso de login estão configurados):

alias x='export DISPLAY="127.0.0.1:$(echo $DISPLAY | sed '"'"'s/.*:\(.*\)//'"'"')"'

Em seguida, digite x no logon.

(Observe que isso lida com o fato de que para cada novo pedido de encaminhamento X feito ao SSHD no host remoto o número atribuído à sua sessão X é incrementado, então pode ser: 10.0 ou pode ser: 11.0 etc).

Você pode colocar o comando de exportação em seu .login , mas isso afetará ALL logins não apenas aqueles feitos de massa de vidraceiro.

EDIT: O OP perguntou por que isso funciona. Eu diria que você tem um alias no seu dispositivo de loopback do endereço 127.0.1.1 e o endereço de loopback padrão como o endereço da interface principal (um ifconfig confirmaria isso). A maioria dos dispositivos loopback será padronizada para um 127.0.0.0/8 netblock e, portanto, o roteamento estará no local para apontar / 8 através do dispositivo lo:

127.0.0.0/8 dev lo  scope link 

localhost (como você já apontou) resolve através do seu /etc/hosts e aponta para o endereço 127.0.1.1 e, portanto, esse é o IP que a maioria dos serviços usará. Você pode ser capaz de alterá-lo para resolver para 127.0.0.1, mas isso provavelmente também envolveria reiniciar todos os seus serviços que utilizam o endereço 127.0.1.1 ( netstat -an mostrará isso) depois de ter alterado no seu arquivo hosts.

    
por 01.08.2013 / 05:02