Everything you need to know about the NoMachine Remote Terminal (v10)
NoMachine 10 introduces support for NoMachine Remote Terminal sessions, allowing users to open a terminal session directly on a target node without requiring a graphical desktop environment and without the need to use external tools.
In previous versions of NoMachine, executing commands on a remote machine required either establishing an external SSH session, or connecting to a remote desktop and launching a terminal, or (for Linux only) run a console or terminal in a custom session.
The NoMachine Remote Terminal removes dependency on external tools and the need to start a full NoMachine desktop to open just the console and uniform the concept of terminal on all the supported platforms.
How NoMachine Terminal works
The terminal service is enabled by default.
Launching the terminal is integrated into the NoMachine deskop client:
1) Open the UI
2) In the Machines panel click on 'Add'
3) and click on 'Add terminal connection'
On the remote host, if you connect by NX protocol (default), you need to have a NoMachine server installed.
Remote Terminal sessions are non-persistent, even on Linux: sessions cannot be disconnected and resumed later,
closing the terminal terminates any running processes started within that session.
The NoMachine Enterprise Client is now a full-fledged SSH client. NoMachine Terminals can be run on a remote host also via SSH protocol, in this case it's not necessary that a NoMachine server is installed there. It's however mandatory that an SSH server is up and running on that host. We recommend to refer to the official documentation of your Operating System to setup correctly the SSH server. To connect, be sure to specify the port where the SSH server is listening, by default 22. Terminals over SSH cannot be disabled by NoMachine settings.
How to disable NoMachine Terminals on server side
The Remote Terminal functionality is available through a new session type, named 'remote-terminal'. It can be disabled and configured by administrators on server side, if required, by editing the server.cfg file on the remote host or - if the server supports profiles- via a profile rule.
Location of server.cfg is:
on Linux - /usr/NX/etc/server.cfg on Linux
on macOS - /Applications/NoMachine.app/Contents/Frameworks/etc/server.cfg
on Windows 64bit - C:\Program files\NoMachine\server.cfg
Where Enterprise Terminal Server* is specified, it applies also to Enterprise Terminal Server Cluster. Similar for Cloud Server*, it applies also to Workgroup Cloud Server, Enterprise Cloud Server and Enterprise Cloud Server Cluster.
First way - Edit server.cfg
and remove 'remote-terminal' from the list of session types in the AvailableSessionTypes key.
If you have multiple standalone installations of NoMachine servers, do this on each host where you need it.
In case of multinode environments, apply it to server.cfg of the main server (Enterprise Terminal Server* or Cloud Server*) AND on all nodes or only those nodes where you want to forbid the Remote Terminal session.
Second way - Add a profile rule
This applies to servers that support profile rules, like the Terminal Server, Enterprise Terminal Server* and Cloud Server*.
Launch the command via CLI, on Linux and macOS syntax is:
$ sudo /etc/NX/nxserver command_here
on Windows,open a CMD console as administrator:
> %ALLUSERSPROFILE%\NoMachine\nxserver\nxserver.exe command_here
For Terminal Server and Enterprise Terminal Server*, use:
nxserver --ruleadd --class session --type remote-terminal --value no
For Cloud Server*, use:
nxserver --ruleadd --class propagation --type remote-terminal --value no
For Terminal Server and Enterprise Terminal Server*, to disable the Remote Terminal for a specific node, use:
nxserver --ruleadd --class session --type remote-terminal --value no --node Node_Name
For Cloud Server*, use:
nxserver --ruleadd --class propagation --type remote-terminal --value no --node Node_Name
or to disable it for a group of nodes:
i) create the group of nodes and add the nodes to the group
nxserver --nodegroupadd Group_Name
nxserver --nodeadd Node_Name --node-group Group_Name
ii) add the rule
For Terminal Server and Enterprise Terminal Server*, use:
nxserver --ruleadd --class session --type remote-terminal --value no --node-group Group_Name
For Cloud Server*, use:
nxserver --ruleadd --class propagation --type remote-terminal --value no --node-group Group_Name
How to limit the number of Remote Terminals to be opened on the server host
Keys in server.cfg file to control terminal usage when connecting by NX protocol are:
RemoteTerminalsLimit
Defines the maximum number of concurrent remote terminals allowed on the server
RemoteTerminalsUserLimit
Defines the maximum number of concurrent remote terminals per-user
Limits defined in these keys cannot exceed the limits imposed by the server type (see table below).
By default, users can open as many NoMachine terminals as allowed by the server-wide limit. Setting a per-user limit (e.g. 1) forces users to close an existing terminal session before starting a new one.
Each active terminal contributes to increase the counter of terminals:
the counter increases when a terminal is opened
the counter decreases when the terminal is closed
Limits on the number of NoMachine Remote Terminals by server type
Limits are enforced at server level and vary by server product. These limits are hardcoded in the server. This applies to client connections by NX protocol.
| Product | Number of NoMachine Terminals |
| Personal Edition | 4* |
| WCS | 40 |
| CS | 40 |
| ED,ETS,ETSC,ECS,ECSC | unlimited |
| WS | unlimited |
| SBTS | unlimited |
| TS | unlimited |
* All connections must be run from the same machine
WCS Workgroup Cloud Server
CS Cloud Server
ED Enterprise Desktop
ETS Enterprise Terminal Server
ETSC Enterprise Terminal Server Cluster
ECS Enterprise Cloud Server
ECSC Enterprise Cloud Server Cluster
WS Workstation
SBTS Small Business Terminal Server
TS Terminal Server
