No se puede hacer el escritorio remoto usando xrdp


13

Tengo una máquina virtual Ubuntu en la que necesito hacer un escritorio remoto. No tengo acceso físico a esa máquina y solo puedo hacer ssh en la máquina. Quería hacer un escritorio remoto y se me ocurrieron muchas opciones (vnc, xrdp, opennx). Usé xrdp e instalé los paquetes necesarios en la máquina ubuntu (xrdp y dependiente). Luego habilité el acceso remoto en ubuntu usando la siguiente opción de línea de comando.

gconftool-2 -s -t bool /desktop/gnome/remote_access/enabled true

gconftool-2 -s -t bool /desktop/gnome/remote_access/prompt_enabled false

Luego reinicié el xrdp (/etc/init.d/xrdp start). Pero cuando intento hacer rdp usando el cliente de Windows (mstsc), aparece el siguiente error. El acceso remoto al servidor no está habilitado.

¿Cómo puedo solucionar esto? Amablemente ayuda.

Raj

Respuestas:


13

En el archivo /etc/xrdp/xrdp.ini, agregue address = 0.0.0.0, que es la dirección xrdp predeterminada.

También debe permitir que el firewall escuche las conexiones en el puerto 3389 en el que xrdp está trabajando. Para esto ejecutar:

sudo ufw allow 3389

Si eso tampoco funciona:

  1. Reiniciar PC
  2. Deshabilite el firewall ( sudo ufw disable) en la PC del servidor y luego vuelva a verificar (incluso podría necesitar otro reinicio).

En caso de que se lo haya perdido, enumeraré todo el procedimiento a continuación (lo cual fue difícil de armar). Estarás bien con eso si sigues paso a paso (¡lo prometo!).


Escritorio remoto entre la guía paso a paso de cualquier sistema operativo

I . Windows a / desde Windows:

Utilice el software de escritorio remoto de Windows

II . Linux / Unix a / desde cualquier lugar

Primero haga lo siguiente en la computadora servidor que se conectará a través del escritorio remoto:

- Allow other users to view your desktop
- Best to require a password
- service ssh status
- To allow computers to connect with X11 graphics system capabilities as well, you need to 
    install an X11 server on the computer that is trying to connect (client). So
    * for a Windows computer use XMing
    * for a Linux Ubuntu computer use XQuartz

IIa . Windows a Linux desde terminal con soporte de gráficos

- Launch XMing on Windows client
- Launch Putty
    * Fill in basic options
    * Connection -> SSH -> X11
        -> Enable X11 forwarding
        -> X display location = :0.0
        -> MIT-Magic-Cookie-1
        -> X authority file for local display = point to the Xming.exe executable

IIb . (b para mejor) Windows a Linux con soporte completo de GUI. Esto es lo que la mayoría de ustedes querrá.

- install xrdp which uses the remote desktop protocol to present a GUI to the user. 
    It can provide a fully functional Linux terminal server, capable of accepting connections 
    from rdesktop, freerdp, and Microsoft's own terminal server / remote desktop clients. 
    xrdp is the daemon that handles RDP remote desktop access from Windows machines to Linux 
- edit the "/etc/xrdp/xrdp.ini" file to include the line:
    address=0.0.0.0
    right under #background=626x72 line. 0.0.0.0 is the local server address of xrdp
- Restart xrdp service
- allow xrdp port (probably 3389) through firewall
- We also need a VNC server. Install tightvncserver on Linux server machine. 
- run tightvncserver (no need to create a view-only password)
- "netstat -lvp | grep vnc" to check out the ports that tightvnc is listening on for 
    connections
- allow the vncserver port from the firewall: sudo ufw allow #
- allow the xrdp server
- Install xfce4 desktop environment an update to xfce, minimalistic faster and lightweight
    sudo apt-get install xfce4
- sudo apt-get install xfce4-terminal : way better than xterm
- sudo apt-get install gnome-icon-theme-full tango-icon-theme : installs icon sets
- Now we modify 2 files to make sure xrdp uses xfce4
    * echo xfce4-session >~/.xsession
    * secondly we modify startup file for xRDP located at /etc/xrdp/startwm.sh
        so it will start xfce4. Replace the last line with 
        startxfce4 
        (before it had something which started with a ., but no matter whatever it is, just 
        replace the last line)
    * restart xrdp service: sudo service xrdp restart
- Now you are ready to log into the computer from client using Remote Desktop (mstsc.exe). 
    Just supply the ipv4 or hostname of the VNC server.

III . * nix a / desde * nix

- ssh -X [preferedUserName]@[targetIpv4Address] : -X flag enales X11 forwarding
- accept security certificates from trusted hosts when prompted

