Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

To add a graphical desktop to an Ubuntu VPS, connect over SSH, install the lightweight XFCE desktop and xrdp, select XFCE for the xrdp session, open TCP port 3389 in both the VPS provider firewall and Ubuntu’s firewall, then connect with an RDP client. A normal Linux user with a password is required; an SSH key by itself is not an xrdp login.

This guide follows the Ubuntu 24.04 procedure and includes the fixes for connection failures, certificate errors, black screens and high-latency sessions.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What xrdp adds to an Ubuntu VPS

A minimal VPS is normally headless: it provides a shell over SSH but has no desktop environment for a graphical login. xrdp supplies the server side of Microsoft’s Remote Desktop Protocol (RDP), while XFCE supplies the graphical session that appears after authentication. The Ubuntu Noble xrdp manpage describes xrdp as an RDP server; its documented configuration file is /etc/xrdp/xrdp.ini, and its main log is /var/log/xrdp.log.

xrdp creates an independent desktop session for the account that signs in. It is not the same as sharing the physical console of a workstation. That distinction matters on a VPS: you can log in even when nobody is attached to a console, but applications already running in another graphical session may not appear in your new RDP session.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

XFCE is used here because it is relatively lightweight and is the desktop paired with xrdp in Microsoft Learn’s Ubuntu 24.04 instructions. Installing a desktop consumes more disk space and memory than an SSH-only server, so a graphical VPS should be sized for the applications you intend to run.

Requirements and preparation

  • An Ubuntu VPS, preferably Ubuntu 24.04 for the commands in this guide. Package names and desktop behavior can differ on older releases.
  • An SSH connection that works before you change anything. Keep that connection method available as your recovery path.
  • A sudo-capable local Linux account. The account that will use RDP needs a password; a cloud-provider SSH key is not, by itself, an xrdp password.
  • The VPS public IPv4 or IPv6 address, and access to the provider’s security group, firewall or network ACL.
  • Permission to change the guest firewall if UFW is enabled.

Do not close your SSH window until you have tested RDP. If a firewall rule or desktop configuration is wrong, SSH is the quickest way to inspect logs and undo the change.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install XFCE and xrdp over SSH

1. Update package metadata and install the desktop

SSH to the VPS with the account that has sudo access. Run the documented Ubuntu 24.04 installation commands:

sudo apt update
sudo apt install xfce4 xfce4-session xrdp
sudo systemctl enable xrdp

The installation may ask configuration questions for desktop components. Accept the package defaults unless your organization has a specific display-manager policy. The xfce4 package provides the desktop, xfce4-session provides the session startup, and xrdp listens for RDP connections.

2. Apply the Ubuntu 24 certificate-group step when needed

Microsoft’s Ubuntu 24 procedure includes adding the xrdp service account to the ssl-cert group:

sudo adduser xrdp ssl-cert

Apply this when the installed package or service reports that xrdp cannot access its certificate. Group membership is read when the service starts, so restart xrdp after making the change. If the account is already a member, the command reports that rather than creating a duplicate membership.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

3. Select XFCE for the RDP user

Run the following command as the Linux user who will sign in through RDP, not as root:

echo xfce4-session >~/.xsession
sudo systemctl restart xrdp

The first command creates the user’s ~/.xsession file and tells xrdp to start XFCE. Because the file is in the user’s home directory, each account that needs an XFCE RDP session should have its own file. The second command reloads the service so the session selection and any certificate-group change take effect.

4. Confirm that the service started

Before opening the network, check the service from SSH:

sudo systemctl status xrdp --no-pager

Look for an active service rather than a failed state. If it failed, do not keep retrying the client; inspect the service output and /var/log/xrdp.log first.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Open the RDP network path without exposing more than necessary

Provider firewall or security group

There are two separate firewalls to consider. First, add an inbound rule in the VPS provider’s security group, network ACL or equivalent control panel for TCP 3389. Apply the rule to the VPS’s public interface and restrict the source to the public IP addresses or VPN range that should administer the machine whenever the provider supports source filtering.

A provider rule alone is not enough if UFW blocks the packet inside Ubuntu. Conversely, a UFW rule cannot help when the provider drops the traffic before it reaches the VPS.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

UFW on the guest

