XDMCP
X Display Manager
O que é o X ?
É um software de sistema ou de rede, que oferece ao usuário uma interface gráfica. Portanto ele oferece os recursos básicos de uma interface gráfica, tais como, arrastar janela, fazer imagens de bitmap e outras funções básicas de GUI.
No Linux, as principais interfaces gráficas rodam em cima do X, tais como: KDE, Gnome e XFCE.
X Display Manager Control Protocol
Eu sempre busco a melhor maneira de utilizar o Linux, tanto no trabalho como em casa. E uma das grandes vantagens disso tudo, é que eu posso estar reutilizando desktops antigos, como Pentium II, Pentium e até mesmo um 486 como um terminal de X. Utilizando o X e o XDMCP, podemos então montar uma solução de baixo custo para nossa casa ou trabalho. E o melhor de tudo, isto é GRATUITO, e como sigo minha filosofia Free Software de ser, estou aqui dividindo este conhecimento com vocês, sem falar que você estará deste jeito, ajudando o meio ambiente
.
Recentemente, algumas distribuições, como o Ubuntu, dão a opção de fazer esta configuração por interface gráfica, mas eu, como um bom Slacker, irei fazer uma configuração a moda antiga, para fins didáticos. E outra em interface gráfica, para não ter mistérios.
Funcionamento do XDMCP:
O servidor X (interface gráfica) é geralmente iniciado com um gerenciador de usuários e interfaces gráficas (aka Display Manager), no qual iremos digitar o usuário que queremos entrar e escolher o gerenciador de janelas de nossa preferência.
Quase todas as distribuições Linux, já incluem em seu sistema um Display Manager, como o XDM, KDM e GDM. Irei utilizar para explicar os exemplos o KDM e GDM. Portanto, quando o Display Manager é iniciado, ele pode operar de duas formas:
- Ele pode gerenciar o X server rodando na maquina local, que no caso iria ser especificado em “Xservers”.
- Pode gerenciar Xservers remotos (tipicamente Xterminals) utilizando o XDMCP como especificado no arquivo “Xaccess”.
![]()
Vantagens do X:
1- É possível abrir vários servidores X e rodar não apenas aplicativos, mas também gerenciadores de janelas diferentes em cada um. Sim, você pode rodar o KDE e o Gnome, junto com o XFCE e o Blackbox, todos ao mesmo tempo.
2- Os servidores X não estão limitados a rodar aplicativos locais, eles podem rodar aplicativos a partir de qualquer micro da rede, ou mesmo de outros hosts da Internet. Este sistema de compartilhamento do X é chamado de XDMCP.
3- Ao rodar aplicativos remotamente a carga fica toda com o servidor. O cliente utiliza um mínimo de processamento, já que basicamente se limita a enviar os dados recebidos via rede para a tela. Usando um 486 com 8 MB de RAM já é possível ter um terminal X funcional.
4- Ao contrário do VNC, o X consegue uma velocidade de atualização de tela muito boa, mesmo em uma rede de 10 megabits. A principal diferença é que enquanto o VNC transmite a tela na forma de uma imagem, o X transmite apenas texto, com as instruções necessárias para o cliente montar as janelas. Apenas figuras e ícones são transmitidos na forma de imagem.
Configurando o servidor:
Nas distribuições que utilizam o KDM (como o Kubuntu e o Mandriva), procure pelos arquivos kdmrc e Xaccess (que sempre ficam na mesma pasta). Em algumas distribuições (como no Mandriva) eles ficam na pasta “/usr/share/config/kdm/” e, em outras (como no Kurumin e outras distribuições derivadas do Debian), ficam na pasta “/etc/kde3/kdm/“. Você pode usar o comando “locate” para encontrá-los.
Dentro do arquivo “Xaccess“, descomente a linha:
Basta retirar a tralha (#), fazendo com que o asterisco seja o primeiro caractere. Esta linha faz com que o servidor passe a aceitar conexões de todos os hosts da rede. Caso você prefira limitar o acesso a apenas alguns endereços (mais seguro), basta substituir o asterisco pelos endereços desejados.
Um pouco mais abaixo, no mesmo arquivo, descomente também a linha abaixo, novamente retirando a tralha:

- Xaccess
Esta linha é opcional. O Chooser Broadcast permite que os clientes contatem o servidor para obter uma lista de todos os servidores XDM disponíveis na rede (você pode ter mais de um, como veremos a seguir). Isso é feito usando o comando “X -indirect“.
Em seguida, edite também o arquivo kdmrc. Quase no final do arquivo você encontrará a linha:
Enable=false
Basta alterá-la para:
[Xdmcp]
Enable=true
======================================================
Nas distribuições que utilizam o GDM (o gerenciador de login do Gnome), como o Ubuntu, Fedora, CentOS e diversas outras, a configuração é mais simples, pois o XDMCP pode ser ativado através do configurador da tela de login, o gdmsetup.
Acesse-o executando o comando como root, ou através do “Sistema > Adminstração > Tela de Login” (Sistema > Administração > Janela de início de sessão” no Ubuntu). Acesse a aba “Remoto” e, dentro da opção “Estilo” mude a opção de “Início de sessão remota desabilitada” para “Simples com o navegador de faces”. Esta simples alteração faz com que o XDMCP seja ativado, com o uso da tela de login simplificada, que pode ser configurada a seu gosto:

gdmsetup

conexao
Acessando a opção “Configurar XDMCP” você tem acesso a um segundo menu de configuração, que permite definir o número máximo de clientes simultâneos (opção “Máximo de sessões remotas”), que pode ser ajustado de acordo com o número de clientes na rede, ou de acordo com os recursos de hardware do servidor.
Para que as alterações entrem em vigor (tanto no KDM quanto no GDM), é necessário reiniciar o gerenciador de login. Para isso, mude para um terminal de texto (Ctrl+Alt+F2) e reinicie o serviço responsável pelo gerenciador de login, como em:
(ao usar o KDM)
ou
(no Mandriva)
A partir daí, os terminais já poderão abrir a tela de login do servidor através do comando “X -query IP_do_servidor“, como em:
O comando deve ser dado com o terminal em modo texto. Se o cliente já estiver com uma sessão do X aberta, ou você desejar abrir mais de uma tela do servidor ao mesmo tempo, basta adicionar o parâmetro “:2″, como em:
O comando abrirá um segundo terminal gráfico, independente do primeiro, exibindo a tela de login do servidor. Você pode alternar entre os dois usando as teclas Ctrl+Alt+F7 e Ctrl+Alt+F8. Para abrir mais terminais, basta substituir o “:2″ por um número de 3 em diante.
Para automatizar o processo, fazendo com que o terminal abra automaticamente a tela de login do servidor no final do boot, sem passar pelo login local e sem a necessidade de digitar este comando a cada boot, edite o arquivo “/etc/inittab” (no terminal, como root) e altere a linha “x:5:respawn:/etc/X11/prefdm -nodaemon“, que estará no final do arquivo para “x:5:respawn:/etc/X11/X -query IP_do_servidor”, como em:
Isso faz com que o terminal aborte o carregamento do ambiente gráfico local e abra a tela de login do servidor via XDMCP. Este é um velho truque para aproveitar micros antigos, transformando-os em terminais burros. Eu cheguei a usar um Thinkpad 560 como segundo micro durante um bom tempo entre 1998 e 2000 (época em que os notebooks ainda eram muito caros), graças ao XDMCP. Ele era um simples Pentium 100 com 16 MB de RAM e por isso era muito limitado para rodar programas localmente, mas funcionava muito bem como terminal.
Continuando, uma segunda opção é utilizar o comando “X -broadcast” em substituição ao “X -query”. A diferença é que enquanto o X -query exige que você especifique o endereço IP do servidor, o X -broadcast é automático, ele se encarrega de emitir um pacote de broadcast na rede e contatar o primeiro servidor X que responder ao chamado. O “X -broadcast” é sempre usado sem argumentos, como em:
Se você tiver mais de um servidor XDM na rede, uma terceira opção é usar o comando: “X -indirect IP_do_servidor“. Nesse caso, você se conectará a um servidor X configurado, mas, ao invés de obter a tela de login automaticamente, terá um menu com todos os servidores X disponíveis na rede e poderá escolher qual usar a cada sessão. A partir daí o cliente escolhe a qual servidor deseja se conectar a cada boot.
Para que o servidor forneça esta lista é preciso que a linha “* CHOOSER BROADCAST” do arquivo Xaccess esteja descomentada (no KDM), ou que a opção “Honrar pedidos indiretos” esteja ativada no gdmsetup (ao usar o GDM).
Um pequeno truque não documentado é substituir o endereço do servidor pelo endereço da rede, como em “X -indirect 192.168.0.0“. Isso faz com que o pedido de listagem vá para todos os servidores XDM da rede. A vantagem é que o cliente não fica preso a um servidor específico; o cliente sempre conseguirá obter a lista, mesmo que apenas um dos servidores da rede esteja ligado.
A principal vantagem de utilizar o XDMCP é que não é preciso instalar nenhum software adicional no servidor nem nas estações, apenas fazer a configuração necessária. Uma vez conectadas no servidor, as estações utilizam automaticamente a conexão com a web, impressora, gravador de DVD, scanner, etc. instalados nele. Não é necessário configurar os compartilhamentos de impressora e conexão, já que, na verdade, tudo é acessado “localmente” dentro do servidor. A unica diferença é que neste caso as imagem são enviadas às estações, ao invés de serem exibidas no monitor do servidor.
O mesmo acontece com relação aos arquivos. Tudo que é aberto e salvo não sai do HD do servidor. Você pode criar um login de usuário para cada um que for acessar o servidor, assim cada um terá onde armazenar seus arquivos e suas configurações e você precisará fazer backup de um único local. Um único servidor, com um processador razoável, rede de 100 megabits e 1 GB de RAM, pode facilmente atender a 20 estações simultaneamente.
Uma última peculiaridade do X é a forma estranha como é definido quem é o cliente e quem é o servidor. O servidor X cuida do acesso ao hardware, da criação de janelas, leitura do teclado, etc. Ele envia estes dados aos programas (o que inclui o gerenciador de janelas), que são chamados de clientes X e estes devolvem as imagens e outros dados que serão mostrados na tela.
Enquanto você está trabalhando localmente, isso parece bastante lógico. Afinal, o servidor X é o intermediário entre o hardware e os programas, que são os clientes. No entanto, a coisa começa a ficar um pouco mais estranha quando começamos a trabalhar em rede.
Se você usa um 486 como um “cliente” que roda aplicativos de um “servidor” remoto, chamamos o 486 de cliente e o servidor de servidor para que fique mais claro a função de ambos. Afinal, o 486 está servindo quase que como um mero terminal burro, que se limita a mostrar imagens no monitor.
Contudo, tecnicamente falando, o servidor X está rodando no 486, já que é ele quem está com o monitor, teclado, etc. O “servidor de rede”, nesse caso, entra apenas com as imagens que serão exibidas por este servidor X (no 486), ou seja, faz o papel de cliente. Este é um ponto confuso, onde é preciso prestar atenção para não trocar as bolas.
Referencias:
http://tldp.org/HOWTO/XDMCP-HOWTO/index.html
http://www.guiadohardware.net/tutoriais/configurando-servidor-xdmcp/
1- É possível abrir vários servidores X e rodar não apenas aplicativos, mas também gerenciadores de janelas diferentes em cada um. Sim, você pode rodar o KDE e o Gnome, junto com o XFCE e o Blackbox, todos ao mesmo tempo.
2- Os servidores X não estão limitados a rodar aplicativos locais, eles podem rodar aplicativos a partir de qualquer micro da rede, ou mesmo de outros hosts da Internet. Este sistema de compartilhamento do X é chamado de XDMCP.
3- Ao rodar aplicativos remotamente a carga fica toda com o servidor. O cliente utiliza um mínimo de processamento, já que basicamente se limita a enviar os dados recebidos via rede para a tela. Usando um 486 com 8 MB de RAM já é possível ter um terminal X funcional.
4- Ao contrário do VNC, o X consegue uma velocidade de atualização de tela muito boa, mesmo em uma rede de 10 megabits. A principal diferença é que enquanto o VNC transmite a tela na forma de uma imagem, o X transmite apenas texto, com as instruções necessárias para o cliente montar as janelas. Apenas figuras e ícones são transmitidos na forma de imagem.
