In my own experience, FreeNX is more robust, stable, predictable, easier to customize and to debug than NoMachines closed binary components.
Read the guide here
I decided to use FreeNX instead of NoMachines own implementation due to the instability of the latter. Most of the times, I could not reconnect to my running sessions, or else NX decided to kill my running session and start a new one. FreeNX is a collection of shell scripts, which makes it easier to debug and troubleshoot problems