Remmina Config

Integrate RDP and VNC over NoPorts using Remmina (Linux)

Remmina is a Remote Desktop client for Linux which supports a number of remote access protocols. This guide will walk you through setting up Remmina to connect over NoPorts. While it focuses on VNC and RDP, it should work for most of the other protocols available through Remmina.

Prerequisites:

Installing Remmina and Plugins

Dependent on your distribution, the steps may vary. Remmina is quite popular, so you should be able to web search your way to installing Remmina.

In most cases, the package name is remmina and you will need to make sure that some optional dependencies are installed:

  • freerdp - if you want to use RDP (a.k.a. Windows app) with Remmina

  • libvncserver - if you want to VNC (a.k.a. MacOS screen sharing) with Remmina

If you already have Remmina running, you may need to restart it after installing these optional dependencies, otherwise they won't appear as options to create profiles for. By default, Remmina won't full quit when you close the window. So, check your app tray to full quit, or use the killall remmina command.

Getting the path to npt

If Remmina doesn't have access to the PATH, it may not be able to find npt . To mitigate this, we will use the absolute path when we create our hook for Remmina.

Run the following command:

which npt

The command should output a path such as:

/usr/local/bin/npt

Save this path for later; we will use it during profile creation.

Setting up an RDP profile

Create a new profile. There are four settings we should change on this screen:

  • Name: a nickname for your profile, anything you want.

  • Protocol: RDP

  • Server: The loopback interface IP address followed by a random free local port of your choice.

    • Make sure the port is unique per profile, or you can only use one at a time.

  • Username: The username of the account you want to log in as.

Now go to the Behavior tab.

Here, we need to craft an npt command that will get us access to RDP on the remote machine.

/usr/local/bin/npt -f @your_client -t @your_device -d device_name -r @rv_am --lp 12345 -p 3389 -x

Breaking down this command:

Command portion
Explanation

/usr/local/bin/npt

Run the npt command

-f @your_client

The "from" atSign (atSign of the current computer)

-t @your_device

The "to" atSign (atSign of the device you're connecting to)

-d device_name

The device name you gave when you setup sshnpd

-r @rv_am

The atSign of the relay you want to use

--lp 12345

The local port, must match the port we added on the basic page.

-p 3389

The remote port, 3389 is the canonical RDP port

-x

Tell npt to exit when connected (which tells remmina npt is ready for it to connect)

Place this command in the "Before connecting" field.

Save the profile, then use it to connect. At first, you will see a popup window that Remmina opens when it runs the command. That window will automatically close if the command is successful, at which point it will start the RDP connection.

Setting up a VNC profile

Create a new profile. There are four settings we should change on this screen:

  • Name: a nickname for your profile, anything you want.

  • Protocol: VNC

  • Server: The loopback host followed by a random free local port of your choice.

    • Make sure the port is unique per profile, or you can only use one at a time.

  • Username: The username of the account you want to login as.

Now go to the Behavior tab.

Here, we need to craft an npt command that will get us access to RDP on the remote machine.

/usr/local/bin/npt -f @your_client -t @your_device -d device_name -r @rv_am --lp 56789 -p 5900 -x

Breaking down this command:

Command portion
Explanation

/usr/local/bin/npt

Run the npt command

-f @your_client

The "from" atSign (atSign of the current computer)

-t @your_device

The "to" atSign (atSign of the device you're connecting to)

-d device_name

The device name you gave when you setup sshnpd

-r @rv_am

The atSign of the relay you want to use

--lp 56789

The local port, must match the port we added on the basic page

-p 5900

The remote port, 5900 is the canonical VNC port on MacOS

-x

Tell npt to exit when connected (which tells remmina npt is ready for it to connect)

Place this command in the "Before connecting" field.

Save the profile, then use it to connect. At first, you will see a popup window that Remmina opens when it runs the command. That window will automatically close if the command is successful, at which point it will start the VNC connection.

Troubleshooting

If you have trouble, try running the npt command in a terminal first. If you run into issues, then you know it is your npt command. If the command does work in a terminal, then it is likely something with your Remmina configuration, you may have to tweak additional settings.

Last updated