FreeNX FAQ/Server
OpenFacts, the Open Source Knowledge Database
Debugging
Please look at the FreeNX_FAQ/General section to find more on how to debug and find more log output
fix dpi settings
if you like to have the same font-sizes/dpi sizes on all your client session just use this hint form the mailinglist:What should work is setting the X resource "Xft.dpi". For example putting the following line into a user's "~/.Xdefaults" or "~/.Xresources" makes her/his "desktop" a 100dpi "desktop" - everywhere:
Xft.dpi: 100
font issues on ubuntu
from the mailinglists (thx to Brent Verner)I'm running freenx on Ubuntu 5.10 from the seveas.ubuntulinux.nl repository. After a couple of hours getting only the very unhelpful "The connection with the remote server was shut down. Please check the state of your network connection." message and a few diversions looking into actual network issues, I finally stumbled upon the SESSION_LOG_CLEAN setting in node.conf and saw the real problem in the "session" log file:
Fatal server error: could not open default font 'fixed'
I then found the AGENT_EXTRA_OPTIONS_X setting in node.conf and corrected the problem by adding the FontPath definitions in my xorg.conf.
Is there anyway to propagate that font error to the client? Even better, would it be possible to pickup the correct font path automatically? I think it might...using this gross little shell scriptlet in nxloadconfig to preconfigure a default value for AGENT_EXTRA_OPTIONS_X:
DEFAULT_FONT_PATH=$(echo $(grep -v '^ *#' /etc/X11/xorg.conf | grep FontPath | awk '{print $2}' | sed -r "s/^[\"']|[\"']$//g") | sed 's/ /,/g')
AGENT_EXTRA_OPTIONS_X="-fp $DEFAULT_FONT_PATH"
Of course, it would need to be adjusted to find the correct X config file, but I think we could go quite a bit further to avoid, what I'd imagine to be, a very common error.
please consider FreeNX page at Ubuntu wiki, too
keyboard issues: Alt+Gr not working
Try in a konsole/xterm: setxkbmap -model pc105 de
Check whether /var/tmp is writeable by all. Check how xkbcomp is called (fork and exec via system()) by nxagent to find out the given output directory to xkbcomp ( normally /var/tmp if nxagent is not called by root ).
nxagent does not find the fonts though they are installed
Check for strange fonts like explained in the following bug report.
"After a system upgrade, I ended up with a font file called "cursor.pcf.gz-base" in /usr/lib/X11/fonts/misc. From then on, nx ceased working.
I finally figured out that the file above was the source of the problem. Apparently nxagent does not like files with arbitrary extensions and drops a whole font path element if there is one file in that directory it doesn't like.
Renaming or deleting the file and running mkfontdir resolved the problem.
The source of the problem was particulary hard to find since the nxagent error messages (dropping font path element ..., unable to find font fixed) did not show up in any log files or error messages."
icewm shows scrambled images, netbeans, MS Office Crossover problems
Solution disable the MIT-SHM option. See:
http://www.nomachine.com/ar/view.php?ar_id=AR08C00246
A possible workaround is disabling MIT-SHM support. Set AGENT_EXTRA_OPTIONS_X="-noshmem" in node.conf.
See also http://bugzilla.gnome.org/show_bug.cgi?id=333827 for the cause of the problem.
KDE Plastik theme looks weird after resume
Short term Solution:
dcop kwin default reconfigure
Put it in NODE_AUTOSTART.
Long term solution: Wait for NX 2.0.0.
80% of the authorization problems are ssh related
- If you are installing from scratch and don't want to wait for the lates updates to hit your distro, please make sure you understand the ssh-public-key schema properly, before calling nxsetup directly. For the most distributions, nxsetup should do the case, but as the distro-maintainers have to adapt, it could ruin your authorization for nx. There is a lot of documentation around, which isn't really consistent, so be sure to understand the process first, and then it's pretty simple :)
- To kinda reset the authorization use
nxsetup --install --setup-nomachine-key --clean --purge
- this will configure the whole thing the kind the authors wanted it to be, but needn't to be the way, your distributors thought it to be.
- nx needs the nx-user to authenticate (look below why) and therefore you need to have the change to login as nx@nxserver with NO passwd-authorization, single by the use of the ssh-private-key on your client (wheather this is the nomachine private-key or not). Here are some tips to debug. Try:
# ssh -i /usr/NX/share/keys/server.id_dsa.key nx@nxserver
- if it doesn't show
HELLO NXSERVER - Version 1.4.0-04 OS (GPL) NX> 105
- finger the nx-user and look closely on the access rights of ~nx/.ssh/authorized_keys (the nx-user needs to have at least read access to the directories and the file)
- passwd should somehow look like nx:x:119:65534::/var/lib/nxserver/home:/usr/bin/nxserver
- (openssh): /etc/sshd_config check
- AuthorizedKeysFile (.ssh/authorized_keys)
- PubkeyAuthentication (yes)
- X11Forwarding (yes) ONLY for testing purposes with nxagent-calls directly
- UsePAM (yes)
- Consult your /var/log/auth.log and /var/log/messages /var/log/syslog
- troubleshoot sshd:
1) stop sshd:
/etc/init.d/sshd stop2) start sshd with debugging:
/usr/sbin/sshd -D -d -d -d3) attempt to ssh in as you were before;
- look through the sshd output and you should find why the key isn't working.
Which client.id_dsa.key server.id_dsa.key on what places?
- As the client needs to authenticate as nx@server without with the public-key only, you have to distribute the servers server.id_dsa.key to the client. If you have installed with --setup-nomachine-key you probably won't have to worry about the nomachine-clients, as they have the private-key from nomachine shipped with them.
- If want to use an own key, this _private_ key of the server has to be included on the client side (in clients >=1.5.0 there is a simple button for the user to include it in with). Copy the generated private-key $NX_HOME_DIR/.ssh/client.id_dsa.key manually all to the clients and insert it with this key-button or place it directly to /usr/NX/share, where the std. nomachine-client-installation expect it to be.
- On the server side the public-part of the key needs to be in the corresponding authorization-File of the nx-user - That will be ~nx/.ssh/authorized_keys in most cases, consult your sshd-configuration and the ssh-manpages for the location.
- This is basicly whats written in nxsetup, if only people would read it :)
What can I do if nxagent won't start or I get a "NX>" protocol error?
- If nxagent fails to start the first thing to do is to test out if nxagent works manually:
- Login into your NX server and enable SSH X11 Forwarding.
- # ssh -X user@yourserver
- If your FreeNX is in /usr/NX do the following:
- # LD_LIBRARY_PATH="/usr/NX/lib" /usr/NX/bin/nxagent :1000
- Else if its in /usr/bin or some other FHS structure do just:
- # nxagent :1000
- Nxagent should now startup. If you do not have X11 fonts installed or it can't find it (X.org), it'll bail out with an error.
- A missing program required to start the session will cause it to bail out with no apparent cause in the logs. For example a missing /usr/bin/dbus-launch will prevent the default kde session from launching, leaving this error:
- NX> 1004 Error: NX Agent exited with exit status 1.
- Parameters such as COMMAND_START_KDE in /etc/nxserver/node.conf or their defaults in /usr/bin/nxloadconfig will show the command that must run in order to start the session.
- You can find help in the following KB-Article then: http://www.nomachine.org/ar/view.php?ar_id=AR01C00124
- If nxagent does startup fine, please take a look at the session log in ~/.nx/C-<sessid>/session of the logged in user and report at the Mailing list and/or open up a Support Request at http://freenx.berlios.de.
I executed "nxserver --start", but it said "NX> 500 ERROR Service already Running". It _said_ it was running, but I can't find an nx process anywhere in my process table. Why is that?
- Unlike other services known from Linux or Unix systems, nxserver isn't a process running and listening at a certain port. The way it works is this: when you ssh to the server using a special user, it calls a special shell that communicates with the client and initiates the NX session. This session is an instance of NX agent that responds to just that one session and then goes away when you are done. So the NX agent process does not show up until you authenticate and request that a NX session is started. When it says it is already running, it means that it looked and found that the key file for the special user was already in place. When you stop the server, it just hides the key file so the special user cannot log in any more.
Why is it trying to authenticate user 'nx' (while I'm trying to connect with user 'frank') and why does the authentication fail?
- The nx user is the special user that the NX Client and Server use. The SSH session is set up for that user. Once it creates the ssh session and talks to the client, it spawns another session for your real user, 'Frank'. Someone put it well - the nx user is used to set up a connection so you can get to a login prompt. This nx session gets the login parameters and uses them to create the session for your user. The key for the nx user that is distributed with the nomachine client must match the key that is installed with the server. That's why it is simpler to use the --setup-nomachine-key option. That way you do not have to change the key for the client. So, what you can do is forget about the nx stuff and just try to create an ssh connection with the server for the nx user. So for a connection to server 192.168.1.6:
# ssh -i /usr/NX/share/client.id_dsa.key nx@192.168.1.6
- If that doesn't work, then you probably have the keys messed up on the server. It is either the old key from your last install, or maybe a permission problem. Try running:
# nxsetup --install --setup-nomachine-key --clean --purge
I don't have root rights on my server. Can I still use FreeNX?
- Starting from 0.4.3 there is a NX-home-installation procedure possible with the ENABLE_USERMODE_AUTHENTICATION see FreeNX Howto
- there are some alternatives, too:
- nxtunnel - With netpipes/netcat nxtunnel works exactly like "ssh -X", though it is using the superior NX protocol compression. You have to install the netpipes package on both client and server though. "nxtunnel" was written by Neal Walfield, based on scripts by Kurt Pfeifle (which were based on scripts by NoMachine).
- nxshell - NX Shell is basically a very clean rewrite of NX tunnel by Marcus Schäfer. It still uses the old way of port forwarding, but does not need netpipes.
- See the FreeNX distro integration page for URLs.
Why does FreeNX "need" the nx user?
- FreeNX aims to be a full free server implementation, which is compatible with the commercial one from NoMachine. While we benefit from lots of goodies through the nice architecture, we also are bound to some "limitations". Most of these limitations can't be easily overcome, because almost all users are still using the commercial NX client. So even if we had the option in FreeNX to not use the nx-user, it wouldn't help as long as there is no GPL NX Client for all supported platforms. And even if we once decided to support access to FreeNX without the nx-user, we would very likely still support a setup option *with* the nx user (to stay compatible with NoMachine NX).
What should I avoid, to get the maximum NX compression experience?
- Avoid to set the slider in NoMachine NX Client to LAN. (This would switch off NX compression alltogether!). Maximum NX compression is always switched on by selecting MODEM. (You can select MODEM even if you are on a faster-than-modem link. NX will always try to use all the bandwidth it can get, should it need more...)
How do I leave fullscreenmode?
- There is a magic-pixel in the top right corner of nearly every nx-application in fullscreenmode (nxviewer > 1.4.0-4). Right-click the pixel and application-window gets iconified.
What key-combos are nxspecific?
moved to FreeNX_FAQ/Clients
How can I secure more the server? I don't want ssh available for all users
- The openssh daemon can allow or deny connections based on ip adresses:
- "AllowUsers nx@*.*.*.* *@::ffff:127.0.0.1 *@127.0.0.1" in sshd will allow all ipv4 connections from the nx user, but only from localhost for all users.
How can I run encrypted ThinStation 1.3.2 clients with FreeNX 0.4.0?
- You have to remove the no-port-forwarding from the authorized_keys2 files in the nx users' home directory. This is due to changes in SSL encryption setup since late 1.4.0 snapshots.
Interoperability between the "new" 1.5.0 client (103) and freenx-0.4
- As nomachine released the new client, freenx needs some time to catch up the latest changes, freenx (at least till 0.4.2) was not designed for some new features, the final 1.5.0 libs included, so they won't work together!
- There are some fixes in CVS, which will probably be released as 0.4.3 to gain compatibility, but mainly 0.4.x is designed for nxclient-1.4.0 and nx-server-libs (1.4.0)! If you like to use freenx-0.4.2, you have to use nxclient-1.4.0.
- And please be patient and wait for full support :-)
- Errors residing in 0.4.2: Cookie mismatch, "crappy" session listing in the client, vnc/rdp partially broken, resume/suspend problems and even more we yet don't know about :)
Cookie mismatch with NX 1.5
This requires that the option ENABLE_1_5_0_BACKEND is set to 1 in the node.conf configuration file:
ENABLE_1_5_0_BACKEND="1"
Does nx support monitored screens, screen sharing or screen-overtaking?
- Not natively, but you can use the various vnc-possibilities to accomplish this
- use "x11vnc" to mirror your main X session. Or "vncreflector"... http://www.karlrunge.com/x11vnc/
- "native" vnc-module (Xvnc)
- x0rfbserver
- more from nomachine: Article AR11B00098: "Can NX be used to implement application sharing and white-board based collaboration?"
"Freezing" of vnc sessions on certain occations
- Sometimes the focus (mostly on fullscreen sessions) of the local window manager is not passed correctly to nxviewer (for vnc-sessions only). This is reported on fvwm2. Changing the windowmanager fixes this.
When I login with the NX-client from ThinStation 2.1 to a Debian Sarge server with Gnome, I get the XKB error: "Error activating XKB configuration".
- I've found a workaround for the XKB error, it works for Thinstation ->
- Start the following as the X user, with some startup-script:
/usr/bin/X11/setxkbmap -rules xfree86 -model pc104 -layout us -option ""
Rootless-mode and Unrecognized option: -R
- Rootless mode is just supported with 1.5.0 backend.
- To quickly also explan why: It did not work stable with 1.4.0 backend anyway so I dropped support for it in 0.4.1.
Problems (most prior to 1.5.0)
Why is a remote "single application window session" so much slower than "full desktop environment session"?
- This does not apply to 1.5.0 rootless-mode
- See the overview diagram on the separate page to learn about the basic NX/FreeNX setup.
- Currently only remote X11 sessions support all 3 NX speedup technologies (NX compression, NX caching and NX roundtrip elimination). The reason is this: the "nxagent" (which acts as the X server the remote application talks to using X11 protocol atoms) can not yet reliably support a "rootless" window mode. Therefor it nxagent is bypassed when you run a remote application in single window mode. The nxproxies on the NX Client and the NX Server talk directly to each other, but they still suffer from X11 protocol roundtrips which are not filtered away if nxagent part of the setup. (This usually is still faster and more efficient than running it via "ssh -C -X", because it still benefits from NX compression and NX caching.)
How do I then enable "rootless" nxagent in FreeNX-0.3.0?
- Edit node.conf
- Set it to ENABLE_ROOTLESS="1"
- Start NoMachine NX Client.
- Click Configure... button
- Go to the General tab
- Choose a Unix ---> Custom Desktop type
- Click on Settings...
- Enable Run the following command
- Enter the application's name you want to run (for example xterm)
- (If you want a KDE program, add the --nofork parameter, like konqueror --nofork.)
- (Alternatively, you can enable Run console and start single applications from that window once it appears on the screen.)
- In any case, enable Options ---> Floating window (and stay away from New virtual desktop!)
- As said previously: this is still experimental code and not yet dubbed as "stable". You may see left over processes continue to run on the (Free)NX server after the session is closed. Or you may see parent windows (or the main application window) disappearing when closing child windows like configuration dialogs.
- To create support for a robust "rootless" nxagent is one of the most important development goals of NoMachine for the NX-1.5.x development (not yet released).
What should I avoid, if I want to test NX in "rootless" mode?
- Avoid the default settings in node.conf.
- Specifically, avoid to set it to ENABLE_ROOTLESS="0".
- Avoid to use New virtual desktop (in the NX Client settings)
NXAgent failed to start (Fedora Core4)?
- If nxagent failed to start and exited with exit status 1, activate SESSION_LOG_CLEAN=0 in node.conf and have a look at the session log in ~/.nx/F-C-<sessid>/session
- To found more information about FreeNX configuration variables try
- # nxloadconfig --check
- If there is a message "Error: Invalid value "COMMAND_NETCAT=netcat" then netcat is missing (also called nc) on your server.
- Add "COMMAND_NETCAT=nc" in node.conf
You might also want to see the FreeNX_FAQ/Problem_Solving page.
How to setup local printing from a windows client when connecting to freenx
I use Ubuntu 6.0.6 gnome and install freenx 0.4, but when a start a session from a windows client, it wont ask me to map de local windows printer. Cup-service is running. How to config this. The same for filesharing.
any way running nx server on win32 machine?
![[Main Page]](http://openfacts.berlios.de/images/berliOS_small_logo.png)