Esqueça VNC, rDesktop ou similares, o FreeNX é a opção Open Source para desfrutarmos da tecnologia desenvolvida pela NoMachine. A grande vantagem consiste na possibilidade de uma navegação confortável em ambientes X remotos, sobre inclusive conexões discadas, parece mentira não é? Faça você mesmo um teste, tenho certeza que te surpreenderás.
Ao final de 2005, me deparei com uma situação que considerei naquele instante um problema gigantesco. Tínhamos que migrar nosso atual sistema de automação, rápido e muito funcional em modo console para uma solução GUI toda bonitinha, porém extremamente "gorda", se compararmos ao maravilhoso mundo do terminal em modo texto. Com a interface GUI ganhamos também um banco de dados, saímos do Dataflex para Firebird.
Minha provedora da solução de automação apresentou-me o NX da NoMachine, solução de terminal GUI e que me custaria algumas centenas de euros. Em busca da minimização de custos, procurei pela net uma solução free que foste similar ao NX e para minha felicidade encontrei algo melhor do que esperava, o FreeNX, versão livre do servidor do NX e como o cliente do NX é free, tinha grande parte de meu problema resolvido.
Então fui a luta, meu desafio agora era fazer o FreeNX funcionar no Slackware, minha distribuição predileta e era a que tinha instalada em nosso parque de desktops. Procurei na net artigos, pacotes, dicas, ... e nada de FreeNX e NX para Slackware. Após muitas idas e vindas encontrei uns pacotes, aprendi um pouco sobre como funciona a tecnologia NX e pela falta de documentação sobre o mesmo resolvi escrever este artigo.
O NX utiliza-se de um "protocolo" mais inteligente que os ambientes remotos mais conhecidos, como VNC, rDesktop, XDMCP... A sua essência está baseada no método de funcionamento convencional da interface gráfica X, apoiada à um conjunto de recursos tecnológicos existentes.
No lugar e na hora certa, é como estão dispostas as ferramentas que compõem a base do "Protocolo NX". XDMCP, ssh, proxy e zlib fazem a diferença no NX, podendo abrir sessões remotas do X, transmitindo somente pequenas instruções e pixmaps, com compressão dos dados em zlib e sobre a segurança do SSH, sendo possível estabelecer conexões SSL.
O sistema base do X proporciona, por exemplo via ssh ("ssh -X ..."), uma interface X remota. Funciona bem sobre uma rede local, podendo ainda ser compactado com a opção "-C". No entanto em conexões discadas (banda baixa) não é nem um pouco confortável... tem uma dica aqui no VOL que mostra como ativar este serviço:
Com o FreeNX a história é um pouco diferente, temos em cada ponta um sistema de proxy de arquivos, ai esta a grande sacada, o protocolo NX além de enviar somente as partes da tela que tiveram modificações, com o sistema de cache de arquivos que o proxy proporciona quanto mais se navega melhor fica a performance, ao contrário de outros sistemas de conexão remota que sempre enviam screenshots da tela toda. Veja a figura:
A tecnologia desenvolvida pela equipe da NoMachine foi mais longe e estendeu sua compatibilidade a sistemas gráficos remotos conhecidos, desenvolvendo uma interface para comunicação com o proxy da NX. Atualmente os protocolos compatíveis são o do WTS e o do VNC, disponibilizando aos usuários desses sistemas uma performance maior. Veja na figura abaixo como ficariam essas conexões:
[2] Comentário enviado por pools em 31/08/2006 - 17:20h
Só pra constar, ultrapassei o passo acima da seguinte forma:
1 - Removi o usuario: nxserver --deluser usuario1
2 - adicionei-o novamente nxserver --adduser usuario1
3 - Coloquei a mesma senha que o usuario1 possui no linux: nxserver --passwd usuario1
Ele não apresentou mais os problemas de permission denied!
[6] Comentário enviado por tatototino em 15/11/2006 - 05:47h
no meu está dando o seguinte erro:
NX> 203 NXSSH running with pid: 3221
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 127.0.0.1 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.
alguem saberia me dizer o que está acontecendo, pq todos usuarios inclusive o nx estão logando no ssh e dá erro de autenticação?
ahh uma coisaque reparei é que nenhum processo no servidor tem algo com nx mas quando dou o comando nxserver --status aparece:
NX> 100 NXSERVER - Version 1.4.0-44 OS (GPL)
NX> 110 NX Server is running
NX> 999 Bye
dizendo que está rodando,aí queria saber se tem que estar algum processo ativo e qual o nome dele.
[8] Comentário enviado por tatototino em 16/11/2006 - 13:51h
eu fiz tudo de novo e agora passou daquele erro, agora está dando o seguinte erro:
NX> 203 NXSSH running with pid: 25557
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 127.0.0.1 on port: 22
NX> 202 Authenticating user: nx
HELLO NXSERVER - Version 1.4.0-44 OS (GPL)
NX> 105 hello NXCLIENT - Version 1.4.0
NX> 134 Accepted protocol: 1.4.0
NX> 105 SET SHELL_MODE SHELL
NX> 105 SET AUTH_MODE PASSWORD
NX> 105 login
NX> 101 User: root
NX> 102 Password:
NX> 103 Welcome to: darkstar user: root
NX> 105 listsession --user="root" --status="suspended,running" --geometry="1024x768x24+render" --type="unix-kde"
NX> 127 Sessions list of user 'root' for reconnect:
Display Type Session ID Options Depth Screen Status Session Name
------- ---------------- -------------------------------- -------- ----- -------------- ----------- ------------------------------
NX> 148 Server capacity: not reached for user: root
NX> 105 startsession --link="lan" --backingstore="1" --nodelay="1" --cache="8M" --images="32M" --media="1" --mediahelper="esd" --session="localhost" --type="unix-kde" --cookie="******" --geometry="640x480+192+120" --kbtype="pc102/br" --screeninfo="640x480x24+render"
[10] Comentário enviado por nayamonia em 29/11/2006 - 19:38h
Ola tatototino:
Seguinte vamos lá:
- No arquivo /etc/ssh/sshd_config verifique se o parametro X11Forwarding esta com yes;
- Troque o programa a ser iniciado no login, esta configuração é no client mesmo, normalmente fica setado para iniciar o scripts X padrão, mas tu podes mudar, se ao mudar ele funcionar é bem provavel que tens problemas com o nxagent e o kde(configuração de fontes por exemplo);
- Verifique se é possível fazer login no ssh habilitando o X (opção -X) com o usuário que estas usando no nx client;
- Teste sem o uso do SSL;
- Se estiveres usando chave segura, certifique-se que a mesma esta correta no client, que o usuário esta cadastrado no sistema do servidor e se adicionou no sshd_config a linha AlowUsers;
- Se tiveres usando chave publica, remova e inclua novamente o usuário na base do NX e no sistema;
Quando se tenta fazer login e o mesmo voltar erro ele grava um log na pasta $HOME/.nx/usuario+id.da.sessão/ o id da sessão aparece na linha NX > 700 do log do client. Me manda este log caso não resolva com estas checagens.
[11] Comentário enviado por nayamonia em 29/11/2006 - 19:48h
Ola paiano:
Vamos lá:
- Seguinte se tu instalou com chave segura e depois rodou a instalação com chave pública, realmente não irá funcionar, é necessário desinstalar e instalar novamente para fazer esta operação;
De uma olhada nas verificações e testes que pedi para o tatototino fazer(comentário acima), depois posta ai que no que for possível eu vou ajudar !!!
[12] Comentário enviado por paiano em 29/11/2006 - 21:06h
Caro nayaless,
referente à instalação com chave segura e não segura, eu desinstalei completamente o aplicativo para alternar entre chave segura e a pública.
Eu acredito que o meu problema seja realmente com algo no sshd, só não entendi o que você quis dizer com esta linha:
--
- Verifique se é possível fazer login no ssh habilitando o X (opção -X) com o usuário que estas usando no nx client;
--
[14] Comentário enviado por tatototino em 30/11/2006 - 20:06h
então no meu aparece o seguinte erro no arquivo $HOME/.nx/usuario+id.da.sessão/session
/usr/bin/nxnode: line 282: /usr/bin/nxagent: No such file or directory
xsetroot: unable to open display 'unix:1006'
xset: unable to open display "unix:1006"
xset: unable to open display "unix:1006"
xset: unable to open display "unix:1006"
xsetroot: unable to open display 'unix:1006'
startkde: Starting up...
ksplash: cannot connect to X server unix:1006
kdeinit: Can't connect to the X Server.
kdeinit: Might not terminate at end of session.
kded: cannot connect to X server unix:1006
DCOP aborting call from 'anonymous-5844' to 'kded'
kded: ERROR: Communication problem with kded, it probably crashed.
kcminit_startup: cannot connect to X server unix:1006
ksmserver: cannot connect to X server unix:1006
startkde: Shutting down...
klauncher: Exiting on signal 1
startkde: Running shutdown scripts...
startkde: Done.
já verifiquei mas o comando nxagent não tem no meu sistema e também pesquisei na net sobre esse comando e não encontrei o pacote onde ele se encontra, , se souberem o pacote me deem um alô.
[15] Comentário enviado por nayamonia em 01/12/2006 - 09:14h
Ao Paiano
Tu estas com problemas no login do proprio ssh, vamos fazer o seguinte:
- Verifique o arquivo /etc/ssh/sshd_config o parametro "X11Forwarding=yes";
- Verifique também no arquivo /etc/ssh/sshd_config se existe a linha: "AllowUsers nx root" ;
- Exclua o arquivo $HOME/.ssh/known_hosts do servidor e do cliente(se linux);
Reinicie o ssh do servidor e tente novamente.
[16] Comentário enviado por nayamonia em 01/12/2006 - 09:27h
Ao tatototino
Meu brother, o que parece é que tua instalação esta incompleta. Pois o nxagent faz parte do pacote de instalação da parte free do projeto da nomachine (pacote nx-1.5.0-i486-4.tgz por exemplo) e não do freenx, o freenx é só um front end para as bibliotecas free da nomachine. Os links deste artigo, apontam para os dois pacotes (freenx e nx). Se tu instalou os dois pacotes pode ter acontecido algo de errado na hora da compilação ou instalação dos pacotes.
Qual a distro utilizada ? tu usou os pacotes que estão neste artigo ?
[17] Comentário enviado por paiano em 01/12/2006 - 18:18h
Olá Gabriel, verifiquei o que vc falou:
Arquivo /ec/ssh/sshd_config:
existe o parâmetro "X11Forwarding=yes"
também existe a linha "AllowUsers nx root looknet"
no caso, root não estava e eu adicionei e looknet é o usuário que eu estava tentando conectar, mas ambos sem sucesso, eu reiniciei o sshd e não tinha known_hosts em ~/.ssh
Eu pesquisei no São Google, e todos os resultados que eu acho sobre o erro "ssh_exchange_identification: Connection closed by remote host" se referem aos arquivos hosts.(allow|deny), mas eu já configurei eles de tudo quanto é jeito e o resultado é sempre o mesmo.
em hosts.aloow tem somente este parâmetro:
sshd : ALL : ALLOW
e em hosts.deny não tem parâmetro algum.
Bom, por enquanto seria isto, se você poder me ajudar mais uma vez eu agradeço.
parece ser um um erro no fonte do nxserver, não entendi muito bem procurei na net pessoas com memso problema mas com nenhuma solução, se puder me ajudar de novo agradeço, ahhh e estou usando o slackware 11
[19] Comentário enviado por mbx em 10/12/2006 - 12:51h
Olá Amigo, no meu caso os erros começaram com nxclient, após instalar o servidor confoirme seu artigo, quando ia rodar o cliente apenas uma telinha branca com "OK" dentro aparecia, então fui até o site da nomachine e baixei o cliente mais novo, esse roda com um assistente prático e simples, crio a conexão mas sempre aparece esse erro no log do cliente:
NX> 203 NXSSH running with pid: 3537
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 192.168.0.11 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
NX> 204 Authentication failed.
O usuário nx já tem senha, já me loguei com ele tanto no shell como no ssh, tudo ok, mas sempre dá esse erro.
[20] Comentário enviado por ronanricardo em 26/04/2007 - 23:43h
No meu esta dando esse erro:
NX> 203 NXSSH running with pid: 168
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 192.168.254.251 on port: 8005
NX> 211 The authenticity of host '192.168.254.251 (192.168.254.251)' can't be established.
RSA key fingerprint is bd:b4:35:27:5d:a1:6c:29:87:a1:de:6c:a1:61:b3:f7.
Are you sure you want to continue connecting (yes/no)?
Warning: Permanently added '192.168.254.251' (RSA) to the list of known hosts.
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
HELLO NXSERVER - Version 1.4.0-44 OS (GPL)
NX> 105 hello NXCLIENT - Version 1.4.0
NX> 134 Accepted protocol: 1.4.0
NX> 105 SET SHELL_MODE SHELL
NX> 105 SET AUTH_MODE PASSWORD
NX> 105 login
NX> 101 User: ronan
NX> 102 Password:
NX> 103 Welcome to: delta user: ronan
NX> 105 listsession --user="ronan" --status="suspended,running" --geometry="1024x768x32+render" --type="unix-kde"
NX> 127 Sessions list of user 'ronan' for reconnect:
Display Type Session ID Options Depth Screen Status Session Name
------- ---------------- -------------------------------- -------- ----- -------------- ----------- ------------------------------
NX> 148 Server capacity: not reached for user: ronan
NX> 105 startsession --link="lan" --backingstore="1" --nodelay="1" --cache="8M" --images="32M" --media="0" --session="pc de casa" --type="unix-kde" --cookie="******" --geometry="fullscreen" --kbtype="pc102/br" --screeninfo="800x600x32+render"
ssh: connect to host 127.0.0.1 port 22: Connection refused
Killed by signal 15.
Eu uso a porta 8005... No meu caso eu tentei conectar na minha LAN, e ja tentei acessar o meu pc do serviço, porém me deparei com o mesmo erro acima...
Se alguem puder me ajudar... e agradeço
[21] Comentário enviado por diony em 12/07/2007 - 01:05h
Cara muito bom turorial mas estou com um problema. N'ao consigo criar o segundo pacote --> freenx.SlackBuild , quando eu fa;o o comando sh freenx.SlackBuild ele ate parece q foi mas quando eu vou na pasta /tmp ele joga outras pastas dentro, o correto nao seria ele criar um pacote .tar.gz igual ao primeiro?? me ajude porfavor!!! se puder me manda o arquivo pronto para meu email
[22] Comentário enviado por marciomedeiros em 23/03/2008 - 23:55h
?comentario=até que enfim, instalei os pacotes descritos e baixei o cliente no site da nommachine, não funcionava de jeito nenhum, dai eureka, o nxserver aqui descrito é o 1.4.0 etc o cliente no site 3.1.etc... dai baixei um cliente antigo na mesma versao do server e funcionou na hora... nesse link tem o cliente http://www.industrial-statistics.com/info/nxclients?IndStats=55d83422ff4ca2d3c3e3d2703ed051b9
marcio medeiros
[24] Comentário enviado por edmax.com em 25/04/2008 - 10:23h
Ola amigo do linux, eu sou novo por aqui, voce poderiam me ajudar com problema de conexao no NX ? quanto tento me conectar no NX aparece esta messagem :
NX> 203 NXSSH running with pid: 15360
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 10.0.2.72 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
HELLO NXSERVER - Version 1.5.0-60 OS (GPL)
NX> 105 hello NXCLIENT - Version 1.5.0
NX> 134 Accepted protocol: 1.5.0
NX> 105 SET SHELL_MODE SHELL
NX> 105 SET AUTH_MODE PASSWORD
NX> 105 login
NX> 101 User: root
NX> 102 Password:
NX> 103 Welcome to: r2d2 user: root
NX> 105 listsession --user="root" --status="suspended,running" --geometry="1280x1024x32+render" --type="unix-kde"
NX> 148 Server capacity: not
O que sera ? Quem pode me dar uma luz !
Edson Pereira
[25] Comentário enviado por lflavio_sp em 15/07/2008 - 23:37h
Instalei e funcionou beleza pra o q eu preciso, só tem um detalhe ele aceita apenas 2 conexões, é possivel mudar isso ? tem como ele aceitar conexões ilimitadas ??
[26] Comentário enviado por VanderFF em 09/01/2009 - 08:43h
Ae, é muito interessante este teu tutorial, e de fácil compreensão.
Mais eu gostaria de saber se posso usar esta ferramenta para conectar em servidores Windows, ou se existe alguma ferramenta similar ao Rdesktop para tal função.
[27] Comentário enviado por Pr0f3t4 em 04/03/2009 - 19:42h
nayaless,
segundo o seu artigo, para melhor aproveitamente dos recursos, trocar o valor da variável ARCH para i686 nos arquivos SlackBuilds, irá trazer melhor desempenho ao programa, porém, ao fazer este passo no arquivo nx.SlackBuild, um erro apareceu na compilação, informando que a var SLKLDFLAGS não existe na linha 187.
Como você resolveu esse problema sem comprometer o funcionamento do programa ?
Forte abraço.