Skip to content
Cloudj

VPS how-to

How to connect to a Windows VPS with Remote Desktop

Connect to a Windows VPS with Remote Desktop from Windows, macOS, Linux or a phone, then lock it down with NLA, a strong password and IP-restricted RDP.

Updated · 5 min read

To connect to a Windows VPS you need three things: the server's IP address, the login details, and a Remote Desktop (RDP) client. That part takes two minutes. The part that deserves more care comes right after: a Windows server with RDP open to the whole internet soon attracts automated password-guessing attempts, so this guide also covers the few settings that make the connection safe to leave running.

Before you connect

Windows servers on Cloudj use password login rather than SSH keys. After you deploy, open the server page in the Cloudj console. It shows the public IPv4 address and the generated password. The username on Windows servers is normally Administrator; use the one shown with your login details.

Give the server a few minutes after deployment before your first attempt. Windows finishes its first-boot setup in the background, and an early connection can fail even though nothing is wrong.

Remote Desktop listens on TCP port 3389 by default. If you are on a corporate or school network that blocks outbound connections to unusual ports, test from another network first.

Connect to a Windows VPS from each operating system

Windows

Windows includes the Remote Desktop Connection client.

  1. Press Win+R, type mstsc and press Enter.
  2. Enter the server IP in Computer and click Connect.
  3. When asked for credentials, choose More choices, then Use a different account, and enter Administrator with the password from the server page.
  4. Accept the certificate warning the first time. The server uses a self-signed certificate, which is expected.

You can also start it directly from a terminal, adding the port if you change it later:

mstsc /v:203.0.113.10
mstsc /v:203.0.113.10:33899

Under Show Options, the Local Resources tab lets you share the clipboard and local drives, which is the easiest way to copy files to the server.

macOS

Install Windows App (formerly Microsoft Remote Desktop) from the Mac App Store. Click the plus button, choose Add PC, enter the IP address, and add a user account with Administrator and the password. Double-click the PC to connect.

Linux

Remmina is the most common graphical client and handles RDP out of the box:

sudo apt install -y remmina

Create a new connection, choose the RDP protocol, and enter the IP, username and password. If you prefer the command line, FreeRDP works well. On distributions that ship FreeRDP 3, the X11 client is called xfreerdp3:

sudo apt install -y freerdp3-x11
xfreerdp3 /v:203.0.113.10 /u:Administrator /dynamic-resolution

Android and iPhone

Install Windows App from Google Play or the App Store, add a PC with the IP address and credentials, and connect. A phone is fine for restarting a stuck program; for real work, use a computer.

Change the password first

The generated password is strong, but it has been displayed in a browser. Change it on the first login: press Ctrl+Alt+End inside the session and choose Change a password, or open an elevated Command Prompt and run:

net user Administrator *

Store the new password in a password manager. If you prefer to keep the original, at least treat the console account that can view it as sensitive and protect it with a strong password of its own.

Make sure NLA is on

Network Level Authentication (NLA) makes the client prove the credentials before the server opens a full Windows session. That reduces the load from bots and blocks some older attack paths. Check it in an elevated PowerShell window; 1 means NLA is required:

(Get-CimInstance -Namespace root\cimv2\TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'").UserAuthenticationRequired

If it returns 0, turn it on:

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1

All the clients above support NLA, so there is no reason to leave it off.

Limit who can reach RDP

The strongest single step is to accept RDP only from addresses you trust. If you work from a fixed office IP, restrict the built-in firewall rules to it. Keep your current session open while you do this, and test a new connection before you log out:

Set-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP,RemoteDesktop-UserMode-In-UDP -RemoteAddress 203.0.113.50

If your home IP changes often, two practical alternatives are a VPN server you connect through first (see setting up WireGuard on a VPS) or a small list of addresses you update when needed.

Changing the RDP port

Moving RDP off 3389 does not stop a targeted attacker, but it cuts the automated noise in your logs considerably. Add the firewall rule first, then change the port, then restart the service:

New-NetFirewallRule -DisplayName 'RDP 33899' -Direction Inbound -Protocol TCP -LocalPort 33899 -Action Allow
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value 33899
Restart-Service -Name TermService -Force

Your session drops when the service restarts. Reconnect with 203.0.113.10:33899. Once that works, disable the old rules with Disable-NetFirewallRule -Name RemoteDesktop-UserMode-In-TCP,RemoteDesktop-UserMode-In-UDP. If you also restrict by IP, add -RemoteAddress to the new rule.

Watch the failed logins

Failed logons are recorded as event ID 4625. This shows the most recent ones, including the source address:

Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20

A steady stream of entries is the sign that RDP is too exposed. The broader secure new VPS checklist covers updates and the rest of the basics.

When the connection fails

Message or symptomWhat it usually meansWhat to try
Cannot connect to the remote computerPort closed, wrong port, or server still bootingTest-NetConnection 203.0.113.10 -Port 3389 from Windows, nc -vz 203.0.113.10 3389 from macOS or Linux
Credentials did not workWrong username format or old passwordUse .\Administrator and the current password
Connects, then drops right awayFirewall or port change half appliedCheck that the rule and PortNumber match
Session is slow or laggyDistance to the server or heavy visual settingsLower colour depth and turn off wallpaper in client options

If sessions feel slow everywhere, the server may simply be far from you. The VPS locations guide and the steps in choosing a VPS location by latency help you pick a closer city. For location-specific advice, see our guides to a Windows VPS in the UK and a Windows VPS in Singapore.

FAQ

Where do I find the Windows password?

On the server page in the Cloudj console, next to the IP address. If you change it inside Windows, the console has no way to know the new one, so keep it in a password manager.

Can I use SSH keys with a Windows VPS?

Cloudj Windows servers use password login. You can install the OpenSSH server feature inside Windows later if you want SSH access as well.

Is there an extra cost for Windows?

Windows servers include a monthly licence fee, and the console shows it before you deploy. Live prices are on the pricing page.

Do I need Windows at all?

Only if your software needs it. Many server workloads run fine on Linux; our comparison of Linux vs Windows VPS helps you decide.

Get connected

Deploy a Windows server in the Cloudj console, check the OS list for your location, and connect with the client for your device. Spend the next five minutes on NLA and IP restrictions, and the server is ready for daily use.

Deploy a server or order proxies

Pick a location in the console, see the live price, and pay from your balance.