1

I'm trying to use xrdp (latest version 0.9.12-1) to connect from windows 10 to Ubuntu 20.04.5 LTS. When I get to this login screen, I type in my credentials, click ok, then xrdp just freezes for around 5 minutes, then unfreezes again but stays on the same screen and nothing happens. How do I fix this?

I tried the following steps from another post with the same question, but it didn't work for me:

sudo apt-get purge xrdp
sudo apt-get install xrdp
sudo apt-get install xfce4
sudo apt-get install xfce4-goodies

sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini echo xfce4-session > ~/.xsession

sudo nano /etc/xrdp/startwm.sh comment these lines to: #test -x /etc/X11/Xsession && exec /etc/X11/Xsession #exec /bin/sh /etc/X11/Xsession

add these lines:

xfce

startxfce4

sudo /etc/init.d/xrdp start

enter image description here

[20221110-10:34:28] [INFO ] listening to port 3350 on 127.0.0.1
[20221110-10:59:33] [DEBUG] libscp initialized
[20221110-10:59:33] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20221110-10:59:33] [DEBUG] Closed socket 6 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221110-10:59:33] [INFO ] starting xrdp-sesman with pid 1465
[20221110-10:59:33] [INFO ] listening to port 3350 on 127.0.0.1
[20221110-11:03:39] [INFO ] shutting down sesman 1
[20221110-11:03:39] [DEBUG] Closed socket 8 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221110-11:04:04] [DEBUG] libscp initialized
[20221110-11:04:04] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20221110-11:04:04] [DEBUG] Closed socket 6 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221110-11:04:04] [INFO ] starting xrdp-sesman with pid 1462
[20221110-11:04:04] [INFO ] listening to port 3350 on 127.0.0.1
[20221110-11:25:54] [INFO ] shutting down sesman 1
[20221110-11:25:54] [DEBUG] Closed socket 8 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221110-11:27:47] [DEBUG] libscp initialized
[20221110-11:27:47] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20221110-11:27:47] [DEBUG] Closed socket 6 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221110-11:27:47] [INFO ] starting xrdp-sesman with pid 1470
[20221110-11:27:47] [INFO ] listening to port 3350 on 127.0.0.1
[20221122-14:51:20] [INFO ] shutting down sesman 1
[20221122-14:51:20] [DEBUG] Closed socket 8 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221122-14:51:54] [DEBUG] libscp initialized
[20221122-14:51:54] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20221122-14:51:54] [DEBUG] Closed socket 6 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221122-14:51:54] [INFO ] starting xrdp-sesman with pid 1499
[20221122-14:51:54] [INFO ] listening to port 3350 on 127.0.0.1
[20221202-16:19:12] [INFO ] shutting down sesman 1
[20221202-16:19:12] [DEBUG] Closed socket 8 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221202-16:19:51] [DEBUG] libscp initialized
[20221202-16:19:51] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20221202-16:19:51] [DEBUG] Closed socket 6 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221202-16:19:51] [INFO ] starting xrdp-sesman with pid 1486
[20221202-16:19:51] [INFO ] listening to port 3350 on 127.0.0.1
[20221207-11:12:01] [INFO ] shutting down sesman 1
[20221207-11:12:01] [DEBUG] Closed socket 8 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221207-11:25:18] [DEBUG] libscp initialized
[20221207-11:25:18] [DEBUG] Testing if xrdp-sesman can listen on 127.0.0.1 port 3350.
[20221207-11:25:18] [DEBUG] Closed socket 7 (AF_INET6 ::ffff:127.0.0.1 port 3350)
[20221207-11:25:18] [INFO ] starting xrdp-sesman with pid 1085654
[20221207-11:25:18] [INFO ] listening to port 3350 on 127.0.0.1

Here is my xrdp.ini file:

[Globals]
; xrdp.ini file version number
ini_version=1

; fork a new process for each incoming connection fork=true

; ports to listen on, number alone means listen on all interfaces ; 0.0.0.0 or :: if ipv6 is configured ; space between multiple occurrences ; ; Examples: ; port=3390 ; port=unix://./tmp/xrdp.socket ; port=tcp://.:3390 127.0.0.1:3390 ; port=tcp://:3390 :3390 ; port=tcp://<any ipv4 format addr>:3390 192.168.1.1:3390 ; port=tcp6://.:3390 ::1:3390 ; port=tcp6://:3390 :3390 ; port=tcp6://{<any ipv6 format addr>}:3390 {FC00:0:0:0:0:0:0:1}:3390 ; port=vsock://<cid>:<port> port=3390

; 'port' above should be connected to with vsock instead of tcp ; use this only with number alone in port above ; prefer use vsock://<cid>:<port> above use_vsock=false

; regulate if the listening socket use socket option tcp_nodelay ; no buffering will be performed in the TCP stack tcp_nodelay=true

; regulate if the listening socket use socket option keepalive ; if the network connection disappear without close messages the connection will be closed tcp_keepalive=true

; set tcp send/recv buffer (for experts) #tcp_send_buffer_bytes=32768 #tcp_recv_buffer_bytes=32768

; security layer can be 'tls', 'rdp' or 'negotiate' ; for client compatible layer security_layer=negotiate

