-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some sort of keepalive on xrdp connections is needed #2765
Comments
I think this is expected behaviour. Without the DWORD, the client will send a Client Suppress Output PDU to the server which instructs it to not send any display updates. There's no keepalive packet that I can find in the spec. The spec includes many virtual channels in addition to the graphical channel. I suspect that what is happening here is in a MS clent to MS server scenario, one of these channels has some data on it, and that channel isn't supported by xrdp. 2-5 minutes is a pretty aggressive cut-off time. Are you running through a corporate firewall? |
Yeah, I also think it is an expected behaviour but not an wanted behaviour. I would personally like to implement keepalive stuff if I could figure out what's happening MS to MS. |
Another possibility (a total guess on my part) is it could be network characteristic detection messages The only way to be sure would be to run through a proxy and see what the messages are. |
Yes, the environment is pretty much corporate. It is site-to-site connection. |
The best I can offer you is to use TCP keepalive to keep the connection running. This has come up a few times, so I've added a FAQ for it:- Give that a go and let us know it it works for you. |
I've tried to tune TCP keepalive on xrdp server and it working fine - I do not observe disconnections. Thanks a lot for advice! The FAQ is good except for the values of TCP keepalive variables. If the aim is to keep connection alive, we probably need to set |
Glad we've found a solution. I'm not entirely in agreement with your settings (but if it works for you, stick with it). My understanding is the reason |
Now I understand your reasoning.. And I think you're right. My considerations were elaborated for ideal network - I forgot about packet loss. I hope that some day xrdp will be able to support connection by itself without the need in additional system/client tweaks. Unfortunately this will stop people from getting to know such exciting stuff like TCP keepalive :) |
There are a couple of ways we can manage this. One way is to figure out what Win 11 to Win 11 traffic looks like, and implement some of those messages, at least partially. Another way is to add code to xrdp to allow I'm going to keep this open, change the title and make this a feature request. |
xrdp version
0.9.21.1
Detailed xrdp version, build options
Operating system & version
Linux
Installation method
dnf / apt / zypper / pkg / etc
Which backend do you use?
No response
What desktop environment do you use?
No response
Environment xrdp running on
No response
What's your client?
No response
Area(s) with issue?
Network
Steps to reproduce
✔️ Expected Behavior
Connection is still alive
❌ Actual Behavior
Connection is lost, client gets disconnected
Anything else?
When I use the same Windows client to connect to Windows RDP server, I see that data is sent via port 3389 every 1-2 seconds or so even when RDP window is minimized. It keeps connection alive.
No disconnection occurs with xrdp server if I tell Windows client not to suppress remote desktop (HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\RemoteDesktop_SuppressWhenMinimized = 2). Constant desktop streaming keeps connection alive.
Please tell me if I need to provide additional information.
The text was updated successfully, but these errors were encountered: