RDP to Virtualbox Guest hosted on Digital Ocean

Posted December 10, 2018 3.9k views

I’m not sure if this is possible using Digital Ocean as a hosting environment but here goes -

I’m setting up a Virtualbox guest machine running Windows 10 on a droplet running CentOS 7.

Users would need to be able to use Windows Remote Desktop to connect directly into the Virtualbox guest OS running Windows 10 from machines not connected to any internal network (i.e. running them with only direct internet connections).

I’ve tried various configurations, port forwarding in both the CentOS environment and the Virtualbox setup.

I can connect to the droplet using both SSH and XRDP - from there I can connect into the guest Win 10 OS running on the virtualbox - however I need to know if its possible to bypass the connection to the droplet and connect directly into the Virtualbox guest from any machine connected to the internet.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

Hey friend,

At least from a big picture view three things need to be true:

  1. The nested VM (Windows) is listening on it’s interface for external RDP traffic, meaning it is configured to accept outside connections.
  2. The host OS (CentOS) is forwarding traffic to the relevant port on the VM’s IP.
  3. Both the host OS and the guest OS (Windows and CentOS) need to be allowing the port through their firewall. At least on CentOS this is open by default unless you close it, not sure about Windows.

Now I can’t tell you step by step how to do this, and maybe someone else can, but my hope here is that by laying this out you can start to identify where the problem exists. If it’s not working, you know one of the above items is not configured as stated. With that, you can go down the list and make sure that you check off each one. Perhaps it’s true that you think everything is configured for this to be working, but there is something not working as you intended it to with your configuration.

To test connectivity, I like to use telnet. Here’s an example of what that looks like:

[jarland@desktop ~]$ telnet 80
Connected to
Escape character is '^]'.

Now let’s say your Windows installation has an internal IP address of, and let’s say the RDP port is 40 (random number). You might test it within CentOS like this:

telnet 40

If that fails, then you know the answer sits somewhere around #1 above, because you’ve taken the forwarding part out of the equation.

Hope that helps you to move in the right direction at least :)