; minimum security level allowed for client for classic RDP encryption ; use tls_ciphers to configure TLS encryption ; can be 'none', 'low', 'medium', 'high', 'fips' crypt_level=high

; X.509 certificate and private key ; openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365 ; note this needs the user xrdp to be a member of the ssl-cert group, do with e.g. ;$ sudo adduser xrdp ssl-cert certificate= key_file=

; set SSL protocols ; can be comma separated list of 'SSLv3', 'TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3' ssl_protocols=TLSv1.2, TLSv1.3 ; set TLS cipher suites #tls_ciphers=HIGH

; Section name to use for automatic login if the client sends username ; and password. If empty, the domain name sent by the client is used. ; If empty and no domain name is given, the first suitable section in ; this file will be used. autorun=

allow_channels=true allow_multimon=true bitmap_cache=true bitmap_compression=true bulk_compression=true #hidelogwindow=true #max_bpp=32 max_bpp=128 new_cursors=true ; fastpath - can be 'input', 'output', 'both', 'none' use_fastpath=both ; when true, userid/password must be passed on cmd line #require_credentials=true ; You can set the PAM error text in a gateway setup (MAX 256 chars) #pamerrortxt=change your password according to policy at http://url

; ; colors used by windows in RGB format ; blue=009cb5 grey=dedede #black=000000 #dark_grey=808080 #blue=08246b #dark_blue=08246b #white=ffffff #red=ff0000 #green=00ff00 #background=626c72

; ; configure login screen ;

; Login Screen Window Title #ls_title=My Login Title

; top level window background color in RGB format ls_top_window_bg_color=009cb5

; width and height of login screen ls_width=350 ls_height=430

; login screen background color in RGB format ls_bg_color=dedede

; optional background image filename (bmp format). #ls_background_image=

; logo ; full path to bmp-file or file in shared folder ls_logo_filename= ls_logo_x_pos=55 ls_logo_y_pos=50

; for positioning labels such as username, password etc ls_label_x_pos=30 ls_label_width=65

; for positioning text and combo boxes next to above labels ls_input_x_pos=110 ls_input_width=210

; y pos for first label and combo box ls_input_y_pos=220

; OK button ls_btn_ok_x_pos=142 ls_btn_ok_y_pos=370 ls_btn_ok_width=85 ls_btn_ok_height=30

; Cancel button ls_btn_cancel_x_pos=237 ls_btn_cancel_y_pos=370 ls_btn_cancel_width=85 ls_btn_cancel_height=30

[Logging] LogFile=xrdp.log LogLevel=DEBUG EnableSyslog=true SyslogLevel=DEBUG ; LogLevel and SysLogLevel could by any of: core, error, warning, info or debug

[Channels] ; Channel names not listed here will be blocked by XRDP. ; You can block any channel by setting its value to false. ; IMPORTANT! All channels are not supported in all use ; cases even if you set all values to true. ; You can override these settings on each session type ; These settings are only used if allow_channels=true rdpdr=true rdpsnd=true drdynvc=true cliprdr=true rail=true xrdpvr=true tcutils=true

; for debugging xrdp, in section xrdp1, change port=-1 to this: #port=/tmp/.xrdp/xrdp_display_10

; for debugging xrdp, add following line to section xrdp1 #chansrvport=/tmp/.xrdp/xrdp_chansrv_socket_7210

; ; Session types ;

; Some session types such as Xorg, X11rdp and Xvnc start a display server. ; Startup command-line parameters for the display server are configured ; in sesman.ini. See and configure also sesman.ini. [Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20

[Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 ##xserverbpp=24 xserverbpp=128 #delay_ms=2000

[vnc-any] name=vnc-any lib=libvnc.so ip=ask port=ask5900 username=na password=ask #pamusername=asksame #pampassword=asksame #pamsessionmng=127.0.0.1 #delay_ms=2000

[neutrinordp-any] name=neutrinordp-any lib=libxrdpneutrinordp.so ip=ask port=ask3390 username=ask password=ask

; You can override the common channel settings for each session type #channel.rdpdr=true #channel.rdpsnd=true #channel.drdynvc=true #channel.cliprdr=true #channel.rail=true #channel.xrdpvr=true

ruisen
  • 121
  • 3

3 Answers3

0

If you run service xrdp restart via ssh does it work? Some users have reported that working around the issue.

I think this may be due to a known xrdp issue which has been addressed recently. 1 2 3 4

Essentially, xrdp confuses the handling of IPv4 vs. IPv6 addresses, which prevents the connection from being made. This has been addressed by switching to Unix domain sockets. I don't believe it has been released as a stable version to repositories yet.

Bob
  • 101
0

I had very similar issues after installing mesa for lutris: https://github.com/lutris/docs/blob/master/InstallingDrivers.md.

I spent hours debugging, but I could not fully understand the root cause. Not sure what fixed me, but I run some of these commands from the first comment and tried setting to the default gnome from: https://superuser.com/questions/1479313/how-do-i-get-the-full-ubuntu-gnome-experience-via-xrdp. I also removed the mesa with:

sudo apt install ppa-purge
sudo ppa-purge ppa:kisak/kisak-mesa

I hope it moves someone with the same issue to the right direction.

pbraun
  • 1
0

XRDP disconnects immediately after correct credentials

Theres an answer in here that changes to using xfce4 that worked immediately for me.

Jahiz
  • 1