Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
User Journal

Journal eno2001's Journal: TECH TALK: NoMachine NX Client/Server 8

After saying I was going to try this for the past five or so years... I finally got FreeNX installed on my new Gentoo appliction server virtual machine. I'm still trying to figure out the underlying components and how it works so I can customize it a bit. So far so good though. It is a good deal faster than VNC which is good news for my thin clients at home (I mean... old laptops) and it also supports Esound (I wish it supported Pulseaudio, but... Pulse supports ESD, so... :). So what does this all mean if you're not familiar with the land of remote desktops on Linux? Read on:

1. FreeNX is a GPLed server that uses the NX protocol created and opened by NoMachine. It is NOT VNC or RDP (MS remote desktop)
2. Sadly, it's not completely clear what it is, other than it is based on X (I think) and uses ZLIB and JPEG compression to great effect
3. It also has support for the Enlightened Sound Daemon which is sort of a virtual automated mixer for multiple sound streams that sends the mix to your sound card. This means that your remote desktop sessions have sound. (I've been doing this for years with raw ESD itself, but NoMachine implements it better than I can)
4. The bottom line is that even over a slow link, like a modem connection, you can get decent response from a remote desktop session. (Sound only works well in the local LAN or if you have an ungodly fast internet connection on both ends)

I tried running a video remotely and it played well with some tearing over my DSL 768k line. And... I'm posting this entry via the NX client right now. :) When I scroll in Firefox, the smooth scroll actually works with no redraw issues at all. The only thing that is noticeable is the JPG artifacts when I'm set to lower than ISDN speed. But it's not THAT noticeable.

For anyone on Gentoo interested in trying it out, there is a writeup at the Gentoo Wiki that tells you all about it. It's not totally clear, but it's enough to get you started. I think that's the main problem with the FreeNX project, not a lot of clear documentation for people who don't have some previous knowledge. One thing that isn't obvious is that when you install, you're installing the FreeNX server, but you're pulling down the proprietary !M NX client in order to connect. I'm not 100% sure on this, but it appears that there really isn't an NX client that in current development in the FOSS world. So you wind up having to use the proprietary but free of charge !M NX. That's OK with me since it seems to work well enough. I'm using the Linux client that is in Gentoo Portage, but there is also a Windows client as well as a Mac OS X client.

It's pretty simple to use once everything is configured. (You need to create an SSH key that is dedicated to the NX client and then import the public key onto the machine you'll be connecting from) You just enter your server connection info, set your screen size, choose the kind of system (OS) you'll be connecting to and the kind of session you'll have on that system (*nix only) and connection speed, then log in. Here's an excerpt of what you can do from the project Wiki for FreeNX:

Consider logging in from remote (eno2001: say... your machine at work):

        * You start a new session (unix-kde or unix-gnome)
        * You work with it and it runs fast (and even faster than VNC or shadow ;-))
        * You decide that you want to go home now, so you press ctrl+alt+t (if in fullscreen mode) or close the window

The session is now suspended and awaits you resume.

Okay, you go home now:

        * You login into your desktop and you have another fresh new session
        * You startup nxclient
        * You connect to the nxserver running on
        * You have your running session with all open programs again and see like a wonder the desktop stretches until all programs are fitting on screen again.

So now you have a 1600x1200 sessíon. (eno2001: They failed to explain whether this is a resizing of the desktop image or a real change in the size of the desktop itself. I haven't yet tested this) Once you finish working with it, you suspend it again:

        * Fullscreen
                    * click on the magic pixel, the window is minimized, right click on the taskbar and choose close
                    * press ctrl+alt+t
        * Windowed
                    * close the window
                    * press ctrl+alt+t

A dialog comes up that asks you if you want to terminate or suspend the session, you choose to suspend it.

I'm impressed so far, but I really need to figure out the components and break it up into something more usable for my needs. Hopefully this might replace VNC for a few things that I do where I need snappy response from the remote desktop...

This discussion has been archived. No new comments can be posted.

TECH TALK: NoMachine NX Client/Server

Comments Filter:

  • I've been half-assed looking around for something better/faster than TightVNC but VNC is just so ubiquitous. That and the usable java client make me put up with its warts.

    I use an TightVNC's SSH tunnel function back to home with -bgr233 to have it run in a pseudo-8-bit-real-colour mode and it's quite useful.

    Looking forward to more info on NoMachine NX.
    • by eno2001 ( 527078 )
      Yeah. I've been a VNC user since the late 90s. It is ubiquitous and I won't likely stop using VNC for the majority of things that I need it for. In some cases I can't (hitting the remote console on Xen, QEMU and VirtualIron virtualization solutions). I think where NX is a good fit for me is my home application server. I've been running it with VNC and Esound combined with ssh tunneling since 2000/2001. Inside the house it works fine on the WiFi (at full color depth), but lately I've been finding mysel
    • That and the usable java client make me put up with its warts.

      Yup. Even the File transfer functionality keeps getting better. I've been having good results transferring a variety of file loads over non-LAN connections.
      • by eno2001 ( 527078 )
        File transfer? Which version(s) of VNC do you use and which platform(s)? I've always preferred RealVNC with UltraVNC on Windows coming in a close second. But as far as I know they don't have file transfer. By that I assume you mean you can drag a file from your remote session to your local desktop and it will initiate a file transfer?
        • by eno2001 ( 527078 )
          Whoa! NX is cooler than I thought in one regard. I just accidentally resized the window of the NX client. What I expected was that, like VNC, it wouldn't have any effect since I accidentally made it larger. But it did have an effect! It actually resized the remote desktop! Not a resize in terms of ruining the proportion or anything, but it acutally stretched out the desktop area. Wow! No longer constricted by the limitations of the size of the desktop being fixed. That IS really cool!
        • I use Ultra, both the viewer and server when on Windows. The file transfer functionality isn't drag and drop (that would be insanely cool), it's a button on the toolbar, that when pressed, brings up a two-pane window similar to an FTP interface.

          On my wife's iMac, and my Suse home fileserver, I use the built-in VNC servers, couldn't even tell you what they are. There's no FT with the iMac (just discovered that the other day, which means I'll have to do something about it.) As for the fileserver, I only
        • by grub ( 11606 )
          TightVNC (what I like) has file transfer. It's a button in the toolbar though, no fancy drag'n'drop.
    • by eno2001 ( 527078 )
      I forgot to mention that FreeNX is working on a Firefox plugin for NX. But it's very early in development as far as I can tell. Not Java, so it really isn't cross-platform. But, the idea is nice. Install it in your browser and it becomes your NX client.

I THINK MAN INVENTED THE CAR by instinct. -- Jack Handley, The New Mexican, 1988.