Como configuro a sessão xrdp que reutiliza uma sessão existente?

53

Eu tenho tentado configurar um servidor de terminal RDP com precisão usando o xrdp e tenho tido problemas significativos para obter uma configuração de trabalho. Quando um usuário efetua logon, eu preciso que ele se conecte a essa sessão existente de usuários, se existir, caso contrário, iniciar uma nova sessão e qualquer sessão iniciada deve iniciar o LXDE. O que muda para a configuração padrão que preciso fazer para que isso funcione?

    
por nloewen 07.05.2012 / 19:47

8 respostas

43

Eu tive esse mesmo problema e acabei de encontrar uma solução fácil. Eu originalmente instalei o xrdp usando o procedimento padrão:

apt-get install xrdp

Depois disso, é tudo sobre o seu arquivo xrdp.ini, que está localizado aqui:

/etc/xrdp/xrdp.ini

Para abrir e editar o arquivo de configuração do xrdp use:

sudo nano /etc/xrdp/xrdp.ini

por padrão, o primeiro script de manipulação de sessão xrdp se parece com isto:

[xrdp1]
name=sesman-vnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

A linha importante é port=-1 , isso faz com que o xrdp sempre procure por uma porta livre para conectar. Se você definir uma porta fixa aqui, o xrdp sempre voltará e se conectará à mesma sessão. Eu mudei o meu para que fique assim:

[xrdp1]
name=customsessionname
lib=libvnc.so
username=myusername
password=ask
ip=127.0.0.1
port=5912

É isso, eu acho que você poderia simplesmente mudar o port=-1 para port=5912 . Meu xrdp sempre reconecta a sessão existente sempre usando a mesma porta.

    
por jeffery_the_wind 18.10.2013 / 09:39
13

Gostaria de melhorar uma resposta existente. A resposta mais votada foi editar o arquivo xrdp.ini para alterar a porta para um valor fixo no lugar do curinga -1 para encontrar uma porta aberta.

Eu tentei isso, mas recebi um erro ao conectar pela primeira vez, então acabei retornando ao valor -1 . A frustração rapidamente se instalou, embora o problema permanecesse de não continuar, então eu olhei o arquivo ini novamente.

O que funcionou para mim e foi realmente algo que eu estava curioso sobre isso:

Edite o /etc/xrdp/xrdp.ini

Em [xrdp1] , em que port=-1 , notei que o nome de usuário e a senha foram definidos como ASK. Se você definir port=ask , você terá a opção no prompt de login com nome de usuário e senha para escolher uma porta.

Em vez de instalar pacotes adicionais, descobri que a solução mais fácil é configurar a opção ask, conecte a sessão FIRST (se ainda não tiver uma) na porta -1 no login com nome de usuário e senha.
Depois de desconectar a sessão, para retomar uma sessão existente, sempre faça o login na porta padrão: 5910 e você retomará a sessão existente até que você reinicie o computador remoto ou termine a sessão quando fizer o logoff.

Para resumir:

  • Edite o arquivo xrdp.ini
  • definir port = ask
  • conecte-se a partir da máquina remota e, no login, se você não tiver uma sessão existente, especifique a porta -1
  • para retomar uma sessão, insira o padrão de 5910
por QuestionReality 04.12.2015 / 05:46
7

Eu odeio ser o cara que acaba de deixar um link, mas eu segui o guia aqui e funcionou muito bem. Agora posso fazer login em uma sessão RDP de hosts Linux e Windows e reconectar-me à minha sessão antiga, se já tiver efetuado login anteriormente. Este é o melhor guia para a instalação que encontrei. Infelizmente, a instalação do pacote padrão causa muito mais problemas do que fazer a partir da fonte.

O autor desse link também fez um ferramenta automática para instalá-lo e configurá-lo, mas ainda não o testei, por isso tome cuidado.

Espero que ajude você.

    
por agc93 31.05.2012 / 14:04
3

