NoMachine
   HOME

TheInfoList



OR:

NX technology, commonly known as ''NX'' or NoMachine, is a remote access and remote control computer software allowing remote desktop access and maintenance of computers. It is developed by the
Luxembourg Luxembourg, officially the Grand Duchy of Luxembourg, is a landlocked country in Western Europe. It is bordered by Belgium to the west and north, Germany to the east, and France on the south. Its capital and most populous city, Luxembour ...
-based company NoMachine S.à r.l. NoMachine is proprietary software and is free-of-charge for non-commercial use.


History

NX's design was derived from the Differential X Protocol Compressor project (DXPC). In 2003, NoMachine's compression and transport protocol NX was created to improve the performance of the native X display protocol so it could be used over slow connections such as dial-up modems. Originally targeting Linux-based operating systems, the core compression technology, designed by Gian Filippo Pinzari and announced on the KDE and Gnome development forums, was released under the GNU GPL2 license (NX 1) for Linux servers in 2003, whilst other components such as the NX Server and NX Client programs remained
proprietary software Proprietary software is computer software, software that grants its creator, publisher, or other rightsholder or rightsholder partner a legal monopoly by modern copyright and intellectual property law to exclude the recipient from freely sharing t ...
. A number of spinoffs of the NX technology have been developed over the years, such as Freenx and Google's Neatx. In 2010, the company announced they would be releasing the technology under a proprietary license. The last update to NoMachine's open-source project was released in 2012. In 2012, NX software became NoMachine software, also extending support for remote access to Windows and Mac machines. In 2013, NX finally became closed-source with the release of NoMachine 4.


Operating Systems

NoMachine is available for most
desktop computer A desktop computer, often abbreviated as desktop, is a personal computer designed for regular use at a stationary location on or near a desk (as opposed to a portable computer) due to its size and power requirements. The most common configuratio ...
s with common operating systems, including
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and
Windows Server Windows Server (formerly Windows NT Server) is a brand name for Server (computing), server-oriented releases of the Windows NT operating system (OS) that have been developed by Microsoft since 1993. The first release under this brand name i ...
, as well as Apple's
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
. Packages for Linux install on multiple Linux distributions and derivatives, for example, Debian, Ubuntu, Red Hat, CentOS and Fedora Linux. There is also a version which can run on distribution variants for Linux ARM devices, including
Nvidia Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
's Jetson Nano and the Raspberry Pi. An app is available which allows users to connect from smartphones and tablets running Android or Apple's iOS/iPadOS operating system.


Functionality

The functionality of NoMachine varies depending on the variant or version of the software. At its core, NoMachine provides remote access to computers and other endpoints as well as their control and maintenance. After the connection is established, the remote screen becomes visible to the user at the other endpoint. Both endpoints can send and receive files as well as access a shared clipboard, for example. For the user connecting to the remote desktop, it is possible to view and stream audio and video content, including in the browser. Specifically for Linux, Terminal Server products were created for organizations aiming to reduce costs by running multiple desktops on the same Linux host and for those seeking to migrate away from Windows-based systems. In recent years, the functionality of the software has been extended and has been optimized in particular for use in large companies. For this purpose, the enterprise variant Cloud Server was developed for remote administration of large infrastructures.


Authentication

From version 4.0 on, when the default NX protocol is used, the login can be via password-based authentication, private key or Kerberos ticket authentication. When NX is configured to send its data by
SSH The Secure Shell Protocol (SSH Protocol) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution. SSH was designed for Un ...
(available only on enterprise-version servers), the following authentication methods are available: Client to Server * NX login as NX user using the NX SSH key and user password-based authentication * System login with password-based authentication * System login with SSH key-based authentication * System login with SSH key-based authentication and SSH key stored on a smart card * System login with Kerberos ticket existing on client side Server to Node * Login with password * Login with SSH key forwarded from client (e.g. NoMachine Player) via server to node * Login with Kerberos ticket forwarded from client via server to node * Login with Kerberos ticket requested by Kinit on server host * Login with Kerberos ticket requested by PAM module on server host. * Login with password to Kerberos ticket requested by PAM module on node host


Legacy technology

NX compresses the X11 data to minimize the amount of data transmitted, and caches data to keep the session as responsive as possible. For example, the first time a menu is opened, it may take a few seconds, but is subsequently almost instant. NX is faster than its predecessors, as it eliminates most of the X round trips, while dxpc and MLView only compress data. The two principal components of NX are nxproxy and nxagent. nxproxy is derived from dxpc and is started on both the remote (client in X terminology) and local (server in X terminology) machines, simulating an X server on the client and forwarding remote X protocol requests to the local X server. Simplest setup: remote clients (xterm, etc.) ↕ nxproxy client ↕ Network ↕ nxproxy server ↕ local X server (monitor/keyboard) nxproxy alone achieves 1:10 to 1:1000 compression ratios, reducing bandwidth, but does not eliminate most of X's synchronous round trips, responsible for most of X's perceived latency. nxagent, derived from Xnest (similar to
Xephyr Xephyr is a display server software implementing the X11 display server protocol based on KDrive which targets a window on a host X Server as its framebuffer. It is written by Matthew Allum. Xephyr is an X-on-X implementation and runs on X.O ...
), is typically started on the remote (client) machine, thus avoiding most X11 protocol round trips. Together with nxproxy (built into nxagent), this setup performs well over low-bandwidth and high-latency links. Typical setup: remote clients (xterm, etc.) ↕ nxagent server side \ nxagent client side nxagent executable nxproxy client / ↕ Network ↕ nxproxy server ↕ local X server (monitor/keyboard) On systems with a functional X11 implementation, nxproxy and nxagent are all that is needed to establish a connection with low-bandwidth requirements between a set of remote X clients and the local X server. SSH can be used to establish a secure tunnel between the hosts. NX 3 relies on SSH functionalities and existing open-source SSH software, making it possible to run contemporary Unix and Windows desktops and arbitrary network applications over the Internet in a secured and controlled way. FreeNX and the various NX Clients are used for setup, handling suspend and resume, secure tunnelling over SSH, and printing and sound.


