Install and Use NoMachine Remote Desktop on CentOS 8

NoMachine is a free and open-source remote desktop software used for remote access, desktop sharing, virtual desktop and file transfer between computers. It uses NX protocol that provides local speed with low bandwidth. It can be install on many operating systems including, Linux, Windows, Mac OS X and Android. If you are looking for a remote desktop solution then NoMachine is the best option for you.

In this tutorial, we will show you how to install and use NoMachine on CentOS 8.


  • A desktop system running CentOS 8.
  • A root password is configured the server.

Install NoMachine

By default, NoMachine is not included in the CentOS default repository. So you will need to download it from their official website.

You can download it with the following command:


Once the download is completed, install the downloaded file with the following command:

dnf install nomachine_7.1.3_1_x86_64.rpm

Once the installation is completed, you should get the following output:

  PulseAudio Backend

  The NoMachine  setup procedure  could not  detect  your  PulseAudio
  installation:  either  PulseAudio is not  installed  on your system
  or it was  installed  in a non-standard path.  If PulseAudio is not
  available, NoMachine audio support will try to rely on ALSA device.
  Please note  that you can enable  PulseAudio  support  at any time;
  to do this  make sure that you have PulseAudio installed, then run:

    /usr/NX/scripts/setup/nxnode --audiosetup 

  to specify the location of the PulseAudio configuration files.
NX> 700 Installing: nxserver version: 7.1.3.
NX> 700 Using installation profile: Red Hat.
NX> 700 Install log is: /usr/NX/var/log/nxinstall.log.
NX> 700 Creating configuration in: /usr/NX/etc/server.cfg.
NX> 700 Server install completed with warnings.
NX> 700 Please review the install log for details.
NX> 700 Install completed at: Tue Feb 16 05:43:49 2021.
NX> 700 NoMachine was configured to run the following services:
NX> 700 NX service on port: 4000

  Verifying        : nomachine-7.1.3-1.x86_64                                                                                              1/1 



Configure Firewall

Next, you will need to allow TCP port 4000 and UDP port 4011-4999 through firewalld. You can allow them with the following command:

firewall-cmd --add-port=4000/tcp --permanent
firewall-cmd --add-port=4011-4999/udp --permanent

Next, reload the firewalld to apply the changes.

firewall-cmd --reload

Working with NoMachine

After installing NoMachine, you can launch it from the search bar as shown below:

NoMachine Remote Desktop

Click on the NoMachine to launch the application as shown below:

NoMachine client

Click on the OK button. You should see the following screen:

Create Connection

Now, click on the Add button to create a new connection. You should see the following screen:

Remote Address

Provide your remote NoMachine hostname, IP address, port, protocol and click on the Connect button. You will be asked to provide usename and password for remote computer as shown below:

Enter username and password

Provide username, password and click on the Login button. Once connected, you should see the following screen:


Change your screen settings and click on the OK button. You should see the following screen:

Scale remote desktop

Select your display resolution and click on the OK button. Once connected, you should see the following screen:

Remote desktop connection established


In the above guide, you learned how to install and use NoMachine remote desktop software on CentOS 8. You can now easily manage multiple remote systems easily. Feel free to ask me if you have any questions.

Share this page:

Suggested articles

4 Comment(s)

Add comment


By: Robert

Does it also work on centos 7? Is it really free or do you need to pay for add ons?

What are alternatives to this?

By: Marcel

Addition to the article. AFAIK Nomachine was at one time open source, but it is no longer. But it is free of use.

The software exists for a long time, and therefore I'd believe there is a working version for Centos7, if not the current one.

Alternatives would be the classics: vnc, teamviewer, ssh with x11 port forwarding, RDP depending on what you want to use it for.

By: Steve

NX rocks!  It feels 2-3x faster than Linux VNC or RDP solutions.  NoMachine originally created the NX protocol which is an optimized VNC + ssh tunnels that reuse ssh authentication already setup.

But the company desided to drop their F/LOSS roots and a few other projects forked the code.  Google had one. FreeNX was another, and x2go.  Google's died. FreeNX was good around 2011-ish, but x2go has continued and mostly gotten better over time.   If you want a remote desktop into a Linux system and ARE NOT using Gnome3, then x2go (a F/LOSS project) is the best of these choices.

The trick with x2go is to completely setup ssh with keybased authentication first for OSX or Linux clients into the x2go server.  Then the authentication using ssh-keys "just works."  On Windows x2go-clients, the keys created by putty don't seem to work, so we use the ssh-keygen provided with the x2go-client installer, then use the scp also included in the client install, to push the public key to the server and manually place it, set the correct permissions.  On Unix systems, that is automated by the ssh-copy-id tool.

x2go has clients for Windows, Mac, and Linux workstations.  I've seen NX clients for tablets, but never tried to use them.  All NX client/server setups don't seem to be interoperable. Booo.  NoMachine definitely got the embrace and extend down. Last time I checked, NoMachine had a 3 client limit.  x2go doesn't have any limits.  Whether anyone should support that, is a different, personal/business question. Did I mention that x2go feels 2-3x faster than Linux RDP/VNC implementations?

If on the same LAN, I much prefer to use X11 Forwarding via ssh -X.  If on the same LAN going into a KVM virtual machine and I **need** a full desktop, then the SPICE protocol is nearly native performance. SPICE is limited to KVM VMs. No other hypervisor supports it and it doesn't work on physical installs.  libvirt and virt-manager use SPICE by default.

But anyone using/accessing Linux systems really should get comfortable with ssh.  ssh is how most system-to-system secure communications are and should be handled.  NX does it.  sftp, scp, rsync, most Unix backup tools, vim, sshfs, and the list continues. If you have 2 systems and want the to access each other, transfer files, do remote file editing, run programs on the other system, locally mount the remote file system securely over the internet, then ssh should be involved.  Best of all, if you setup ssh-keys between the systems, that authentication "just works" for everything else too.

Check out x2go.  Setup of x2go after ssh is setup is just a few commands.  If you know what you are doing, it is about 2 minutes to do both, with keys, on the client AND server with fail2ban to protect against bute-force attacks.  Security for x2go is dependent on security of ssh.

I guess that's enough.  ssh and x2go rock.  x2go is another stable, NX protocol, implementations. Nobody should be using RDP or VNC for the last 10 yrs or so to connect into a remote Linux system.  If you must use either of those, please, please, only allow localhost connections and force ssh-tunnels to be used.  Please.

By: Charles

I will prefer guacamole then all of this cause first you have more control on your system and is this being tunneled from nomachines servers?? Another thing I will not trust it for... These days security is the primary concerns for everyone I will take my 10nano seconds delay over going thought someone else's server just to remote into a gui. Second thing why gui?? Run webmin or cockpit for management... It looks like this article is for newbies and enthusiasts rather then for admins.