IV . Hacer la conexión segura (paso opcional - se aplica a cualquier configuración)

Los protocolos VNC y xrdp no son seguros, lo que significa que no están encriptados.

Para asegurar la conexión, edite el archivo /etc/xrdp/xrdp.ini para que la dirección se convierta en 127.0.0.1. Esta será la dirección localhost del servidor ssh. La encriptación SSH se usará debajo para tunelizar el tráfico vnc.

- sudo service xrdp restart
- sudo service ssh restart
- pkill Xtightvnc
- tightvncserver
- putty -> Connection -> SSH -> Tunnels 
    * Source port: 5555
    * Destination: localhost:3389

Si lo anterior no funciona:

  1. Es posible que deba reiniciar ambas computadoras,
  2. Deshabilite el firewall ( sudo ufw disable) en la PC del servidor y luego vuelva a verificar (incluso podría necesitar otro reinicio).
  3. Si lo anterior no funciona, ha estropeado su sistema al instalar paquetes conflictivos. Debe hacer una resolución de problemas manual (es muy poco probable que alcance este paso si sigue las instrucciones correctamente).

Fuentes y crédito:


Si está ejecutando Ubuntu 18.04.2 o Ubuntu 18.04.3, la instalación de xorgxrdp-hwe-18.04 puede resolver su problema (resolvió el mío). Vea esta publicación de blog: c-nergy.be/blog/?p=13972
jhin

4

No estoy familiarizado con xrdp en particular, pero lo primero que comprobaría es ver si el puerto que está utilizando es a) escuchar conexiones yb) abrirse al mundo exterior. El puerto predeterminado para RDP es 3389 .

El primero es bastante fácil de verificar; simplemente ejecute esto en la terminal en la máquina a la que está intentando conectarse (cambie 3389 si xrdp está escuchando en un puerto diferente):

netstat -an | grep "LISTEN " | grep ":3389"

Si obtiene algo similar a lo siguiente, al menos algo (con suerte xrdp) está escuchando conexiones:

tcp        0      0 127.0.1.1:3389            0.0.0.0:*               LISTEN

Si no obtiene ningún resultado, intente (re) iniciar xrdp o verifique para asegurarse de que tiene el puerto correcto.

Luego, debe asegurarse de que la máquina sea accesible a Internet en ese puerto, lo que implica dos cosas: asegurarse de que el firewall en la máquina en sí no esté bloqueando las conexiones a ese puerto y asegurarse de que cualquier dispositivo de red ( es decir, un enrutador) entre la computadora a la que está intentando conectarse e Internet no está bloqueando las conexiones. PortForward.com puede ayudar con esto último; el primero depende de qué tipo de firewall esté instalado en su máquina, si corresponde.

¡Espero que esto ayude!


1
A continuación se muestra la salida del netstat. Comprobaré la segunda parte y te dejaré saber .. tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
user1667630

OK, bien, eso significa que xrdp está escuchando conexiones. Sin embargo, usted dijo que solo puede acceder a la máquina virtual en el puerto 22, por lo que el cliente RDP no puede conectarse. ¿Qué software de máquina virtual estás usando?
stevenmirabito

Lo siento ... ¿puede decir qué quiere decir con "software de máquina virtual" ... En ubuntu, acabo de instalar xrdp ..
user1667630

Usted dijo en su OP: I have a virtual machine (ubuntu) to which i need to do remote desktop.¿Qué software ejecuta la máquina virtual (VirtualBox, VMware, Virtuozzo, Xen, OpenVZ, etc.)? ¿Es esta una máquina en su computadora local o es un VPS alojado en algún lugar?
stevenmirabito

lo siento ... si ... es un VPS alojado en alguna parte !! Básicamente utiliza la solución de Apache Software Foundation. ¡Laboratorio de computación virtual!
user1667630

2

Finalmente conseguí que esto funcionara para mí; configuración: computadora portátil más antigua con ubuntu 13.10 con unidad estándar; He instalado el cairo dock (lo que lo hace mucho más útil para mí); todavía no está acostumbrado a la barra de aplicaciones del lado izquierdo;

Sería bueno poder usar mi sistema win7 para rdp en este ubuntu 13.10, así que pasé un par de horas esta mañana investigando. Aquí esta lo que hice:

sudo apt-get update
sudo apt-get install xrdp

o puede usar el centro de software ubuntu para instalar.

La instalación pareció funcionar bien y parecía que el servicio xrdp se inició correctamente.

Desde mi casilla win7, abrí una ventana rdp y utilicé la dirección IP de la computadora portátil para entrar; se abrió una ventana pero solo una pantalla de ventanas estándar x11 (patrón de sombreado con cursor x); No hay enlaces, iconos o menús para usar.

