Freenx
   HOME

TheInfoList



OR:

NX technology, commonly known as ''NX'' or NoMachine, is a proprietary cross-platform software application for remote access, desktop sharing, virtual desktop (on Linux only) and file transfer between computers. It is developed by the Luxembourg-based company NoMachine. NX's design was derived from the Differential X Protocol Compressor project (DXPC). In 2003, the 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. It wrapped remote connections in
SSH The Secure Shell Protocol (SSH) 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 applications are based on ...
sessions for encryption. The core compression technology was released under the GNU
GPL2 The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
license (NX 1) for Linux servers, whilst other components such as the NX Server and NX Client programs remained proprietary, on February 14, 2003. The last update to this open-source version was released in 2012. In 2010, the company announced they would be releasing the technology under a proprietary license. Starting in 2013, with the release of version 4.0, NX became closed-source. It was in 2013 that NX software became NoMachine software.


Features

NoMachine NX can be installed on Windows, Mac, Linux, Raspberry and Linux ARM computers to let users remotely access the desktop over the network. Users connect from a Windows, Mac OS X, iOS, Android, Linux, Raspberry, Linux ARM or Web browser. Other features include USB redirection, session recording, file transfer, multimedia capability and browser-based access. Higher-end products include multi compute-node clustering and fail-over capabilities. NoMachine Linux products also offer the ability to run multiple virtual Linux desktops on a Linux server (Linux Terminal Server) which are remotely accessed over a network connection. Images rendered on the server are compressed and encoded and then sent to the client for decryption and decompression. NX utilizes uses a combination of video and image encoding based on standard codecs and a number of techniques developed by NoMachine as well as
VirtualGL VirtualGL is an open-source software package that redirects the 3D rendering commands from Unix and Linux OpenGL applications to 3D accelerator hardware in a dedicated server and sends the rendered output to a ( thin) client located elsewhere o ...
to access high-end OpenGL-based X applications and 3-D CAD programs.


NX 4 and later versions

NX 4 introduced optimal image compression and caching with the latest video-encoding techniques. When connecting hosts across the network, the NX protocol works as a generic tunnel, with additional framing and flow control information, and dynamically adapts compression and bandwidth according to network speed and capacity. For compatibility, multiplexing is based on version 3. Client applications can connect using the SSH protocol, with the same authentication mechanisms as version 3, by a new SSH system login, or by the new SSL-enabled NX daemon. Once a secure connection is established, clients negotiate a desktop session using a text protocol compatible with that used in version 3. Clients can also use one of the various NoMachine subsystems, such as the file synchronization service, software updates, directory services, voice/video messaging and server clustering. NX 4 added new channel types to handle services such as the new file-system redirection, new printing system, virtual network interfaces,
smart cards A smart card, chip card, or integrated circuit card (ICC or IC card) is a physical electronic authentication device, used to control access to a resource. It is typically a plastic credit card-sized card with an embedded integrated circuit (IC) c ...
and USB devices. Most NoMachine components, including the agent program that impersonates the desktop session on the server, embed so-called "slave servers"—lightweight servers that provide inter-process communication and automation that can be used to create additional channels, under the control of the client and server. Applications can still request that channels carry data using the NX X Window System protocol compression. Version 4 added new channel types for video and audio, allowing multiple codecs in the same stream. Currently, the display (video) channels can handle data in H.264, VP8, MJPEG and other formats, with additional primitives used to implement special encoding operations concurrent with standard audio and video streams. Once the session is established between client and server, NX data can travel on TCP and UDP streams. The client and server dynamically select which transport to use, based on the type of data and network conditions. If communication over UDP is enabled, client and server can automatically instruct the router to open the necessary ports. UDP uses symmetric Blowfish encryption. The host interface and port, and Blowfish encryption key, are negotiated via a secure TCP link. UDP communication is disabled when using SSH tunneling, so that all data uses the same SSH link. The display protocol uses a combination of video and image encoding, based on standard codecs and a number of techniques developed by NoMachine. NX monitors display and user activity to adapt quality and buffering to the displayed application.


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) 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 applications are based on ...
(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 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.Org ...
), 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 (for Windows Remote Desktop Services sessions) and remote
Virtual Network Computing Virtual Network Computing (VNC) is a graphical desktop-sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse input from one computer to another, relaying the g ...
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 License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
, and offered non-free commercial NX solutions, free client and server products for
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
and Solaris, and free client software for Microsoft Windows,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
and
embedded systems An embedded system is a 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 ''embedded'' ...
. 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 Fabian may refer to: People * Fabian (name), including a list of people with the given name or surname * Pope Fabian (died 250), Catholic saint * Fabian Forte (born 1943), 1950s American teen idol, singer and actor, known by the mononym Fabian * ...
, 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, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
announced their open-source NX server,
Neatx Neatx is an open-source NX server based on NoMachine's NX technology. It is created by Google. Neatx is written mostly in Python, with the exception of very few wrapper scripts in bash and one program written in C. Neatx is free and open-source so ...
, as an internal project. The project had no releases and is not 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 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 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 Fabian may refer to: People * Fabian (name), including a list of people with the given name or surname * Pope Fabian (died 250), Catholic saint * Fabian Forte (born 1943), 1950s American teen idol, singer and actor, known by the mononym Fabian * ...
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 In computing, D-Bus (short for "Desktop Bus") is a message-oriented middleware mechanism that allows communication between multiple processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org project, ...
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
(the nxcl binary). It is available from the FreeNX Subversion 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 remote desktop client for POSIX-based computer operating systems. It supports the Remote Desktop Protocol (RDP), VNC, NX, XDMCP, SPICE, X2Go and SSH protocols and uses FreeRDP as foundation. Packaging Remmina is in the package ...
, 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 network links with low bandwidth and high latency. It was introduced in X11R6.3 ("Broadway") in 1996, but never achieved wide use. It was disabled by default as ...
(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 be ...
*
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 fro ...
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 ne ...
a system for attaching and detaching remote X programs *
xmove xmove is a computer program that allows the movement of X Window System applications between different displays and the persistence of X applications across X server restarts. It solves a problem in the design of X, where an X client (an X appli ...
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 independently developed, x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by following a rolling-release model. The default installation is a minimal base system, ...
.
OpenNX
project page
SourceForge
{{Remote administration software Remote desktop Linux windowing system-related software Formerly free software Remote desktop software for Linux