| General: | A computer with reasonable amount of RAM (see below) and an internet connection.
Machine availability, including internet connection, of 24h / day is preferred
but not required. A flatrate connection to the internet with unlimited (or
inexpensive) data transfer volume is recommended. |
|
| Operating systems: | Precompiled binary versions are available for Linux x86 and Windows.
Versions for many other Unices can be created by compiling the sources yourself.
We learned that Opennap NG 0.49 compiles and probably also runs fine on
FreeBSD and Solaris, however we currently can't support it
directly. Recommended minimum Linux kernel version is 2.2. Linux 2.4 or
later is required if a server is to serve more than 1000 users. Windows
NT, 2K or XP (any editions) should be used for stable
server operation. Windows 95, 98 and ME are known not to support server
operations very well at all. |
|
| CPU: | CPU speed is important when it comes to serve file searches and transfer
requests for a large number of users. For a standard filesharing Opennap
NG server the rule of thumb for x86-compatible CPUs is that every 500
MHz allow you to serve 1000 users. That is, if you have a 2 GHz machine,
you should be able (in theory) to serve 4000 users without noteworthy lag
on one machine. For chatting only servers, with filesharing disabled, the
requirements are believed to be 100 MHz or less per 1000 users. |
|
| RAM: | Offering filesharing services with Opennap NG is fairly RAM-consumptive.
The rule of thumb is that on Linux systems 1000 files take 300
to 350 KB of RAM, while on Windows systems 1000 files take
400 to 500 KB of RAM. The difference comes from the totally different
memory management concepts of those operating systems. So if you have 1
GB of RAM to spend, you should be able to handle about 3 million files on
Linux and about 2 million files on Windows. For chat-only servers RAM demands
are negligible. |
|
| Internet bandwidth: | Demands for internet bandwidth are highly variable, depending on how many
users are connected, how many files are maintained, how many browse and
search results per request may be returned, etc. In general, a single server
with reasonable settings receives about 3 to 4 times the amount of data
of what it sends. During regular operation the demands should be about
15 KB/sec. incoming and 4 KB/sec. outgoing traffic per 1000 users on
a standalone server. Especially outgoing traffic can be adjusted or limited
by a number of settings, such as max_results (I),
max_browse_result (I), notify_exceed_frequency
(I) and others. If being connected to other servers of similar capacity,
traffic demands can easily be doubled or tripled, due to state and request
exchanges with other servers. During initial fillup phase, shortly after
a server has been started, almost all availabe bandwidth could be consumed
by incoming filelists of newly connecting users. Not having enough bandwidth
may just cause some lag for up to half an hour after server restart, but
doesn't essentially limit your serving capacity. Opennap NG offers multiple
means to throttle initial server fillup, to reduce or prevent lag. |
|
| Harddisk: | Opennap NG basically operates completely RAM-based. The harddisk is only
used to load the server program and occasionally dump updated user and ban
lists. All of that should fit well within 1 MB of harddisk space.
If you decide to store the log output of Opennap NG for later analysis you
should reserve some spare MBs of harddisk space, depending on the level
of activity on your server and the verbosity of your log output. Windows
users who want to use the GUI config tool need to consider disk space requirements
of GTK+ as well, which, if not already being installed, requires another
20 MB. |
|
| Additional software requirements: | Server operation: no additional software besides standard libraries
is required. libz may be the least common of them, especially on some Windows
installations. No X windows is required to run the Opennap NG server itself
on Unix. The GUI config tool isn't required either to run the server. Build process: Opennap NG 0.49 requires GCC >= 3.x (GNU Compiler Collection), a portable and efficient programmer's toolset available for free at http://www.gnu.org/ (for Unix) and http://www.mingw.org/ (for Windows). Other, proprietary or commercial compilers are not supported at this time. Important: currently Opennap NG 0.49 doesn't compile under GCC 2.95.x or earlier due to a compiler bug (for programmers: the compiler erroneously "forgets" the typedef socklen_t in main.c, starting near line 1166, causing compile errors later in that file). No compiler is required if you just use one of the available precompiled binary packages. GUI configuration tool: The GUI configuration tool requires the Gimp Toolkit (GTK+) 2.x. It's available for free at http://www.gtk.org/download (sources, mainly for Linux / Unix users) and http://gimp-win.sourceforge.net/old.html (binaries for Windows users). Only the GTK+ Runtime version is needed, the GTK+ Development version is not needed. X-windows server: As a GUI application, on Unix / Linux systems the config tool obviously requires an installed X windows server system as well |
| -- |
enable-email Enables support for storing the email addresses of users obtained from the nickname registration command. By default this information is not kept and the server will always return unknown if this information is requested. Note that sane users don't enter correct email addresses nowadays so this feature is generally of little use. |
| -- | enable-resume Enables the server-side support for resuming downloads. This option makes the server use more memory because it has to store to MD5 hash values for all shared files in addition to the other information. Note that most clients don't support this feature so it is generally of little use. |
| -- | enable-router Compiles a routing-only version of the OpenNap-NG server. This disables the file sharing commands for local clients, only allows users of level Admin or greater to log in, and simply routes all other messages to linked servers. This is ideal for use as a hub server to connect a cluster of other servers together. |
| -- | enable-chroot Compile support for running OpenNap-NG in a chroot() jail. This prevents the server from being able to read/write any files outside of its data directory. Useful for parnoid people. OpenNap-NG must be run setuid root (at which point it will drop privs) in order for this to work. |
| -- | enable-version-stats Causes the server to keep a running count of each version of connecting clients. Useless, but fun information for client developers to see how much their particular clients are getting used on the server. |
| -- | with-fd-setsize=SIZE Under BSD systems, this sets the hard maximum number of connections the server can support via the select() system call. Note: under Linux (< 2.4.x) FD_SETSIZE can not be redefined and is always 1024. |
| -- | enable-debug Turns on debugging information to catch memory leaks and buffer overruns. This is usually not suitable for "production" environments because of the extra memory use, but good for small test servers. The more testing the more likely bugs can be squashed. |
| -- | enable-gprof Adds the -pg option to gcc to generate profiling information suitable for digestion by gprof. Profiling gives a detailed output of what the server is spending its time doing so that bottlenecks can be detected and server performance can be increased. |
<target> <nick> <when> "<reason>" [timeout]where target is what is banned, nick is the user that issued the ban, when is the time at which the ban was set (in seconds since Jan 1, 1970 0:00 UTC), and reason is the reason for the ban. Optionally, timeout may be specified which gives the time at which the ban expires and should be removed. See the sample.ban file as a basis to start your own configuration.
| Variable | Change | Note |
| allow_dynamic_ghosts (B) | Replaced | by ghost_kill (I) |
| block_winmx (B) | Replaced | by invalid_clients (S) and valid_clients (S) |
| break_mx_queue (B) | Type change | from integer to boolean |
| browse_nag (B) | Type change | from integer to boolean |
| discipline_block (B) | Removed | Might be replaced by separate block file soon. This feature usually didn't help getting rid of users who share dirty stuff, as intended, but rather getting rid of users who share lots of stuff, which was not the intention. |
| discipline_block_ban_ttl (I) | Renamed | to block_ban_ttl (I) Will apply to entries in file opennap-block-ban.txt. |
| discipline_block_mod (B) | Removed | ! Mods+ are to be banned automatically under no circumstances! They are part of the staff. De-mod or ban them manually if you want to get rid of them! |
| discipline_ignorers (B) | Removed | Redundant setting! Set discipline_ignorers_ban_ttl to nonzero to killban Mod+ ignorers, zero to turn it off. |
| eject_also_bans (B) | Removed | Redundant setting! Set eject_ban_ttl to nonzero to turn this feature on, zero to turn it off. Auto-ejecting without banning is pointless. |
| eject_leeches (B) | from integer to boolean | |
| eject_nochannels (B) | Renamed | to eject_no_channels_only (B) to better reflect its meaning. |
| ghost_kill (I) | Type change | from boolean to integer to allow multiple modes. |
| loglevel (S) | Replaced | by log_level (I) |
| max_new_users_per_minute (I) | Replaced | by max_new_users_count (I) and max_new_users_time (I). This setting never worked correctly. |
| max_searches (I) | Renamed | to max_searches_pending (I), to better reflect its meaning. |
| no_mod_annoying (B) | Type change | from integer to boolean |
| notify_mod_abuse (B) | Type change | from integer to boolean |
| notify_mod_block (B) | Type change | from integer to boolean |
| notify_user_abuse (B) | Type change | from integer to boolean |
| Variable | Context | Type | Default | Description | ||||||||||||||||||||||
| allow_share | content managm. | boolean | on | Controls whether or not clients are allowed to share files via the server. If set to off this server doesn't accept any files to share and operates as a chat server only. | ||||||||||||||||||||||
| alnum_nicks | user managem. | boolean | off | If set to on, only old-fashioned alphanumerical user nicks will be accepted. They may consist of upper and lowercase letters "A" - "Z" and "a" - "z", digits "0" - "9", a hyphen "-" and an underscore "_" only. Nicks containing any other character will be rejected on login by the server. | ||||||||||||||||||||||
| ascii_filenames | content managem. | boolean | off | If set to on, filenames (including path specifications) being sent from clients must consist entirely of printable 7-Bit ASCII characters, that is, ASCII values 32 to 126. This results in filenames that should be readable in english and a limited number of other languages. Especially filenames consisting of foreign language characters like Kanj (japanese), russian or others are not accepted. This helps keeping out not understandable filenames, hence potentially unwelcome or dangerous content. Filenames containing other characters han 7 Bit ASCII printables are rejected, those files are blocked (and count for max_block_pct, eject_limit_files and similar of that user). | ||||||||||||||||||||||
| auto_link | network | boolean | off | When set to on, Opennap-NG will automatically attempt to link to all servers listed in the servers file when it starts up for the first time. | ||||||||||||||||||||||
| auto_register | user managm. | boolean | off | When set to on, the server will automatically register a nickname the first time it is used. When off, nicknames will only be registered when the client explicitly requests it. Please regard that many users don't care about correct passwords in filesharing networks and neither do some clients. Actually, an increasing number of users use random passwords on each connect. Those users won't be able to connect more than once to a server with auto_register set on, See also: registered_only, register_interval and nick_expire. | ||||||||||||||||||||||
| break_mx_ queue | flood protection | boolean | off | Some buggy clients send a lot of privmsgs containing //WantQueue.
If this value is set to on then these privmsgs will be blocked on
the server this user is connected to. To get a picture what a waste of bandwidth
occures when not switching this to on grep your opennap-ng logfile
for "privmsg"opennap/opennap-ng/doc/. It should display something like: privmsg: all 205: 43000 705596 Bytes - 205WQ: 39096 (90.9%) 431382 Bytes (61.1%) privmsg: all 205: 44000 720813 Bytes - 205WQ: 40030 (91.0%) 441662 Bytes (61.3%) after only some hours of uptime. 205WQ is the count and the size of privmsgs containing a queueing message. |
||||||||||||||||||||||
| browse_nag | user notification | boolean | on | When set to on users are nagged when their client issues an old 211 server browse request without at least trying the newer 640 direct browse command. | ||||||||||||||||||||||
| client_queue_ length | perform. | integer | 102 400 | Sets the maximum number of bytes that can be queued for a client connection. If this threshold is reached, it is assumed that the client is either dead, or the network link can not sustain the level of output, and the server automatically closes down the client connection. This is necessary so that dead clients don't consume all of the servers memory. Smaller values may save a tiny amount of server RAM but increase the risk for connections to be terminated on voluminous transfer operations, such as server browses or large numbers of search results. A value of 49152 is still safe for most users's operations. Don't set this value to less than 32768. | ||||||||||||||||||||||
| cloak_user_ level | security | integer | 0 | If non-zero, ordinary users who are whois'ing others will always receive
"user" as userlevel information of the user
being whois'ed. Users won't be able to identify Moderators, Administrators
and Elites. This feature is to protect server staff, if responsible ones
prefer to stay undiscovered. More precisely, the values of this setting
have the following meaning:
|
||||||||||||||||||||||
| clones_allow_ level | user managem. | integer | 3 | If non-zero, specifies which user levels are exempt
from clone detection and ejection. Without clone detection, an arbitrary
number of connections from the same IP address are allowed to connect. All
user levels equal or above the specified value are exempt from clone detection.
The default value is to exempt Admins and Elites from clone detection. Actual
clone detection setting is done via the max_clones
variable. Here, the possible values are:
|
||||||||||||||||||||||
| compression_ level | perform. | integer | 1 | The zlib compression level to use when compressing server to server connections. 0 means no compression, 1 is least effort, 9 is best compression. The higher the number, the more CPU it will consume. Level 1 compresses text by about 50%, which is good enough for most applications. | ||||||||||||||||||||||
| criticial_ delay | log verbosity | integer | 5 | The server contains some internal performance validation code. After it got stuck in particular subroutines for too long, (freezing, also causing lag), it can report the duration and cause of this event to the log. Messages are of the form "checkdelay: level x, stuck for y seconds in block z". The error log level must be enabled for these messages to be emitted. This setting specifies the threshold in seconds for such delays to be reported. All freezes which have taken longer than this will be reported. These messages may be helpful in detecting and confirming server lag, identify its origins and possibly hint on correcting server parameters to reduce these events. To non-programmers the messages may appear incomprehensible, though. | ||||||||||||||||||||||
| default_ ban_ttl | user managm. | integer | 17,280,000 | How long bans last if no timeout value was entered. The default value is 200 days (~6 months). Longer and shorter bans can still be specified, and other feature-specific ban ttls aren't affected either. Just absolutely unlimited bans aren't supported any more; every ban has its expiration period. | ||||||||||||||||||||||
| discipline_ ignorers_ ban_ttl | user managm. | integer | 2 592 000 | When a user ignores a mod+ this is annoying enough. But when the mod killbans the user just to have the user relogging in with another nick this hits the spot multiplied by -1. This feature takes some care of these cases. If you set this value to nonzero then a user who ignores a Mod+ will be killed and banned for this number of seconds. The default is 30 days. Set this to 0 to allow users to ignore Mods+ without sanctions. However, remember the meaning of Moderators is to be listened to and not to be ignored. | ||||||||||||||||||||||
| eject_after | user managm. | integer | 120 | Specifies the number of seconds after initial login to the server for which the client is exempt from being killed for not sharing enough when the server is full (see eject_limit). This should be large enough to allow a client to start sharing files before getting killed. | ||||||||||||||||||||||
| eject_ban_ttl | user managm. | integer | 7200 | If a user doesn't share enough appropriate files he gets ejected and banned for this number of seconds. If this value is 0 no general ejection for not sharing enough will occur. However, regard max_block_pct and max_block_pct_ban_ttl, which supplies an independent and different approach for this. Mods+ will never be ejected for not sharing enough. This sort of ejection is affected by the following settings: eject_limit_files, eject_limit_libsize, min_file_size and max_file_size and file opennap-block.txt The default value is 2 hours. Increase it to slightly reduce your internet traffic. Experience has shown that 98% to 99% of users don't care about being banned for not sharing enough on a particular server, resulting in them connecting again and being banned again and again, as soon as this ban TTL expires. | ||||||||||||||||||||||
| eject_grace_ time | user managm. | integer | 600 | If the eject_limits are on then a freshly started server may killban users because the load on such a server is so high that some users are not able to get their files shared in time or even may time out when sharing on a low bandwidth server. The variable eject_grace_time is the time in seconds after which the eject_limits are checked right after the serverstart. The default value is ten minutes (600 seconds). | ||||||||||||||||||||||
| eject_leeches | user managm. | boolean | off | When eject_when_full is set, kill leeches to allow another user to login, even if they are sharing over the required amount of files. | ||||||||||||||||||||||
| eject_limit_ files | content managm. | integer | 0 | The min amount of files a user has to share in order to be exempt from eject_when_full. Any client that shares either eject_limit_files+1 files or 'eject_limit_libsize+1 Kilobytes will not be disconnected. This setting helps fighting freeloaders. Mods+ will never be ejected for not sharing enough. | ||||||||||||||||||||||
| eject_limit_ libsize | content managm. | integer | 0 | The min amount of Kilobytes a user has to share in order to be exempt from eject_when_full. Any client that shares either eject_limit_files+1 files or eject_limit_libsize+1 Kilobytes will not be disconnected. This setting helps fighting freeloaders. Mods+ will never be ejected for not sharing enough. | ||||||||||||||||||||||
| eject_no_ channels_only | user managm. | boolean | on | Normally eject_when_full will eject users who aren't sharing enough regardless of if they are chatting. eject_no_channels_only set to on ejects only users who are not in a channel and not sharing enough. If set to off, users who aren't sharing enough are ejected regardless of if they are in channels or not. In other words: on protects chatters from ejection. | ||||||||||||||||||||||
| eject_when_ full | user managm. | boolean | on | If set to on, the server will disconnect the longest connected client which is not sharing any files when the server is full (eg., when it has reached max_connections clients). This allows room to be made for those clients which are sharing files. Also see eject_leeches, eject_limit_libsize, and eject_limit_files This setting helps fighting freeloaders. Note: mods+ and Friends are exempt and can always log in even if they are sharing no files. | ||||||||||||||||||||||
| evaluate_ search_ abuse_after_ secs | flood protection | integer | 120 | After how many seconds should max_searches_per_minute be evaluated? This is to prevent that a freshly connected user will be prosecuted because he is initally searching all of his incompletes. | ||||||||||||||||||||||
| evaluate_ search_ abuse_after_ tags | flood protection | integer | 100 | After how many tags in total should max_searches_per_minute be evaluated? This is to prevent that a freshly connected user will be prosecuted because he is initally searching all of his incompletes. After evaluate_search_abuse_after_tags requests the counter starts counting. | ||||||||||||||||||||||
| file_count_ threshold | flood protection | integer | 5 000 | When a indexed file search token (one word) contains more than this number of matching files, the server will warn in its log output. This gives the ability to add this term to the list of filtered words. | ||||||||||||||||||||||
| fix_xnap_ path | content managm. | integer | 1 | Some versions of the XNap client use to share each file in its own directory
named by just a number. The results of browsing such users look stupid on
many other clients and make it difficult to get an overview over the files
offered. This setting provides some ways to deal with this mess. It only
affects files to be shared with a plain number as the top level directory
name.
|
||||||||||||||||||||||
| flood_ ban_ttl | flood protection | integer | 86400 | If flood_eject is non-zero then this setting specifies the ban TTL in seconds for exceeding flood limits. The default is 1 day. | ||||||||||||||||||||||
| flood_ commands | flood protection | integer | 0 | This variable, along with flood_time, allow for server-side flood protection. When set to a value greater than zero, the server will not allow clients to issue more than this number of commands in flood_time seconds. Any client attempting to send commands faster than the allowed limit is throttled back. A recommended value pair is 100 commands in 10 seconds, to allow clients to occasionally repeat multiple searches. Intentional flooders will easily exceed this. | ||||||||||||||||||||||
| flood_time | flood protection | integer | 100 | This variable, along with flood_commands, allow for server-side flood protection. When set to a value greater than zero, the server will not allow clients to issue more than this number of commands in flood_time seconds. Any client attempting to send commands faster than the allowed limit is throttled back. A recommended value pair is 100 commands in 10 seconds, to allow clients to occasionally repeat multiple searches. Intentional flooders will easily exceed this. | ||||||||||||||||||||||
| flood_eject | flood protection | integer | 0 | If flood_eject and flood_ban_ttl are both non-zero, clients exceeding the flood threshold specified by flood_time and flood_commands this number of times will be automatically ejected and banned. Setting this to a low value like 1 or 2 is not recommended! Clients which exceed the flood limits don't always do this on purpose or even knowingly. Occasionally exceeding flood thresholds can happen to many clients. Hence, if this feature is to be used, minimum values of 4 or 5 are recommended. Otherwise you could quickly find large numbers of users getting banned. The same is true, if flood_commands and flood_time are set too low. | ||||||||||||||||||||||
| ghost_kill | user managm. | integer | 1 | If non-zero, ghosts may be killed. Despite the possibility
of ghost kill deadlocks it is recommended to enable ghost kill, since the
harmless and innocent ghosts use to outweigh malicious ones by far.
|
||||||||||||||||||||||
| ibl_ttl | flood protection | integer | 0 | The Internal Ban List is an optimization means which is used to keep out
excessive clients. If a client reconnects too fast, keeps using an invalid
nick or an invalid client, then the IP of this user is banned for ibl_ttl
seconds. Checks against entries in the IBL are much faster than checks against
entries in the main ban list. The user trying to connect will be disconnected
immediately, without even getting a "You are banned..." message
delivered. Clients may display this as "server read error"s, "connection
timeout"s or similar. Please note that if for some reason any Moderator or Admin or Elite gets into this list upon an connection attempt, he won't be able to connect to the server for ibl_ttl seconds either! That is because the connection request will be rejected before any nicks or passwords are transmitted to the server. There is currently also no way to "unban" an entry from the IBL. So this value shouldn't be too high. 10 minutes (600) is a reasonable value. It should not exceed 1 hour (3600). A value of 0 disables this feature. |
||||||||||||||||||||||
| index_ignore_ suffix | content managm. | boolean | on | Controls whether or not the filename extensions of shared files are included in the searchable index. Also see index_path_depth. | ||||||||||||||||||||||
| index_path_ depth | content managm. | integer | 2 | Controls how many levels of directory are included when adding shared files to the searchable index. Often times the leading parts of the path are completely useless for searching (eg., C:\Program Files\My Music\Rock\) and just consumes a lot of memory. This variable counts from the end of the path backwards, so the higher the value, the more of the beginning of the path it will include. Also see index_ignore_suffix. | ||||||||||||||||||||||
| invalid_ clients | user managm. | string list | (null) | This is a string list of clients that are not allowed on your server.
Some clients can't/don't share, some clients are broken, etc. This list
can be superseded by valid_clients. Example: invalid_clients *floodster*,*mp3rage*,*rapigator* |
||||||||||||||||||||||
| invalid_nicks | user managm. | string list | (null) | invalid_nicks is a list of invalid client nicks, ones which you do not
want on your network for some reason or another. Example: invalid_nicks joey2cool,*trade* |
||||||||||||||||||||||
| irc_channels | chat control | boolean | on | When set, Opennap-NG requires all channel names to begin with # or &. | ||||||||||||||||||||||
| level_to_ set_flags | security | integer | 2 | Minimum level a user must have to assign userflags to other users. Values are: 0 = Leech, 1 = User, 2 = Moderator (default), 3 = Admin, 4 = Elite. Values below 2 are not sensible. | ||||||||||||||||||||||
| listen_ address | network | string | 0.0.0.0 | By default, the server will listen on all interfaces on the system. You can force it to listen only on a single interface by specifying the IP address of the interface in this option. | ||||||||||||||||||||||
| log_blocked | log verbosity | boolean | off | When set to on, each file that a user tried to share and which is blocked will appear in the log. mod+'s can monitor this by joining the &LOG channel. This feature usually produces less traffic than notify_mod_block. | ||||||||||||||||||||||
| log_channel | log verbosity | boolean | on | When set to on the log will be output in a special channel &LOG. Only mod+'s can join this special channel. Note: this configuration variable replaces the former configure option LOG_CHANNEL. | ||||||||||||||||||||||
| log_ignore_ abuse | log verbosity | integer | 1 | If set to 1 then each user who tries to ignore more other users than max_ignore
will be reported once in the log. If set to 2 then each further attempt
to ignore other users will be logged, including the nick which would be
ignored. If set to 0 then no logging happens when a user tries to ignore
more than max_ignore other users. This variable
can be helpful to detect traders or leeches who tend to quickly ignore almost
every user who tries to download from them. Note: a client may implement its own management of ignoring other users. This variable has effect only if the client requests ignores on the server. Most clients do so as this is part of the protocol and simpler for them to implement. |
||||||||||||||||||||||
| log_mode | log verbosity | boolean | off | When set to on, Opennap-NG will log changes in user levels to a file. | ||||||||||||||||||||||
| log_level | log verbosity | integer | 1423 |
If you want Server (1), Client (2), and Files (8), you set log_level to 1+2+8 = 11 Another example, Server, Client, Files, Share, Debug = 1 + 2 + 8 + 32 + 64 = 107. |
||||||||||||||||||||||
| log_stdout | log verbosity | boolean | on | If set to on then logging of events will happen not only to the &LOG channel but also to stdout (or a log file if the server runs as a background process). | ||||||||||||||||||||||
| log_timefmt | log verbosity | string | none | If set then this variable specifies a time format which is used to create
a time / date string. This date string is prepended to each line which is
logged to stdout / the log file / channel. The format of log_timefmt
must be according to the options of the GNU LIBC strftime() function.
It's made up of conversion specifiers which compose the format of the time
output (similar to the printf() function variants). A description
of all conversion specifiers is beyond the scope of this manual. Look into
the GNU LIBC documentation of the function strftime() for that. Only
some useful examples are given here:
|
||||||||||||||||||||||
| login_interval | flood protection | integer | 0 | Specifies how often (in seconds) clients from the same IP address are allowed to connect to the server. This allows you to ignore clients which are reconnecting too fast. Reasonable values are 5 to 30 (seconds). A value of 0 disables the check. Also see register_interval. | ||||||||||||||||||||||
| login_timeout | flood protection | integer | 60 | If a client has not completed the login process after this number of seconds, it will be disconnected. This is to prevent malicious parties from trying to open up many sockets to the server. | ||||||||||||||||||||||
| loopcount_ output_ interval | log verbosity | integer | 1000 | If non-zero, specifies the interval for executed main loop iterations being logged (with Debug level). Number of main loop iterations is a rough measure for servicing activity and efficiency since server start. The default value means that every 1000th main loop iteration will be logged. | ||||||||||||||||||||||
| max_block_ pct | user managem. | integer | 0 | If this value is nonzero it specifies the maximum percentage of blocked files which are allowed per user. If i.e. a user attempts to share 2000 files but 1800 of them are blocked (90%) the user may not be suitable or welcome to the server at all. Files may be blocked because they match patterns in the opennap-block.txt file or are too small (min_file_size) or too large (max_file_size). If the percentage of blocked files of a user is higher than this value and max_block_pct_ban_ttl is nonzero, the user will be immediately banned. Mods+ will never be banned. Banning users who attempt to share a great amount of blocked files also reduces waste of internet bandwidth. The valid range for this value is 0 to 100. A value of 0 disables this feature. 75 seems to be a fair value for public servers. Reduce it to 50 or less to be more restrictive, but possibly also lose interesting content. | ||||||||||||||||||||||
| max_block_ pct_ban_ttl | user managem. | integer | 60400 | If max_block_pct is set and a user attempts to share more than that percentage of blocked files, the user will be banned for this number of seconds. The default value is one week. This is a reasonable value since you deal with users who share a great amount (percentage) of stuff you don't want to have on your server, and experience has shown that the vast majority of users being banned for that wouldn't quickly change their entire shares just to get on a particular server or network. | ||||||||||||||||||||||
| max_browse_ result | perform. | integer | 500 | Limits the output of a server browse to this
number of files. Because of the limit imposed by client_queue_length, the number of files returned
by a browse command is limited to this number. If this is too large, clients
will be disconnected when they browse a user with many files. There is also
a consideration of bandwidth, a high browse limit imposes a large amount
of uplink bandwidth. Mods+ are exempt from this limit,
however they are still limited by the max_shared
value for the client being browsed. This setting has a high influence on
the amount of internet bandwidth the server consumes, especially the upstream.
If the server consumes too much upstream bandwidth then reduce this value
to 200 or 100. If upstream bandwidth is no issue for you then you may increase
this to 1000, 2000 or more. The default value is appropriate for servers
running via DSL connections. Note: this limit affects only server based browses. No limit is imposed on direct browses (client to client connections) since the server doesn't control data exchange in that case. Direct browses save server network bandwidth and are therefore the preferred method. Whether direct browses can be performed depends on which client programs are involved. Many client programs don't support direct browses yet. Both (requestor and responder) must support it in order to work and allow unlimited browsing. |
||||||||||||||||||||||
| max_channel_ length | chat control | integer | 32 | Specifies the max number of characters allowed in a channel name. | ||||||||||||||||||||||
| max_client_ string | user managm. | integer | 32 | Specifies the max number of characters allowed in the client version string. | ||||||||||||||||||||||
| max_clones | flood protection | integer | 0 | When set to a value greater than 0, the server will only allow this many connections from the same IP address, to limit clones. Also see login_interval and clones_allow_level. A value of 2 should be acceptable, as this description states. | ||||||||||||||||||||||
| max_ command_ length | flood protection | integer | 2048 | When set to a value greater than 0, the server will disconnect any client that sends a command longer than this value. Clients that trigger this are either attempting to flood the server or are out of sync. Actually, the default value of 2 KB should not be changed,. as most clients don't issue larger commands anyway, while all clients assume at least this command size to be accepted. | ||||||||||||||||||||||
| max_ connections | perform. | integer | 1000 | When set to a value greater than 0, the server will only allow this many
clients to log into the server. If max_connections users are already
logged in and new users try to login they will be disconnected with a server
full response. This is one of the most important server settings, as
it specifies the general user capacity the server will be able to serve.
This setting strongly affects CPU consumption, RAM consumption and internet
bandwidth consumption of the server. Lower it to reduce server demands regarding
those items. See also: connection_hard_limit.
Warning: when setting this variable to 0 or a value larger than your operating system limit the server may crash as soon as the number of connections gets close to the OS limit. For all Linux versions < 2.4.x this is 1000. Also consider increasing RAM, CPU and bandwidth consumption of high numbers of connections. Heavy lag and timed out connections are mostly the result of a too high value for max_connections. A typical P5-II class machine should be able to safely handle ~500 connections, a P5-III ~1000 and a P5-IV up to 2000 connections (if your OS permits it). Higher numbers may be feasible depending on other settings like max_shared, max_browse_result, max_searches_per_minute and some other flood protection settings. |
||||||||||||||||||||||
| max_hotlist | perform. | integer | 32 | When set to a value greater than 0, the server will only allow each user to have this many entries on their hotlist. | ||||||||||||||||||||||
| max_ignore | perform. | integer | 32 | When set to a value greater than 0, this server will only allow each user
to have this many entries on their ignore list. If the user tries to ignore
more users those requests will simply be ignored. Depending on the setting
of log_ignore_abuse such an event may be
logged or not. Note: a client may implement its own management of ignoring other users. This variable has effect only if the client requests ignores on the server. Most clients do so as this is part of the protocol and simpler for them to implement. |
||||||||||||||||||||||
| max_new_ users_count | perform. | integer | 20 | When max_new_users_count and max_new_users_time are set to nonzero the rate at which new users can connect is limited. During each interval of max_new_users_time seconds at most max_new_users_count users can connect. Further connection requests are refused until the next interval of max_new_users_time begins. This is to avoid splits and timeouts due to the fact that 2000 users who want to connect to the freshly advertised server simultaneously produce a pretty nice bandwidth peak. The default values allow up to 20 users to connect per 10 seconds (or 2 users per second in average). | ||||||||||||||||||||||
| max_new_ users_time | perform. | integer | 10 | When max_new_users_count and max_new_users_time are set to nonzero the rate at which new users can connect is limited. During each interval of max_new_users_time seconds at most max_new_users_count users can connect. Further connection requests are refused until the next interval of max_new_users_time begins. This is to avoid splits and timeouts due to the fact that 2000 users who want to connect to the freshly advertised server simultaneously produce a pretty nice bandwidth peak. The default values allow up to 20 users to connect per 10 seconds (or 2 users per second in average). | ||||||||||||||||||||||
| max_nick_ length | user managm. | integer | 19 | If set to a value greater than 0, this specifies the max number of characters allowed in a nickname. | ||||||||||||||||||||||
| max_reason | perform. | integer | 96 | If set to a value greater than 0, this specifies the max number of characters allowed in the "reason" strings for such commands as ban, kick and kill. | ||||||||||||||||||||||
| max_results | perform. | integer | 100 | If set to a value greater than 0, this specifies the max number of search results that are returned to a client. | ||||||||||||||||||||||
| max_searches_ pending | perform. | integer | 3 | Specifies the maximum number of pending searches a user is allowed to have. Once this threshold is reached, no more searches can be issued until one of the others has completed. | ||||||||||||||||||||||
| max_searches_ per_minute | flood protection | integer | 2 | Set the maximum number of searches (tag 200) a client is allowed to make during his connection. A value of 0 does not check the number of searches at all. This limit is calculated by using: ( count200 - evaluate_search_abuse_after_tags ) / onlinetime. So a value of 2 searches should be sufficient. | ||||||||||||||||||||||
| max_shared | content managm. | integer | 5 000 | If set to a value greater than 0, this specifies the max number of files that any client may share. This also affects the maximum number of browse results for Mods+ (they are exempt from the normal max_browse_result). This setting strongly affects RAM consumption and also affects internet bandwidth consumption of a running server. Increase this value if you have plenty of them left to spend. Decrease this value (or max_connections) if RAM consumption tends to grow too large after the server has been running for some hours. Also regard there may still be some users who like to share 20 000 files and more. They could feel disgusted if this value is too low, especially if they get additionally annoyed by verbose_too_many being on and notify_exceed_frequency being too low. | ||||||||||||||||||||||
| max_tags_ per_minute | flood protection | integer | 2 | Set the maximum number of certain tags per minute a client could issue to the server. Some analysis showed that the tags 218, 219 and 700 were abusively used by some buggy clients. When the client has more than max_tags_per_minute tags the request is simply ignored. | ||||||||||||||||||||||
| max_time_ delta | network | integer | 90 | Specifies the maximum number of seconds of difference in clock time between two servers in order for them to be able to link. Note that if this value is set too large, users can gain ops in channels even if they were not the first user to join the channel. A value of 0 will turn off this check completely. | ||||||||||||||||||||||
| max_topic | chat control | integer | 64 | If set to a value greater than 0, this specifies the max number of characters allowed in a channel topic. | ||||||||||||||||||||||
| max_ uploading | performance | integer | 100 | If non-zero, limits the number of concurrent filelist uploads by clients. Most clients start to transmit their shared files lists immediately after connect. If many files are to be shared by clients this can mean an excessive incoming traffic for the server, especially shortly after the server has been started. Server overload and significant lag can be result of this. With this setting, if more than this number of clients are currently uploading, new logins are rejected until some clients have finished uploading their filelists. The stats log output shows how many users are uploading. However, for technical reasons the value being displayed isn't quite precise and usually a bit higher than the actual number of clients uploading. So it's recommended not to set this value too low, as on large servers this could not only limit incoming traffic but also the number of users being able to connect at all. Don't set this value lower than 50 for small servers. For large servers, values of 200 or 300 are recommended. | ||||||||||||||||||||||
| max_user_ channels | chat control | integer | 5 | If set to a value greater than 0, this specifies the max number of channels a user is allowed to join. | ||||||||||||||||||||||
| max_whois_ ban_ttl | flood protection | integer | 604800 | If max_whois_count, max_whois_time and this value are non-zero, determines the ban TTL in seconds for excessively whois'ing clients. The default value is one week. | ||||||||||||||||||||||
| max_whois_ count | flood protection | integer | 0 | If non-zero, specifies how many whois requests a user may issue within max_whois_time seconds. If the user exceeds this number of whois requests and max_whois_ban_ttl is non-zero, (s)he gets banned. Excessive numbers of whois requests are emitted automatically by some clients with certain settings, when users want to be selective (or denying at all) regarding their uploads, at the expense of server bandwidth. Most server owners don't want to support such behaviour. Since occasional whois'ses of other users aren't anything hostile, if non-zero, this value should not be set too low. A number of 10 to 20 whois requests per hour should be tolerable. Excessive clients will usually exceed this number by far. | ||||||||||||||||||||||
| max_whois_ time | flood protection | integer | 0 | If non-zero, specifies the period for max_whois_count in seconds. Recommended is a value pair of count 10 to 20 and time 3600 (1 hour).. | ||||||||||||||||||||||
| min_file_size | content managm. | integer | 0 | Set the lower limit of filesize (in bytes) which a single file must at least have to be shared. If the min_file_size is 0 then there is no checking on this parameter. If a user tries to share files with a size of less than min_file_size the user will receive a server message informing him about the rejected file. It should be considered that the Napster protocol isn't well suited to transfer large numbers of small files. Also, a significant amount of common small files consists of either images of unwelcome (or dangerous) kind or simply crap, like icon libraries, DLL files, installed driver files or simply fakes! Although noone will be interested in crap it may consume (waste!) significant amounts of server resources if not being filtered out. That's why for public servers a value of 100000 to 300000 (100 to 300 KB) is recommended, although this may suppress a small number of desired small files as well. | ||||||||||||||||||||||
| min_read | network | integer | 0 | If not 0 specifies the minimum number of bytes expected to be read from a connection. If less than min_read bytes are read the number of bytes read will be logged. | ||||||||||||||||||||||
| nick_expire | user managm. | integer | 604 800 | Specifies the time in seconds of after which unused accounts are expired and returned to the pool of available nicknames. The default is 1 week. See also auto_register. | ||||||||||||||||||||||
| no_mod_ annoying | mod+ notification | boolean | off | When set to on mod+ are exempt from the notification of tag abuse. This only affects mod+ who are on a server where notify_user_abuse is set to on. | ||||||||||||||||||||||
| no_share_ level | security | integer | 4 | If nonero, specifies the user level from which on no shares are accepted. I.e. the user will always be listed as sharing 0 files, even if the client is configured to share files. This is helpful for Elites and Admins who connect to multiple networks with the same client and shares setting but don't want to share any files in the network where they are Elite or Admin, due to legal trouble, for instance. Meaningful values are 0 == no sharing restrictions, 2 == Moderators, 3 == Admins, 4 == Elite. The default value 4 means that all Elites won't appear sharing any files, regardless of their client settings. | ||||||||||||||||||||||
| notify_exceed_ frequency | user notification | integer | 10 | Frequency of notifications which are sent to a user if he keeps trying to share files beyond the max_shared limit. The default value of 10 means that for every 10 rejected files the user gets one notification. The higher this value the less network bandwidth will be wasted. | ||||||||||||||||||||||
| notify_mod_ abuse | mod+ notification | boolean | on | When set to on the abuse of the tags mentioned above is reported to the mod+ users on your system. | ||||||||||||||||||||||
| notify_mod_ abuse_ frequency | mod+ notification | integer | 100 | When notify_mod_abuse is set to 1 then this following var reports the frequency of notifications which are sent. A notify_mod_abuse_frequency of 100 means that every 100th abuse per user is reported via notify_mods(). | ||||||||||||||||||||||
| notify_mod_ block | mod+ notification | boolean | off | When set to on all Mods+ will receive IMs for every file a user tries to share, beginning with the first file of that user which was blocked. This includes also files which are not blocked. Since this option may produce heavy traffic use of log_blocked is recommended instead. | ||||||||||||||||||||||
| notify_user_ abuse | user notification | boolean | off | When set to on the abuse of the tags mentioned above is reported to the user issueing the tag via a privmsg. | ||||||||||||||||||||||
| notify_user_ abuse_ frequency | user notification | integer | 1000 | When notify_user_abuse is set to on then this following var reports the frequency of notifications which are sent. A notify_user_abuse_frequency of 1000 means that every 1000th abuse per user is reported via privmsg to the user. | ||||||||||||||||||||||
| notify_user_ block | user notification | boolean | off | When set to on a user will receive a server response for every blocked file he tries to share. This is a way to let the user know which of his files are blocked. | ||||||||||||||||||||||
| ping_interval | network | integer | 600 | Specifies the interval (in seconds) of how often to sping peer (linked) servers. | ||||||||||||||||||||||
| protnet | security | string list | * | Protnet is a set of protections granted to an Elite user on the defined
IP or list of IPs. The elite is protected from being killed, mkilled, their
password changed, or account nuked, and their server killed, by someone
NOT on the protnet, even if they are elite. The default setting works like
normal, any elite can kill other elites, etc. Note, the protection only
works on your own server, it can't protect you on another server, etc. Example: protnet 128.1.128.1,192.168.0.* |
||||||||||||||||||||||
| register_ interval | flood protection | integer | 0 | Specifices how often (in seconds) clients from the same IP address are allowed to register new nicknames. This can be used in conjunction with auto_register to block web/clone clients which attempt to log in with random nicknames. | ||||||||||||||||||||||
| registered_ only | user managm. | boolean | off | When set to on, the server only allows logins from registered clients. Also see auto_register, register_interval. | ||||||||||||||||||||||
| remote_browse | perform. | boolean | on | This variable controls whether or not the server supports remote browsing (where the client being browsed is not on the same server). In large networks, remote browsing can account for significant cross server traffic, increasing lag. Lopster or TekNap supportīs for clients to directly browse eachother outside of the servers, which is the recommended approach. | ||||||||||||||||||||||
| remote_ config | security | boolean | on | If set to on then admins from other servers are permitted to change configuration values on this server. | ||||||||||||||||||||||
| report_ip | Napigator support | string | value of server_ name | Sets the IP address this server listens on to be reported to Napigator (GotNap). | ||||||||||||||||||||||
| report_name | Napigator support | string | value of server_ name | Sets the name of the server reported to Napigator (GotNap). | ||||||||||||||||||||||
| report_port | Napigator support | string | value of server_ ports | Sets the TCP port this server listens on to be reported to Napigator (GotNap). | ||||||||||||||||||||||
| restrict_ registration | user managm. | boolean | off | If set, disallow the automatic registration of new nicknames by clients as they log in for the first time. The only way to create new nicknames (accounts) is then to use the administrator commands to register, or by editing the users file directly (when the server is not running). This option is typically used with the registered_only option to run a private, access-controlled server where users need accounts before they can log in. For public servers this setting should remain off, to offer users the option to register themselves, for instance to avoid nick collisions. | ||||||||||||||||||||||
| search_max_ cache_entries | perform. | integer | 500 | To give the hub in a distributed network some relief and to speed up repeated searches an internal cache is maintained. How many searches should be cached? The default value is 500 searches. You can query the cache stats using /raw 10116. The format of the output is: Counter Rank Usage Starttime LastUsedTime SearchString | ||||||||||||||||||||||
| search_timeout | network | integer | 180 | When servers are linked, searches will be timed out if no response has been received after this many seconds. This forces the server to send the final ack to the client. | ||||||||||||||||||||||
| server_alias | Napigator support | string | none | Allows you to specify an alternate name by which the server refers to itself. This is useful for connecting a "hidden" hub (routing-only) server, or if you just want to use a shortcut for the full DNS name. | ||||||||||||||||||||||
| server_chunk | perform. | integer | 0 | If not 0 then this is the minimum amount of data to queue before being sent to another server. If less data is to be sent the transmission will be delayed. | ||||||||||||||||||||||
| server_name | network | string | Hostname | Specifies the server's DNS name. | ||||||||||||||||||||||
| server_ports | network | string | 8888 | This option specifies a list of TCP ports which the server should listen on for client connections. Each port number should be separated by whitespace. | ||||||||||||||||||||||
| server_ queue_ length | network | integer | 1 024 000 | Specifies the maximum number of bytes that can be queued for a server connection before it is considered dead. | ||||||||||||||||||||||
| set_server_ nicks | security | string list | (null) | This is a list of names of users who are allowed access to raw 9998 and
9999. The users must still be elite, this adds another layer of security
to restrict exactly who is allowed access. I suggest not doing wildcards
in this list. Example: set_server_nicks Khaytsus,ShadoeMynx |
||||||||||||||||||||||
| stat_click | log verbosity | integer | 60 | Specifies how often (in seconds) the server should send updates about server statistics (users/files/gigs) to the clients. | ||||||||||||||||||||||
| stats_port | Napigator support | integer | 8889 | Specifies the TCP port on which the server should listen to reports stats. Typically used by Napigator (GotNap). If this port is set to -1, the server will not listen for stats reporting at all. | ||||||||||||||||||||||
| stat_server_ host | Napigator support | string | stats. napigator .com | Sets the DNS/IP address of the Napigator (GotNap) server to report stats. Also see report_name, report_ip, report_port, stat_server_port, stat_server_user, stat_server_pass. | ||||||||||||||||||||||
| stat_server_ pass | Napigator support | string | none | Sets the password for your Napigator (GotNap) account to list live server stats. | ||||||||||||||||||||||
| stat_server_ port | Napigator support | integer | 8890 | Sets the port number for your Napigator (GotNap) account to list live server stats. | ||||||||||||||||||||||
| stat_server_ user | Napigator support | string | none | Sets the username for your Napigator (GotNap) account to list live server stats. | ||||||||||||||||||||||
| strict_channels | chat control | boolean | off | When set to on, the server will only allow privileged users to create new channels. Upon startup of the server the channels listed in the channels file are always created. | ||||||||||||||||||||||
| user_db_ interval | security | integer | 1800 | Specifies the interval in seconds of how often the server should write out its database files to disk. This is important in case the server crashes prematurely, so that data loss is minimal. The default value of half an hour should be reasonable. | ||||||||||||||||||||||
| usermode | security | string | all | Sets the default usermode for mods+ users. Note: this is not to be confused with user levels! | ||||||||||||||||||||||
| valid_clients | user managm. | string list | (null) | If not empty this is a string list of clients that are allowed on your
server. The client's identification must match one of the entries to be
allowed to connect. The default is empty so there are no restrictions. Some
clients can't/don't share, some clients are broken, etc. See also: invalid_clients. Example: valid_clients *lopster*,*xnap*,*winmx*,*audiognome* |
||||||||||||||||||||||
| verbose_ too_many | log verbosity | boolean | on | If a user tries to share more files than max_shared there will be a server response to the user and a log entry informing that no more files of him will be accepted. If this setting is on the names and sizes of the rejected files are evaluated and logged. This can be helpful to find users which share lots of fake or useless files. If this setting is off then names and sizes of files will not be evaluated and logged. This reduces CPU consumption. | ||||||||||||||||||||||
| warn_time_ delta | network | integer | 30 | If the clock on a remote server is more than this many seconds out of sync, opennap-ng will print a warning message. Also see max_time_delta. A value of 0 turns off the warning completely. | ||||||||||||||||||||||
| who_was_time | user managm. | integer | 300 | Specifies the number of seconds after a user logs out that information on the client's ip address and server is kept in cache, so that mods+ may perform a whowas command. Note: this only controls how often the cache is purged, so some nicks may appear to be older than this amount. |
| Variable | Context | Type | Default | Description |
| connection_ hard_limit | Unix specific | integer | Depends on OS | Sets the maximum number of file descriptors available to the server process.
Generally this is used to increase the default number availble. Note that
in order to increase the default maximum, the server needs to be run as
root (OpenNap-NG will drop privileges and run as the uid/gid specified
by the configure arguments). Note: under Linux (< 2.4.x) connection_hard_limit cannot be changed and is always 1024. |
| lock_ memory | Unix specific | boolean | off | On supported systems, this will cause the server to lock all of its memory pages into real memory, thus avoiding swapping to disk. |
| max_data_ size | Unix specific | integer | Depends on OS | Sets the maximum amount of memory the process may consume. Also see max_rss_size. |
| max_rss_ size | Unix specific | integer | Depends on OS | Sets the maxiumum amount of real memory a process is allowed to consume. Any excess will be swapped to disk. Also see max_data_size. |
<channel> <limit> <level> "<topic>"where channel is the channel name, limit is the maximum number of users allowed in the channel (0 for no limit), level is the minimum user level required to enter the channel and topic is the default topic for the channel. NOTE: typically you edit this file once before starting your server. You should never edit it while the server is running or your changes will be lost. The server always writes out its state when it shuts down, because new information about the channel may have been set. If you want to edit it by hand, you should first shut down your server. See the sample.channels file as a basis to start your own configuration. See also: strict_channels.
<server_name> <remote_pass> <local_pass> <port> [alias]where server_name is the DNS name of the remote server (the remote server should have its server_name set to this value), remote_pass is the password expected from the remote server to authenticate (prove its identity), and local_pass is the password your server uses to authenticate to the remote server. port is the TCP port on the server to connect to. alias is an optional string which will be used to refer to this server instead of its DNS name. This is useful for defining hub servers where you might not want the DNS name to be revealed to users, or you want to use a different name instead of the ip address (if you don't have a reverse DNS record). Note that if a server you want to link to uses an alias name you must enter the alias name in opennap-servers.txt, too. Lines that begin with a pound sign (#) or any space character (tab, etc.) are ignored. See the sample.server file as a basis to start your own configuration.
Lines starting with a hash (#) are comments and are ignored. Each line of the
database should be of the format: nickname password email level created lastseen
nickname the nickname that is registered
server_name set you to level Elite (4).where server_name is the name of your server. This message will let you know that you have fill privilege to access administrative commands on this server. Clients such as Lopster or TekNap already have all of the OpenNap-NG extensions built into it. Others, such as the official Napster client or WinMX do not (it was not inteded to be used by administrators). If you client is missing functions to directly access these administration commands, not to worry, OpenNap-NG has a way of getting around this. OpenNap-NG provides to pseudo-users, ChanServ for channel related commands, and OperServ for server related commands. For both of these, you can access their functionality by sending a privmsg (instant) message to either of these users (in most clients this will be either /msg user or /tell user).
| ban | /msg chanserv ban #channel nick ["reason"] | ||||||||||
| Places a ban on channel such that nick is prevented from joining.
You can optionally give a reason for the ban that will be displayed
to the user (Note: if you specify the reason, it must be quoted
with double-quotes (") or else the server will only show the first word
of the reason). |
|||||||||||
| banclear | /msg chanserv banclear #channel | ||||||||||
| Removes all bans from the channel. |
|||||||||||
| banlist | /msg chanserv banlist #channel | ||||||||||
| Displays the list of bans for the channel. Note: this does not
work for the official Windows Napster client since it doesn't have support
for displaying it. |
|||||||||||
| clear | /msg chanserv clear #channel | ||||||||||
| Kicks all users in the channel out of the channel, only leaving yourself. |
|||||||||||
| deop | /msg chanserv deop #channel nick | ||||||||||
| Removes user nick as a channel operator and makes him/her a normal
channel user. |
|||||||||||
| help | /msg chanserv help | ||||||||||
| Displays a summary of all available commands. |
|||||||||||
| invite | /msg chanserv invite #channel nick | ||||||||||
| Send an invitation to user nick allowing them to join a channel
which is set +INVITE. |
|||||||||||
| kick | /msg chanserv kick #channel nick ["reason"] | ||||||||||
| Kick user nick out of the channel. A reason can optionally
be given. Note: if reason is given, it must be quoted
with double-quotes (") or else the server will only display the first word. |
|||||||||||
| level | /msg chanserv level #channel [level] | ||||||||||
| Displays / sets the minimum required user level to
be allowed to join a channel. |
|||||||||||
| limit | /msg chanserv limit #channel [numusers] | ||||||||||
| Displays/sets the maximum number of users allowed to join a channel. |
|||||||||||
| mode | /msg chanserv mode #channel [mode [mode ...]] | ||||||||||
Displays/sets the channel mode. If no modes are given, it returns what
the current channel mode is. Acceptable modes are:
To set a channel mode, prefix it with a plus-sign (+). To unset a channel mode, prefix it with a minus-sign (-). You can specify however many different modes on the same command as you like. |
|||||||||||
| muzzle | /msg chanserv muzzle #channel nick | ||||||||||
| Prevent user nick from being able to send messages to the channel. |
|||||||||||
| op | /msg chanserv op #channel [nick [nick ...]] | ||||||||||
| If no nicknames are given, it returns a list of the current channel operators.
If given one or more nicknames, each user will be given channel operator
status (and thus the ability to execute any of the other channel admin commands). |
|||||||||||
| topic | /msg chanserv topic #channel [topic] | ||||||||||
| Display / set the channel topic. |
|||||||||||
| unban | /msg chanserv unban #channel nick | ||||||||||
| Remove channel ban against nick, allowing him/her to join the channel
again. |
|||||||||||
| unmuzzle | /msg chanserv unmuzzle #channel nick | ||||||||||
| Allow a previously muzzled user to send messages to the channel. |
|||||||||||
| unvoice | /msg chanserv unvoice #channel nick | ||||||||||
| Remove the ability to speak in a +MODERATED channel. |
|||||||||||
| voice | /msg chanserv voice #channel nick | ||||||||||
| Give the ability for a user to speak in a +MODERATED channel |
|||||||||||
| wallop | /msg chanserv wallop #channel text | ||||||||||
| Send a message to all channel operators on the channel (that is not seen by other users in the channel). |
| ghost | /msg nickserv ghost user password |
| This command a |