Más investigación de google. Instalé el gnome-session-fallback:

$ sudo apt-get install gnome-session-fallback
$ echo "gnome-session --session=gnome-fallback" > ~/.xsession

Esto no funcionó; Obtuve la misma pantalla en blanco, pero encontré otra URL que sugería otra sesión de Windows como XFCE, así que instalé el escritorio de xubuntu:

$ sudo apt-get install xubuntu-desktop
$ echo "xfce4-session" > ~/.xsession

No te olvides de sudo /etc/init.d/xrdp restartdespués de todos los cambios.

Esto funcionó. Al principio, en el inicio inicial de la sesión rdp, obtuve la misma pantalla en blanco, pero después de 10 segundos (probablemente porque estoy usando un win7 VDI en el trabajo desde una ubicación remota) apareció un escritorio xfce xubuntu utilizable; No tan agradable como el gnomo pero muy usable.

Espero que esta información sea útil, ya que no pude conseguir los intentos iniciales de trabajar para mí.

Dave


1

Bienvenido a la comunidad de Ubuntu.

En primer lugar, compruebe la configuración de red de Windows Virtual Machine en Virtual Box. Elija Bridge Connection en la configuración de Red. Verifique que RDP pueda pasar a través del Firewall de Window Client.


Hola .. soy capaz de hacer ssh. ¿Me podría decir cómo chek si RDP se deja pasar a través del cortafuegos
user1667630

Sí, abra la configuración del firewall en el cliente de Windows. Obtendrá una lista de programas y servicios que pueden pasar, Buscar RDP, Hacer clic en editar, Activar y aplicar.
Ketan Patel el

¡Ya estaba habilitado! Lo revisé ... ¿Hay alguna otra manera de obtener la interfaz de usuario de ubuntu? Un problema más es que solo el puerto 22 está habilitado en ubuntu ..
user1667630

Apague Ubuntu Firewall usando el comando service iptables stop
Ketan Patel

1
sudo ufw disable 

luego intente iniciar sesión con su software cliente rdp .. Estoy en el proceso de configurar esto para 12.04 linux vps, hasta ahora me conecté pero no veo un escritorio solo una ventana de comandos.

Hola amigo, dijiste que te conectaste y todo lo que ves es una ventana de terminal, no sé cuál es tu configuración completa, pero aquí, la mía, espero que ayude.

Asegúrese de que su servidor VNC se está ejecutando vncserver :1 junto nanoa ~/.vnc/xstartupesto le lleva a un bin !! archivo bla bla, donde ves la última línea ( & -x-window-manager), agrega & /etc/X11/Xsession &

Ahora ingrese a este archivo, /etc/xrdp/startwm.shy ASEGÚRESE DE QUE ALLÍ, su última línea es

. /etc/X11/Xsession

después de hacerlo, reinicie el vncserver haciendo esto.

vncserver -kill :1 

luego reiniciar

vncserver :1

Por cierto, tuve que instalar más que solo Xrdp e hice algunos comandos más para retroceder si Xrdp fallaba, todo me parece bien por el momento, pruébalo y deja saber qué se está cocinando o no. Buena suerte. Ps ... es excelente cuando funciona, quédate con él.


0

Si solo se permite el puerto 22 a través del cortafuegos, y usted no tiene control sobre la ruta de su red, es posible que desee usar la tunelización ssh para hacer un túnel en su puerto elegido en la caja remota a través de su sistema local.

Si hace esto desde un cuadro de Linux / Unix, mire el indicador -L para ssh:

ssh -L 3390:127.0.0.1:3389 -l remote_user remote_host

donde el primer 3390 es el número de puerto local y el segundo 3389 es el número de puerto remoto; entonces RDC a 127.0.0.1:3390 para conectarse. Tenga en cuenta que el túnel está vinculado a la sesión ssh: si cierra esa sesión ssh, el túnel también se cerrará y su conexión al escritorio remoto se cortará. Asegúrese de utilizar un puerto no utilizado para el lado local.

Si se conecta desde un sistema Windows, use masilla y habilite las opciones de túnel ssh para su sesión (mire conexión-> SSH-> Túneles en las opciones de configuración de la sesión).

Una vez que se establece el túnel, puede utilizar su cliente RDP elegido para conectarse. Varias de las otras respuestas abordan esta parte de la configuración (personalmente terminé siguiendo la sugerencia de xfce4-session).


0

Ejecute los comandos en la terminal:

sudo apt-get install xrdp
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get install ubuntu-mate-core ubuntu-mate-desktop


echo mate-session >~/.xsession
sudo service xrdp restart
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.