Ubuntu’s remote-desktop documentation shows this range rule for its documented GNOME modes:

sudo ufw allow 3389:3390/tcp
sudo ufw reload

An xrdp-only installation normally needs only port 3389. A narrower rule is safer when you know the trusted source address:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo ufw allow from <trusted-source-ip> to any port 3389 proto tcp
sudo ufw reload

Replace the angle-bracketed value with the real public source address; do not type the brackets. If you use a fixed office or VPN address, the rule limits RDP to that location. If your source address changes frequently, use the provider’s VPN or access-control feature rather than leaving 3389 open to the entire internet.

Check the current policy before changing it:

sudo ufw status verbose

Make sure SSH remains allowed before enabling or tightening UFW. Never remove your working SSH path as part of an RDP setup.

Connect from Windows or Linux

Windows

  1. Open Remote Desktop Connection by running mstsc, or open Microsoft Remote Desktop if that is the client installed on your Windows edition.
  2. Enter the VPS public IP address. Use a DNS name only if it resolves to the correct current address.
  3. Start the connection and accept the certificate warning only after confirming that the address is your VPS.
  4. At the xrdp login screen, select the default Xorg session when that option is offered.
  5. Enter the regular Linux username and its password. Do not enter the cloud account’s SSH key text in the password field.

The first XFCE login can take longer than later connections while the user profile is created. A successful session normally shows the XFCE panel, desktop and application menu rather than a shell-only window.

Ubuntu and other Linux clients

Remmina is an option on Ubuntu. Create an RDP connection, enter the VPS address, choose the RDP protocol, and supply the same Linux username and password. Other clients supported by the xrdp project can be used on platforms that do not include Microsoft’s client. Client labels differ by operating system, but the server still expects an RDP connection to TCP 3389 and an XFCE-capable user session.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

Verify the completed setup

Use these checks when the client does not behave as expected:

  • Confirm the service is enabled and running with sudo systemctl status xrdp --no-pager.
  • Confirm that a listener exists on the RDP port with sudo ss -ltnp | grep 3389. The exact process display varies by Ubuntu release.
  • Confirm that the provider rule and UFW both allow TCP 3389 from the client’s actual public address.
  • Confirm that ~/.xsession belongs to the account being used for RDP and contains xfce4-session.
  • Review /var/log/xrdp.log for xrdp-level errors and /etc/xrdp/xrdp.ini when you need to inspect server configuration.

Testing from the same network where the RDP rule was created avoids confusing a local firewall problem with a provider-routing problem. Once the session works, test again from the normal administration network so you know the source restriction is correct.

Troubleshoot by symptom

The connection times out

A timeout usually means the packet is being dropped before xrdp can answer. Check the VPS public address first, then verify the provider security rule and UFW rule. Confirm that the rule is TCP, not UDP, and that its source range includes the client’s current public address. If the provider has separate rules for IPv4 and IPv6, make sure the client is using the address family for which you opened the port.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The client says the connection was refused

A refusal generally reaches the VPS but finds no service accepting the connection. Check sudo systemctl status xrdp --no-pager and the listening-socket check. A failed service, a restart still in progress or a rule pointing at the wrong private interface can all produce this result. Read /var/log/xrdp.log before changing configuration.

Login returns to the client or shows a black screen

First verify that XFCE and xfce4-session are installed. Then check that the logging-in user, rather than root or another account, owns ~/.xsession and that the file contains exactly xfce4-session. Restart xrdp after correcting it:

sudo systemctl restart xrdp

If the problem persists, inspect /var/log/xrdp.log and the xrdp configuration at /etc/xrdp/xrdp.ini. A black screen is often a session-startup problem, not proof that the network port is closed; separate the network test from the desktop-session test.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

Ubuntu 24 reports a certificate or startup error

Check the service account’s group membership and apply the documented certificate-group command if necessary:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo adduser xrdp ssl-cert
sudo systemctl restart xrdp

Then review the service status and xrdp log. Restarting matters because a running service does not automatically acquire supplementary group changes.

The desktop appears, but input feels slow

Microsoft notes that RDP over the internet can have noticeable input latency, influenced by network speed and the distance to the VM datacenter. Latency is not normally fixed by reinstalling xrdp. Choose a VPS region closer to administrators, use a stable network path, avoid transferring large files over the interactive session, and keep the XFCE desktop focused on the applications that need a GUI.

