Tuesday, May 1, 2007

NX your worries away

I wanted to thank Jim for sending me a post regarding NX.

For those who do not know what NX is, here is a summary. NX is a opensource alternative to Microsoft Terminal Services. It allows users on Windows and Linux to connect to a central server or workstation and run the applications that you centrally install for your enterprise. For IT administrators it saves time and money.

I have spent the last several months trying to make NX work correctly in Ubuntu and there is still work to be done. The ultimate goal is to replace the Windows 2003 servers I use as Terminal servers in my datacenter with Ubuntu running NX Server.

I wanted to give everyone a recap on my progress as well as allow you WINDOWEZ users a look into connecting the window clients to ubuntu or in my case LAVA Linux. Before I receive hate mail, LAVA is just a highly customized Ubuntu but it is still Ubuntu.

I have been able to UPX the windows based NX client as well as XMING and create a single exe that can be run without installing or configuring on windows. The user just saves the exe onto their desktop and double clicks. It automatically unloads all the dlls into memory that it needs as well as the configuration options that i have hard-coded for my environment. NOTE: It does not install anything on the Windows machine. Everything runs in memory. So removing it is as simple as deleting the exe. Upgrading is as simple as replacing exe.

The session connects to a default installation of LAVA PLUS I have running in my datacenter.

If anyone would like to try it out, please feel free to save the following exe onto your Windows 2000, XP or VISTA computer. That's right, I was able to compile and fix the client piece so that it runs on Vista.

Here is the link:
http://www.ansotech.com/debs/portalnx.exe

Username: demo
Password: demo123

Please let me know what you think. I am going to keep the access open until tomorrow afternoon.

7 comments:

Anonymous said...

Interesting. The .exe bundling really seems to work. As does the basic compression. Very nice. Questions.

1. Is this built against the xfree86 or the x.org codebase?
2. Can this approach do headless (showing only one application so that the user doesn't even realize it is remote)? It would be a killer feature.
3. How about handing the Windows kerberos ticket of the user to the remote X for authentication?

Antonio Sosa said...

1) I have a binary I made with xfree86 and one based on x.org

2) It can do headless

3) I currently have it authenticating locally but can go kerberos as well as against Open LDAP.

I have one running in a VM running kerberos against and Active Directory and pulling it's profile from a Samba share.

Antonio Sosa said...

I just checked the build i have on the site -

the code is based on x.org code with patches from X11R7.2

Anonymous said...

I would really be interested in having NXClient working properly on Vista. Could you please upload what you have done somewhere ?

Jo-Erlend Schinstad said...

This is very interesting. I have some questions though. Which client is this based on? Is it compatible with NX 2.0? When you're running several rootless (I guess that's what you meant when you said 'headless') sessions, will they run their own xserver or will they still share resources? I have a similar early project, only using WeirdX (100% Pure Java X server implementation) with NX Web Companion in order to run desktops and rootless apps in a browser window, and simplifying deployment on locked-down systems. If you're interested in this, please contact me. I am sure we would benefit from each others experiences.

Antonio Sosa said...

To Date I have built the following client connections to my server:

Single EXE - freenx 1.1
Single EXE - freenx 2.0
Single EXE - freenx 2.1
Single EXE - XMing X Server

I am currently playing with WierdX. The only problem I currently have with WeirdX is that when I build a single EXE, I end up bundling the JAVA Runtime which bumps the EXE up to 18 MB. I want the client solution to be small but feature rich. The nx client and XMing seem to give the most bang for the MB. I am currently implementing a print mechanism to bypass the printing in nx. It is not reasonable to assume that clients will SHARE out their printers with smb. I am trying to integrate a sourceforge project called RAW Printer which I could bundle in the final exe which will allow the nx client or XMing client to talk directly to the windows printer spooler via cups.

Anonymous said...

your download appears to be unavailable:

How did you get xming to work with nx ? I have vista , and cygwin X causes 100% cpu :-(