Other display protocols

NoMachine's NX protocol allow client connections to hosts via
Remote Desktop Protocol Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft Corporation which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this pu ...
(for Windows Remote Desktop Services sessions) and remote
Virtual Network Computing VNC (Virtual Network Computing) is a graphical desktop-sharing system that uses the RFB protocol, Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the computer keyboard, keyboard and computer mouse, mouse in ...
sessions (most modern general-purpose operating system platforms), as well as XDM.


NX derivatives and forks

Prior to version 4.0, NoMachine released core NX technology under the
GNU General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
, and offered non-free commercial NX solutions, free client and server products for
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
and
Solaris Solaris is the Latin word for sun. It may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Sol ...
, and free client software for
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s. Due to the free-software nature of older NX releases, the FreeNX project was started to provide wrapper scripts for the GPL NX libraries. FreeNX was developed and maintained by Fabian Franz, but has not announced a release since 2008. 2X Software has developed another commercial
terminal server A terminal server connects devices with a serial port to a local area network (LAN). Products marketed as terminal servers can be very simple devices that do not offer any security functionality, such as data encryption and user authentication. ...
for Linux using the NX protocol. On July 7, 2009,
Google Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
announced their open-source NX server, Neatx, as an internal project. The project is no longer actively developed. Its source code is available under the GNU GPL v2 license. X2Go is based on the 3.x NX libraries, but is not compatible with other implementations. The client and server are released under a combination of GNU GPLv2 or later, and GNU AGPLv3 or later..


Clients

The primary NX clients are the official freeware, NoMachine, and NoMachine Enterprise Client. Several
open-source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
projects can also use the NX protocol but many of these OSS projects do not work with more recent versions of the official NX software. An OS mature project was Lawrence Roufail's ''nxc'' client library, a full library which can be used for other clients to build upon. The ''nxrun'' application utilizes this library. , the library does not allow suspending or resuming sessions, and uses only
JPEG JPEG ( , short for Joint Photographic Experts Group and sometimes retroactively referred to as JPEG 1) is a commonly used method of lossy compression for digital images, particularly for those images produced by digital photography. The degr ...
graphics compression. The ''kNX'' project was a proof-of-concept application written by Joseph Wenninger, with plans for it to eventually become a complete NX client to show that an open-source client could be written. Its development was halted before it was completed. In late 2005, Fabian Franz and George Wright began modifying kNX to use the nxc library, but abandoned the project. More recent open-source efforts include ''QtNX'', which offers full suspend and resume. However, it has been reported as incompatible with the most recent NX libraries. ''Nxcl, a''n update to nxclientlib, the core of QtNX, was completed by Seb James in September 2007, and works with version 3 of the NX core libraries. It also drops dependency on Qt, which prevented nxclientlib from becoming widely used as a cross-platform basis for NX client programs. nxcl provides a library that can be linked to a client program (libnxcl), and a self-contained NX client with a
D-Bus D-Bus (short for "Desktop Bus") is a message-oriented middleware mechanism that allows communication between multiple Process (computing), processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org pro ...
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
(the nxcl binary). It is available from the FreeNX
Subversion Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to sabotage the established social order and its structures of Power (philosophy), power, authority, tradition, h ...
server. Another obsolete (last updated Jan 2013) OSS NX client is ''OpenNX'', described as a "drop-in replacement for NoMachine's roprietarynxclient" with full suspend and resume. Various open-source terminal server projects, such as X2Go, also use the NX protocol. However, X2Go is not compatible with other NX servers or clients.
Remmina Remmina is a free and open source remote desktop client for POSIX-based computer operating systems. It supports the Remote Desktop Protocol (RDP), VNC, NX technology, NX, XDMCP, SPICE (protocol), SPICE, X2Go and Secure Shell, SSH protocols and us ...
, another recent GTK+ remote desktop client project, announced the ability to use the NX protocol in its release 0.8.


Previous X11 compression schemes

*
Low Bandwidth X In computing, LBX, or Low Bandwidth X, is a protocol to use the X Window System over computer network, network links with low Bandwidth (computing), bandwidth and high latency (engineering), latency. It was introduced in X11R6.3 ("Broadway") in 1 ...
(lbxproxy; obsolete and of historical interest only)


See also

*
Comparison of remote desktop software This page is a comparison of notable remote desktop software available for various platforms. Remote desktop software Operating system support Features Terminology In the table above, the following terminology is intended to ...
*
GNU Screen GNU Screen is a terminal multiplexer: a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate login sessions inside a single terminal window, or detach and reattach sessions from ...
a terminal multiplexer for console-mode (text-mode) applications *
Xpra xpra, abbreviated from X Persistent Remote Applications, is a set of software utilities that run X clients, typically on a remote host, and direct their display to the local machine without the X clients closing or losing any state in case the n ...
a system for attaching and detaching remote X programs * xmove a tool allows you to move programs between X Window System displays (outdated)


References


External links

*
X2Go
X2Go Introduction Page
FreeNX
project page on BerliOS.
FreeNX
project page at
Arch Linux Arch Linux () is an Open-source software, open source, rolling release Linux distribution. Arch Linux is kept up-to-date by regularly updating the individual pieces of software that it comprises. Arch Linux is intentionally minimal, and is meant ...
.
OpenNX
project page
SourceForge

neatx
project page
Google Code
{{Remote administration software Remote desktop Linux windowing system-related software Formerly open-source or free software Remote desktop software for Linux