O problema é que o xrdp nem sempre se conecta à mesma porta. Caso não tenha e você esqueceu o número da porta, você poderia entrar em uma sessão ssh e descobrir o número por

netstat -tulpn | grep vnc

e você terá algo parecido com o seguinte

tcp        0      0 127.0.0.1:5911          0.0.0.0:*               LISTEN      5365/Xvnc

e então você sabe que 5911 era a porta que você conectou.

    
por YH Wu 12.08.2016 / 22:18
2

na tela de login com a caixa xrdp quando você se conecta pela primeira vez ao desktop remoto deve haver uma caixa suspensa, a partir daqui escolha "vnc-any" em seguida insira o endereço IP do computador e a senha, mas deixe o porta no que é, isso deve ajudar:)

    
por Dewi Jones 11.04.2013 / 10:47
0

Se você encontrou o problema de "senha falhou", você pode dar uma olhada nos dois problemas no GitHub

Reconecte-se a sessão antiga do vnc - a senha do VNC falhou

A senha do VNC falhou ao escolher uma sessão existente

Em resumo, eles mencionam que especificar o número da porta não funciona mais no design mais recente.

    
por liwaiwai 03.07.2018 / 12:12
0

Eu corri para este problema em uma máquina Debian. Usado X11RDP-o-Matic para construir pacotes xrdp de 0,7. Antes de atualizar para o systemd, a reconexão de sessão do xrdp funcionava bem.

Olhando para a árvore de processos, pude ver que as sessões não eram mais filhos de xrdp-sesman . Acabou por ser um problema de permissões ao usar o systemd. O Google encontrou um patch que corrige o problema.

Como você identifica um trabalho de reconexão? Execute ps axf e observe a árvore de processos para xrdp-sesman . X11rdp, xrdp-chansrv, xrdp-sessvc deve estar sendo executado como filho. Se não estiverem, xrdp-sesman não saberá como se reconectar à sessão.

Veja o que parece quando se trabalha:

    
por h0tw1r3 31.12.2013 / 23:20
-1

Este encadeamento UbuntuForum parece útil - Eu ainda não testei isso - mas copiei a solução dada aqui para completar esta resposta.

Configuração do RealVNC

1. Desinstalação do servidor padrão VNC do Ubuntu (Vino):

Vá para: Sistema - > Administração - > Gerenciador de Pacotes Synaptic Procure o pacote "Vino", Mark For Removal, Apply.

2. Instalação do TightVNC e XRDP:

Enquanto você estiver usando o Gerenciador de Pacotes Synaptic, seacrh para o pacote "tightvnc" (tenha cuidado, não " xtightvnc ") e Marcar para Instalação. Da mesma forma, procure o pacote "xrdp" e marque também para instalação. Aplique. PS: se você quiser, pode descartar qualquer outro pacote "vnc" que não precise!

3. Configuração do XRDP (Opcional)

Abra um terminal e digite os três seguintes comandos:

 cd /etc/xrdp
 cp xrdp.ini xrdp.ini.bak 
 sudo gedit /etc/xrdp/xrdp.ini

Remova as seções Xrdp2-Xrdp6, deixe apenas a seção Xrdp1. Seu xrdp.ini deve ficar assim:

[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389
crypt_level=low
channel_code=1

[xrdp1]
name=RDP_To_TightVNC
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

4. Conectando

Reinicie o sistema e você está pronto para se conectar!

Para se conectar de outra máquina Ubuntu, use: Aplicativos - > Internet - > Cliente do Terminal Server, digite o IP da sua máquina Ubuntu VNC, use RDPv5 ou RDP, clique em Conectar!

Para se conectar de uma máquina baseada no Windows, use: Iniciar - > Executar - > mstsc, digite o IP da sua máquina Ubuntu VNC, clique em Conectar.

Quando conectado, use as credenciais da sua conta de usuário do Ubuntu (u / nep / w) e faça login remotamente em sua área de trabalho.

    
por Rahul Virpara 28.05.2012 / 05:40