The SSH account works but RDP authentication fails

SSH keys and xrdp passwords are separate authentication methods. Set or change a password for the local Linux account and use that account’s exact username at the xrdp prompt. Keep the account non-root and verify that it has a home directory containing the .xsession file.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Security practices for an internet-facing RDP port

  • Limit TCP 3389 at both layers: the provider firewall and UFW. Prefer a trusted source IP, management subnet or VPN instead of 0.0.0.0/0.
  • Use a strong, unique password for every account allowed to log in through xrdp. Remove or lock accounts that no longer need access.
  • Keep SSH available for recovery, but restrict SSH separately using your normal key-based policy and source controls.
  • Install Ubuntu security updates through your established maintenance process. Desktop packages and xrdp should be updated together so their dependencies remain consistent.
  • Review xrdp logs when investigating unexpected login attempts or repeated failures. The primary log path is /var/log/xrdp.log.
  • Close the RDP rule when the graphical session is no longer needed. An unused internet-facing service is unnecessary attack surface.

Changing the RDP port alone does not replace source restriction and account security. The documented xrdp service uses 3389 by default, and that is the port your provider and guest firewall must permit unless you intentionally change the server configuration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

XFCE/xrdp compared with SSH and Ubuntu GNOME remote desktop

Choose the method based on whether you need a full desktop, which client devices must connect, and how much network exposure you can accept.

Approach What you get Best fit Main trade-off
Headless SSH Terminal administration without a graphical session Web servers, databases, automation and routine maintenance No desktop applications; lowest graphical overhead
XFCE with xrdp An independent XFCE desktop reached with standard RDP clients over TCP 3389 VPS workloads that need a GUI and must be reachable from Windows or Linux Requires desktop packages and an internet-accessible RDP path unless protected by a VPN or source restriction
Ubuntu GNOME Remote Login or Desktop Sharing Ubuntu’s built-in GNOME remote-desktop modes Systems already configured around GNOME and its documented sharing or login workflow Different session behavior and prerequisites from xrdp; not a drop-in replacement for every minimal VPS

Ubuntu documents separate GNOME Desktop Sharing and Remote Login modes, while xrdp is an independent RDP server. On a minimal VPS where you want a predictable, lightweight session, XFCE plus xrdp is the direct path. If the machine already has a complete GNOME desktop and you specifically need to share an existing console session, evaluate the GNOME mode instead of installing both systems without a reason.

Configuration reference

Item Value or path Purpose
Desktop packages xfce4 and xfce4-session Provide the graphical XFCE environment and session startup
RDP service package xrdp Accepts RDP connections on the VPS
Default RDP port TCP 3389 Provider and guest firewall path for xrdp
User session selector ~/.xsession containing xfce4-session Starts XFCE for the account that logs in
Server configuration /etc/xrdp/xrdp.ini Inspect xrdp settings when troubleshooting
Main xrdp log /var/log/xrdp.log Investigate startup, connection and session errors
Ubuntu Noble manpage package figure 0.9.24-4ubuntu0.1 Version displayed by Ubuntu’s manpage service; it is release-specific, not a timeless version requirement

Removing or disabling the service

If the VPS no longer needs a GUI, first remove the provider and UFW rules for TCP 3389. Then stop xrdp so it cannot accept new sessions:

sudo systemctl disable --now xrdp

Whether you remove the XFCE packages depends on whether other users or local services need them. Keep the SSH recovery path and verify that no required graphical task depends on the packages before uninstalling them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Operational checklist

  1. SSH works and a sudo-capable, password-enabled Linux user exists.
  2. XFCE, xfce4-session and xrdp are installed.
  3. The xrdp service is enabled and active.
  4. The Ubuntu 24 certificate-group membership is applied when the package requires it.
  5. The RDP user’s ~/.xsession starts XFCE.
  6. TCP 3389 is allowed by the provider security rule and, if active, UFW.
  7. The source range is restricted wherever practical.
  8. The RDP client uses the VPS address, the Xorg session and the Linux password.
  9. Failures are checked in /var/log/xrdp.log and /etc/xrdp/xrdp.ini rather than guessed at from the client alone.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.