A public server allows one to play NetHack or a variant in a shared space on the Internet where one can encounter other people's bones and see scores in the server's score list. Most NetHack servers usually also add some interface patches and bug fixes; this list will not specify those. You may also choose to watch someone's game that is in progress. You can access a public server by using a telnet or SSH client such as PuTTY.
List of public servers
|Server||Location||Games||How to connect|
|nethack.alt.org (NAO)||Virginia, United States|
|nethack.xd.cm (NXC, formerly acehack.de)||Falkenstein/Vogtl., Germany|
|hack.eotl.org||Dallas, Texas, United States|
|feorar.org||Frankfurt a.M., Germany|
London, United Kingdom
|Cafe / Veekun NetHack||Dallas, Texas, United States|
|NetHack on Facebook||Finland||
|grunthack.org||Virginia, United States|
|games.libreplanet.org||Boston, Massachusetts, United States|
Setting up your own server
There are several ways to manage your public NetHack server, but the most common is to use dgamelaunch, which manages user accounts and runs the NetHack processes in a chroot jail when a user telnets into the server.
For FreeBSD, there is a work-in-progress document describing how to set up a NetHack server with dgamelaunch, and also provides patches to make auto-login work with FreeBSD telnetd.
Something to be aware of is that PuTTY (win32 telnet/ssh client) sets its TERM= as 'xterm'. This breaks a lot of things. It's best to change its advertised termcap capabilites to 'linux'.
By default, right-click pastes in PuTTY. This can easily lose your game if you accidentally right-click a window when you have a long piece of text on the clipboard. It's recommended that you go to Window -> Selection and change the selection from "Compromise" to "Windows" to disable this. Remember that unless you save your session settings, you have to set this option again every time you play.