X-Tab costs money to run, plese consider donating to help keep it online!

Errors:

Error binding stream socket to IP 0.0.0.0 port 6667
./unreal : line 10: something: command not found
Couldn't open "unrealircd.conf": Nosuch file or directory
Failed to load SSL certificate server.cert.pem
I get SSL errors that say "Internal OpenSSL error or protocol error"
[Windows] Error: "This application has failed to start..."
[Windows] Error: cloak.dll access denied OR not found

K:Lines, G:Lines, and Spamfilters:

Where are G/K/Z:Lines and spamfilters stored?
How can I remove all the G:Lines?
How can I remove all the Spamfilters?
How do I save all my G/K/Z:Lines during a restart?

Windows Issues:

Why isn't there a window or system tray icon? (How to uninstall the Unreal service)
I don't want this window or system tray icon! (How to install the Unreal service)
Error: "This application has failed to start..."
Unreal won't start!
How do I compile Unreal on Windows?
Error: cloak.dll access denied OR not found

Network and Internet Issues:

Why do my users constantly get "Ping timeouts"?
Why can't outside people connect?

Configuration:

How do I add encrypted passwords to oper blocks?
I have clients exit with "Excess Flood"
Why are messages being slowed down? How do I stop it?
Is it possible to do mesh linking?
How do I make it so users can't create their own channels?
How do I stop a delinked server from trying to connect?

Modules:

How do I install modules?
Where do I request custom modules?
Where do I learn how to code modules?
Is there a list of what modes and commands modules give?

IRC Support:

Why is the use of Mibbit not allowed in the Unreal support channel?
Why is there a quiz to get support?
Is the quiz open source?
Will I ever need to retake the quiz?
Can I be added to the VOP list?

Everything Else:

How can I reset the user counts after a botnet attack?
How do I get the real host/ip of an user?
How do I see who connected from a specific IP?
How do I keep opers from attacking higher opers?
How do I hide my idle time?
What do all the characters mean in /version?
I get permission denied when trying to use SAJOIN/SAPART/SAMODE
How do I set up a BOPM?
Nothing happens when I use my aliases
How do I hide/remove the server information on connect?
How do I upgrade UnrealIRCd?


Errors

 

Error binding stream socket to IP 0.0.0.0 port 6667

The IP 0.0.0.0 = all interfaces. This error is because you are on a shell, or your curent user does not have permissions to bind to all interfaces.

To fix this, specify the IP that the shell provided you with to use in your listen block. If you do not know this IP, contact the administrator. If this is your own server, and you dont have the permissions as this user, simply use the IP of the device you want connections to come in on.

Example:
listen 1.2.3.4:6667;
1.2.3.4 will be the IP of the interface you wish to use.

If you still get this error, try running "netstat -anlp | grep 6667" (of course replace 6667 with whatever port is giving you problems) to see if anything is listening on that port, and to see what process is using it (it will not show which process if you are not the process owner)
 

./unreal : line 10: something: command not found

This is because in ./Config you did not specify the path for the binary file, but instead put the path to the binary file. You need to run ./Config again, and read the questions carefully. You need to specify a path for the binary that includes the name of the binary.
 

Couldn't open "unrealircd.conf": No such file or directory

There are a few possible causes for this error.
  • You did not create a configuration file. Read the docs.
  • The file is not named correctly.
To fix it:

Windows:
  1. Open the file in Notepad or another preferred program.
  2. In the File menu, select Save As
  3. In the field labeled "Save as type:" select "All Files (*.*)"
  4. Save the file as unrealircd.conf in the same folder as wircd.exe
*NIX:
  1. Go to the Unreal3.2 directory (or whatever directory UnrealIRCd is in) and make sure unrealircd.conf is in that directory.
  2. Make sure unrealircd.conf is spelled correctly AND is ALL lower-case, such as "unrealircd.conf". File names in *NIX are CaSe-SensiTIVe.
 

Failed to load SSL certificate server.cert.pem

*NIX:
./Config should have created keys, but "make install" does not copy the keys to your install directory for you. This is so if you are using your own keys (like from cacert.org) they do not get overwritten by the self-signed keys ./Config generates. If you cannot find these keys or need to generate new ones, run "make pem"

Windows:
It is possible the installation did not generate keys, or you may have cancelled the creation process. Simply run "makecert.bat" in the Unreal folder.
 

I get SSL errors that say "Internal OpenSSL error or protocol error"

You are getting errors that look like this because you have snomask +j (junk) set. The junk snomask is used for determining the cause of some SSL problems, and should otherwise be ignored. Common causes for these errors are: clients improperly closing the connection (user quits with "Input/Output Error"); as well as people connecting to a SSL port without SSL.

If you do not wish to see these errors, type /mode yournick +s -j


K:Lines, G:Lines, and Spamfilters

 

Where are G/K/Z:Lines and spamfilters stored?

G/K/Z:Lines are stored in memory, and not in any file. The only bans stored in a file are the ones you specify yourself in Unreal's configuration. This means that when Unreal is restarted, all bans and spamfilters added using /spamfilter are lost. To preserve such data, is to link Unreal to a network, where the other servers will store global bans and spamfilters and send them back when the server is restarted. Another way would be to get the tlk_export and tkl_import modules, and have that information saved manually when the server is restarted (note: these modules would not be able to store spamfilters).
 

How can I remove all the G:Lines?

There is no IRCd command to remove all the G:Lines. I have come up with ways to do it simply with both mIRC and XChat.

For mIRC, press ALT+R to open up the Remote Scripts Editor, and enter the following line:
raw 223:*:{ gline - $+ $3 }
For XChat, you may use the following TCL script:
on 223 rmgline {
  set gline [split $_rest " "]
  /gline -[lindex $gline 1]
}
Once you have entered the script, simply type /gline, and the script will remove the glines as it receives the list from the server. Additionally, you may use "/stats g +m <mask>" to only remove glines matching a certain mask. You may get disconnected while doing this, just reconnect and do it again.

When done, BE SURE TO REMOVE OR COMMENT THE SCRIPT! Otherwise, it will cause issues in the future.
 

How can I remove all the Spamfilters?

There is no IRCd command to remove all the Spamfilters. I have come up with ways to do it simply with both mIRC and XChat.

For mIRC, press ALT+R to open up the Remote Scripts Editor, and enter the following line:
raw 229:*:{ if ($2 === F) { spamfilter del $3 $4 - - $10- } }
For XChat, you may use the following TCL script (I think this is correct. If it is not, please let me know):
on 229 rmspamfilter {
  set spamfilter [split $_rest " "]
  /spamfilter del [lrange $spamfilter 1 2] - - [lrange $spamfilter 8 end]
}
Once you have entered the script, simply type /spamfilter (with no parameters), and the script will remove the spamfilters as it receives the list from the server. You may get disconnected while doing this, just reconnect and do it again.

When done, BE SURE TO REMOVE OR COMMENT THE SCRIPT! Otherwise, it will cause issues in the future.
 

How do I save all my G/K/Z:Lines during a restart?

There are 2 ways of doing this. You can either get the modules m_tkl_export and m_tkl_import to export and import your G/K/Z:Lines to file and restore them, or you can configure another Unreal to link just for the purpose of saving them. Keep in mind your services will not save your G/K/Z:Lines unless they were set through the services to begin with.


Windows Issues

 

Why isn't there a window or system tray icon?

This is because you have installed it as a service. When Unreal is installed as a service, there is no window or icon in the system tray. Installing Unreal as a service has benefits such as restarting when it crashes.

If you do not like it installed as a service, follow these steps:
  1. Open a command prompt. (For the mentally challenged, you can get to the command prompt by: Start > Run > cmd)
  2. Get to the directory you have installed it in.
  3. Type: unreal stop
  4. Type: unreal uninstall
  5. Run wircd.exe
 

I don't want this window or system tray icon!

You need to install Unreal as a service.

To do this, fillow these steps:
  1. Open a command prompt. (For the mentally challenged, you can get to the command prompt by: Start > Run > cmd)
  2. Go to the Unreal directory.
  3. Make sure Unreal is NOT running.
  4. Type: unreal install
  5. Type: unreal start
 

Error: "This application has failed to start..."

You are getting this error because you do not have the MSVS Redistributable Package installed on your computer. This package is required to run programs compiled with MSVS 2008 or newer. You can download the installer for this package here: MSVS Redistributable Package
 

Unreal won't start!

Check service.log in the UnrealIRCd folder. If this log does not exist, look for ircd.log.

If these files do not exist, and Unreal is installed as a service, follow the instructions above ("Why isn't there a window or system try icon?") for uninstalling the UnrealIRCd service. Once the Unreal service has been uninstalled, run wircd.exe. Any errors encountered when starting Unreal will be displayed. Once these errors are fixed and Unreal starts without error, the service may be reinstalled by following the service installation instructions above ("I don't want this window or system tray icon!").

Note About SSL Certificates: If you have chosen to encrypt your SSL private key after creating it, you will not be able to install Unreal as a system service. In order to install Unreal as a system service, you will need to decrypt your private key and keep it in plaintext.
 

How do I compile Unreal on Windows?

Note: these instructions are for 3.2.10, instructions for 3.2.9 and older versions may be found by reading doc/compiling_win32.txt.
Before you compile on Windows, you will need the latest version of Microsoft Visual Studio. You can download a free version of MSVC++ Express from Microsoft, which is more than enough to compile UnrealIRCd.

READ THESE STEPS ALL THE WAY THROUGH BEFORE STARTING YOUR COMPILE
  1. Download the Unreal tarball (source), and extract all the files to a location on your computer.
  2. Download this package of libraries and extract the dev folder to where you extracted the UnrealIRCd source.
  3. Open the Visual Studio Command Prompt and navigate to the dev folder inside the UnrealIRCd folder.
  4. Run DoItForMe.bat by typing it into the command prompt.
  5. When the compile has finished, you will have a new folder called bin in the UnrealIRCd folder. This folder will contain all the binaries and DLLs needed to run UnrealIRCd.
For details on the commands used to compile UnrealIRCd, open DoItForMe.bat in a text editor and read the commands from there.

Compiling modules for Windows
  1. Make sure you have successfully compiled Unreal by following the instructions above.
  2. Place the .c file for the module in src\modules.
  3. Open the MSVC Command Prompt and navigate to the location of the Unreal source.
  4. Run nmake -f makefile.win32 custommodule MODULEFILE=module_name (module_name would be the module filename without the .c extension).
  5. A DLL file will be created if no errors occour. The file may be loaded using the loadmodule directive in your conf.

 

Error: cloak.dll access denied OR not found

It seems with every release there is either some antivirus or firewall software blocking cloak.dll from being installed or accessed on a Windows installation. This is also an increasing problem due to the trend of antivirus makers hiding actions from their users, so you don't get a warning.

In order to fix this without uninstalling your antivirus software, you must add an exception in the antivirus for the UnrealIRCd program folder. This varies depending on the specific antivirus and version you run, so you should consult your antivirus help. Once that is complete uninstall and reinstall UnrealIRCd (back up your configuration first), and you should be able to access all the files.

NOTE: As of this writing, it seems only McAfee is detecting cloak.dll as a threat to the system.


Network and Internet Issues

 

Why do my users constantly get "Ping timeouts"?

This usually happens on low-bandwidth servers. A low-bandwidth server is usually run either from your home, office, or on a crappy shell. To fix this problem, you need to increase the pingfreq in your class block for client connections. A good number to increase this value if 30. By increasing this value, you are telling Unreal to send the PING's further apart.

In order to set a good pingfreq, you need to understand that a ping on IRC is not the same as the ping you can do from a terminal or command prompt. A ping on IRC is a server or client sending the PING command over the IRC connection and wait for a matching PONG. When someone pings out on IRC it means they have failed to reply to 2 PINGs with a PONG.

You will never be able to eliminate ALL ping timeouts, because a good number of them happen due to the way information is sent over the internet. Most modems/routers provided by ISPs close connections with little or no activity, and the PING command is there to attempt to stop this from happening. Each device that has this "feature" varies from model to model on when they will close the connection.

If your pingfreq is set too low, laggy connections won't have sufficient time to reply, and if your pingfreq is too high you'll be exceeding the time it takes for a connection to be considered "idle". It is up to you to find a good medium that produces the fewest ping timeouts based on your clients, server bandwidth, and number of users on your network. We recommend setting it between 60 and 120 (in 15 or 30 second incriments).
 

Why can't outside people connect?

  • If you connect to the internet through a router, you may want to read its manual. You will need to set up Port Forwarding (see portforward.com for instructions).
  • If you have a firewall, it should be disabled. Firewalls such as ZoneAlarm will block incoming connections.
  • If your server is on Windows XP (SP1), you may want to read the help files about the internal firewall, and make sure it is disabled.
  • If your server is on Windows XP SP2 & SP3, make sure there is an exception on the built-in firewall. See Windows Help for more informationion.
Please keep in mind that running a server of any kind requires basic networking knowledge (such as routers, firewalls, and DNS). If you did not know how to allow public connections on your server, it means you DO NOT have the knowledge required to run a server. Before going any further with your IRCd, I do suggest you take the time to learn basic networking. If you do not learn these things now, you will only run into more trouble in the future! With most free software there are not helpful people like myself or Unreal's support team willing to take the time and explain these things.


Configuration

 

How do I add encrypted passwords to oper blocks?

The way to do this would be to use Unreal's MKPASSWD command. This command can be used while connected as /mkpasswd or on *nix as ./unreal mkpasswd. The syntax for this command is:
mkpasswd <auth-type> <password>
Unreal supports the following auth-types: crypt, md5, sha1, ripemd-160. This command would give you a result, which is the hashed version of that password. When you have the result from the command, enter the password in the oper block like this:
password <result> { <auth-type>; };
EXAMPLE:
If my password was "password" and I wanted it to be hashed with sha1, I would type:
/mkpassword sha1 password

Which would give me:
*** Authentication phrase (method=sha1, para=password) is: $6L/ybC6i$S8/+1SAx96FcbatLyHzoYJHxxCw=

Then I would put it in my oper block as:
password "$6L/ybC6i$S8/+1SAx96FcbatLyHzoYJHxxCw=" { sha1; };

I would then be able to oper:
/oper login password
NOTE: It will be different every time you run it! Don't worry, this is because the hashes are salted so they are different each time. It is still the same password.
 

I have clients exit with "Excess Flood"

This is because your settings for SendQ and RecvQ in the class block are too low. You should increase these values. However, increasing these values too high will cause Unreal to become unstable.
 

Why are messages being slowed down? How do I stop it?

In order to protect the IRCd's stability, Unreal has a built-in "fake lag" which slows rapidly sent messages down. In some cases, there may be a bot or user class that you want to allow to send mass amounts of messages without making these people or bots an oper.

NOTE: In order to configure Unreal to exempt users from fake lag, you MUST be running *NIX and have a full understanding of how the Allow and Class blocks work. If you feel you do not know what you are doing while following these instructions, this feature is not for you!

WARNING: Using this feature will make Unreal vulnerable to attacks, and should only be used for clients and bots that are approved by your staff to be stable and not over-use this feature. DO NOT come to us when you abuse this feaure and Unreal crashes!

To enable this feature in Unreal, follow these steps:
  1. Open include/config.h in the editor of your choice.
  2. Locate the line that reads: #undef FAKELAG_CONFIGURABLE
  3. Read the warning above this line. Keep in mind we are not responsible for server crashes caused by changing this setting.
  4. Change the line so it reads: #define FAKELAG_CONFIGURABLE
  5. Save the file, and return to the main Unreal directory.
  6. Run: make clean all
  7. Run make install if needed.
  8. Restart Unreal.
To configure your server to exempt certain people, follow these steps:
  1. In unrealircd.conf, create a new class. Set the options as you please.
  2. Specify class::options::nofakelag in your new class block.
  3. Create an allow block, be sure to specify BOTH IP and host, otherwise it may match everyone. Read "about matching" in the Allow Block section of Unreal's documentation for more information.
  4. Rehash the server and have the affected users reconnect.
 

Is it possible to do mesh linking?

As of writing this, mesh linking is currently not available in any IRCd. Unreal may not support it, but Unreal does have excellent linking features to allow server administrators to configure redundant linking that would be put into affect as soon as a server splits from the network.

To set up your server, all you need to do is follow these instructions:
  1. Add a link block for every server in each server's conf. If you compiled Unreal for Remote Includes, you should be able to put the link information into 1 conf file and have the servers share it.
  2. Enable the Auto Connect option in every link block.
  3. On Unreal 3.2.8.1 and older, you will need to add Deny Link blocks for every server in your network. This will stop the servers from trying to link when the server is already in the network. The syntax you will need to use is:
    deny link { mask "servername"; rule connected("servername"); type "auto"; };
    Both servernames should be the same as the server in the link block. For example, if you have a link block for server1.example.com, you would set server1.example.com in both servername fields in that Deny Link Block. Remember, you need one Deny Link block for every link block on every server! (this is one reason why using remote includes would be best)
  4. As an added option if you have a host to spare, it would make your network more solid to do the same with the services. Unfortunately, because services developers lack the ability of thinking outside the box, most services do not support SSL and will exit when the link goes down. Solutions to the SSL issue would be to use sTunnel and configure a different port for each server on your network, then have the server list in your services go to the different sTunnel ports. To get around the services exiting when link fails, you should use crontab and a check script.
 

How do I make it so users can't create their own channels?

The best way to achieve this would be to set Deny Channel to *, and have an Allow Channel block for each channel you would like.

Such configuration would look like:
deny channel { channel "*"; reason "Only approved channels are allowed"; };
allow channel { channel "#Channel-1"; };
allow channel { channel "#Channel-2"; };
allow channel { channel "#Channel-3"; };
Other options include such things as using a module (such as m_onlyopersjoin) which requires oper status to create channels, or the use of a services package that denies the creation or registration of unapproved channels.
 

How do I stop a delinked server from trying to connect?

You can stop an unauthorized server from connecting by Z:Lining its IP address. A Z:Lined address is disconnected before Unreal processes any information sent, so this will affect both clients and servers from connecting from the address.


Modules

 

How do I install modules?

On *NIX:
  1. Download the module you wish to install, and put the .c file in src/modules.
  2. From the main Unreal source directory, run make custommodule MODULEFILE=module_name (without the .c)
  3. If you specified a different install path in ./Config, run make install
  4. Add the line loadmodule /path/to/module_name.so; to your unrealircd.conf.
  5. Rehash your server.
On Windows:
  1. Download the Windows compiled version (.DLL) of the module you wish to load. If you do not know where you can download a pre-compiled module for windows, try my module page.
  2. Copy the .DLL file into the modules folder where Unreal is installed.
  3. Add the line loadmodule modules/module_name.dll; to your unrealircd.conf
  4. Rehash your server.
 

Where can I request custom modules?

There are a couple ways to get a custom module created for you. The first would be to put a request in the Modules Section on the UnrealIRCd forums, and the second way would be to pay a developer to create the module for you. Syzop offers custom coding on his website for a small fee. Included on his website is also a list of modules commonly requested and how much they cost.
 

Where do I learn how to code modules?

Learning to code modules first requires knowing how to code in C. From there we suggest learning how to create modules based on the modules already part of UnrealIRCd and from the modules created by third parties. There are a couple modules that will assist in your learning already included with Unreal, the first one is m_template.c in the main Unreal directory, and m_dummy.c in the module source folder.
 

Is there a list of what modes and commands modules give?

Note: This table is most likely incomplete! I added all the more popular modules I could think of. There may be some inaccuracies, please check your modules and what they provide before loading new ones.

Module Channel Modes User Modes SNOmasks ExtBans Commands
callerid   I     ACCEPT
chansno This module provides internal functions only.
cmdflood This module provides internal functions only.
cmdshun         CMDSHUN
commandsno     C    
courtroom U U     SUSPEND
identonly X        
joinpartsno     J    
m_adult X X      
m_allwhois   E      
m_banlink B        
m_blocknonalpha y        
m_chgswhois         SETSWHOIS CHGSWHOIS
m_clones         CLONES
m_defaultlist This module provides internal functions only.
m_delayjoin This module provides internal functions only.
m_elmer         ELMER
m_hostforward       f  
m_netadminsonly W        
m_nobots B        
m_nochan         NOCHAN
m_nonickchange This module provides internal functions only.
m_onlyopersjoin This module provides internal functions only.
m_quarantine         VIRUSCHAN VIRUSREL
m_regonlylist This module provides internal functions only.
m_restrictedjoin This module provides internal functions only.
m_restrictrehash This module provides internal functions only.
m_sanick         SANICK
m_securequery   Z      
m_sendraw         SENDRAW
m_servlist         SERVLIST
m_soper This module provides internal functions only.
m_staff         STAFF
m_tkl_export         TKLEXPORT
m_tkl_import         TKLIMPORT
m_uline     U   ULINE
nickrange         NICKRANGE
nocolorumode   c      
noctcp D mM      
nopost This module provides internal functions only.
operjoin This module provides internal functions only.
operpasswd     O    
opers         ADDOPER ADDROPER ADDGOPER DELOPER DELROPER DELGOPER MODOPER MODROPER MODGOPER CONFOPER CONFROPER MASTERPASS
PrivDeaf   D      
regexban       R  
RegExcept       E  
regexkill         RKILL
TextBan       T  
umode         UMODE
vhosts         ADDVHOST ADDRVHOST ADDGVHOST DELVHOST DELRVHOST DELGVHOST MODVHOST MODRVHOST MODGVHOST CONFVHOST CONFRVHOST


IRC Support

 

Why is the use of Mibbit not allowed in the Unreal support channel?

Currently we do not allow people using Mibbit or Mibbit-like IRC clients to get support. Mibbit hides the IP addresses of users, which makes it impossible for UnrealHelper to track users. We fully understand there are "workarounds" and full support on UnrealIRCd networks for mibbit. Here are a few reasons why Mibbit is not supported for IRC support:
  1. Modifying UnrealHelper to detect and use the IP encoded into the ident will not only be time-consuming, but very inefficient making UnrealHelper slower than it already is.
  2. UnrealHelper has no way of turning the decoded mibbit IP into a proper cloaked host/IP used to track users and to match mibbit users with existing users using direct connections.
  3. People wishing to run an IRC server should really be using a direct connection to IRC (in other words, using a real client).
 

Why is there a quiz to get support?

We require people to take a quiz for a few reasons. The quiz is there to gather information about your set up for us, as well as qualify you for support. We understand most help channels will help anyone who happens to stumble in, but we're here to provide a higher level of support to the users. In order to provide a higher level of support to our users, we require they have read the docs, FAQ, and have a basic understanding of their operating system and networking. Since these are required, we can then offer full solutions to problems without the "RTFM" and "Google it" parts.
 

Is the quiz open source?

To put it simply: no.

The reason UnrealHelper is not open source is primarily because UnrealHelper is custom coded specifically to #Unreal-Support's needs. Another reason UnrealHelper is not open source is because it contains sensitive information such as passwords.

The quiz and bot are basically 2 separate parts sharing the same SQL database. The database has 4 tables, one for each type of questions (windows, *nix, general IRC, and network). Each table has 6 fields, one for the question, 4 for each of the answer options, and 1 for the single-letter correct answer. The website takes the information entered into the quiz and generates the answer, starting with !, the letter of your OS selection (n or w), then the 6 quesion/answer pairs in <question number> + "-" + <answer letter>, and lastly adding 1 for a modified IRCd and 0 for vanilla. The final quiz answer looks like !n1-a2-b3-c4-d5-a6-b0

The bot then takes that answer and compares it to the SQL database. It starts first by splitting up the answer string into sensible sections, something like: n 1-a 2-b 3-c 4-d 5-a 6-b 0. It checks the first two questions depending on the OS letter (n or w), then compares the question number and given answer with the question number and correct answer fields in the database. It then moves to the next two answer pairs to check general IRC questions, then finally the last 2 pairs for network questions. It counts each correct answer, and weights the final decision based on the 'modified' flag.

With the given information in the answer string, it then knows whether it should voice the user submitting or deny the user access. To remember users who passed, it uses a simple address list based on the 3rd address mask (*!*ident@*.some.isp.com). To prevent answer sharing, a list of submitted answers is periodically audited and shared answers are deactivated. The same answer may not be given twice in a row.
 

Will I ever need to retake the quiz?

You will need to take the quiz under the following conditions:
  • Your user@host changes.
  • You leave the channel and don't return for 28 days.
 

Can I be added to the VOP list?

Voicing users in #Unreal-Support is entirely left to UnrealHelper. The reason for this is the VOP list cannot be restricted to addresses which makes the possibility for passwords to be shared and accounts to be abused. In the event UnrealHelper is not online, the channel is unmoderated and anyone may speak.

To add to that, the quiz is not made to be difficult and if you need to continue taking the quiz it should not take any longer than 30 seconds to go through the questions and get a new code.


Everything Else

 

How can I reset the user counts after a botnet attack?

To reset user counts, follow these instructions on all affected servers:
  1. Stop Unreal
  2. Delete the file named ircd.tune
  3. Restart Unreal
 

How do I get the real host/ip of an user?

These are the only ways to retrieve a users real IP or host:
  1. /whois user (as oper)
  2. /who +R user (as oper)
  3. /who +I user (as oper)
  4. /userip user (as oper)
  5. /userhost user (as oper)
  6. /whowas user (as oper)
  7. Check Unreal's logs (if you were smart and enabled connect logging)
  8. Look for the "client connecting" or "client exiting" notice in your scrollback or client logs.
This is all explained in Unreal's documentation, please read the docs and learn how to use your server. If you can't or don't want to do that, you shouldn't be running an IRCd.
 

How do I see who connected from a specific IP?

Unreal does not store this information in such a way that it can be retrieved without modules (as of writing, no module exists to do this). The only methods in existance that are usable to server admins are: your client's scrollback/logs, and Unreal's logs. It would be extremely simple to grep through either of the logs for the IP you're looking up. If you didn't have any logs on the server with the connect flag, then you probably should enable that now!
 

How do I keep opers from attacking higher opers?

  • If you think you have an oper that is going to kill or ban another oper, he/she should not have an O:Line.
  • If there is an oper who is abusing their power on another server in the network, and that server's admin is refusing to talk to that oper or remove his/her O:Line, that server does not belong on the network. Delink it.
  • If you don't own the network and the other admins are refusing to do anything about the abusive oper, find a better network to link to.
  • Also note, that if the oper in question is on another server, you are required to run such modules that "fix this" on every server on the network. If the other admins are refusing to cooperate, then you can't use a module anyway.

There you have it, plain and simple solutions. It all comes down to: If you don't trust the oper, or the oper is attacking other opers, then why does he/she have an O:line?

 

How do I hide my idle time?

There is no way to remove the idle time from WHOIS without modifying the source. As mentioned many times, modifying the source voids your privilege to receive support (the general rule is "if you can edit it, you can fix it when you break it").

However, if you do not wish to have your idle time displayed in WHOIS, you can always put in a false idle time by creating timed scripts to reset your idle. The idle time is reset each time you send a message, or CTCP. All you need to do is use one of these methods to create that. Pretty simple stuff!

Note that if you are hiding your idle time because you do not wish to be disturbed is not the proper thing to do. There are things already in place to tell people to leave you alone as it is. You have AWAY, umode +D (provided by privdeaf), and +R. Also, the ability to hide your idle time will likely NOT be added to Unreal as a feature - there's not much use for such a feature.
 

What do all the characters mean in /version?

These are compile and runtime flags associated to what options are enabled on Unreal, as well as what hooks modules might be using within Unreal.

Here's what they mean:
3 3rd party modules have been loaded, or Unreal is 'tainted' (ex: bad libs)
6 IPv6 is supported
C Command line config enabled
c Server is chrooted
D Server is in Debug Mode
E Extended channel modes supported
e SSL is supported
F Using file descriptor lists
h Compiled as a hub
i Shows invisible (+i) users in /trace
K No ident checking
M A module has hooked channel messages
m A module has hooked private messages
n NOSPOOF is enabled
O OperOverride is enabled
o OperOverride is enabled without verify
P Uses Poll()
V Uses valloc()
W Windows version
X STRIPBADWORDS is enabled
Y Syslog logging is enabled
Z Zip links is enabled
 

I get permission denied when trying to use SAJOIN/SAPART/SAMODE

If you're using Anope:
If you are using Anope, be sure you have UnRestrictSAdmin defined in your services configuration. If you do not you will need to add it, rehash or restart services, and re-oper. When UnRestrictSAdmin is not set, Anope will not allow the usermode +a to be used by any oper that is not listed as a Services Admin in Anope's database. Usermode +a is required to use SAJOIN/SAPART/SAMODE.
If the above does not apply to you there is likely a problem in your Unreal oper configuration. Verify that you have either netadmin or services-admin defined as a flag in your oper block, and "a" appears in the list of flags in /stats o. Remember that if you make any changes to your oper block, you will need to de-oper (by using /mode yournick -o, or reconnecting), then re-oper for any changes to take affect.
 

How do I set up a BOPM?

A BOPM is extremely easy to set up, and will play a large role in preventing drone and flood attacks on your network if configured using good blacklists. To set up a BOPM on your network, simply follow these directions (*NIX only):
  1. Download the latest version of BOPM from http://wiki.blitzed.org/BOPM to your server using wget or similar.
  2. Untar the files to the directory of your choice, and cd into the new directory created when untarring the files.
  3. Run ./configure && make && make install && cd ~/bopm/etc
  4. Download my example BOPM configuration file from this link.
  5. Edit the downloaded file to your liking, and rename it to bopm.conf.
  6. Add an O:Line in Unreal for the BOPM with the proper permissions (don't forget to rehash).
  7. Run ~/bopm/bin/bopm to get the BOPM started.
I strongly recommend you use the DroneBL and ProxyBL blacklists. DroneBL is a blacklist maintained by the IRC community and is usually the most up-to-date blacklist when it comes to stopping malicious users and spammers. ProxyBL is strongly recommended because it contains a list of open proxies which have been published through the most popular proxy sites. The only way to get an IP removed from ProxyBL is to shut down the proxy running on it and wait for a re-scan.
 

Nothing happens when I use my aliases

This is a common issue when your set::services-server is not set properly. For proper operation from your alias blocks, check the following:
  • Make sure set::services, the link name, and the server name in your services configuration file all match.
  • Remember that set::services-server is cAsE-sEnSiTiVe, and will not work if you have a different case.
  • Make sure your services are online and connected to your server.
 

How do I hide/remove the server information on connect?

Short answer: Not possible. Some clients do have the option to hide this information, but it may not be hidden or removed for everyone and still be a functioning IRC server.

Long answer: the information shown when a client connects is the server telling the client what is and is not allowed on the network. This contains information such as how ops are displayed in channels, what channel types are allowed, what commands and modes the server has available, the server name, the network name, the list goes on. Without this information your IRC client will not know what to do on this server, and will not be able to send the proper commands for IRC to work.
 

How do I upgrade UnrealIRCd?

Upgrading UnrealIRCd to the newest version can be easily done while minimizing downtime for users.

Before upgrading UnrealIRCd:
  1. Check the release notes to see if there are any changes that need to be made to your configuration. Be sure to read ALL release notes for every version between your version and the latest.
  2. Make any desired or required changes to your configuration.
  3. Copy all the configuration files you use to a different location (any *.conf files, SSL certificates, etc).
  4. Download the latest version of UnrealIRCd for your system.
  5. Read through the upgrade instructions for your system BEFORE doing them.
Upgrading *NIX:
  1. Extract the source to your home directory, as if you were installing UnrealIRCd for the first time.
  2. Gather the source files for any custom modules you may be using.
  3. Run ./Config and answer the questions. If you have UnrealIRCd installed to its own directory (like /home/you/unreal), be sure to specify the SAME directory here. Otherwise, the default or a different directory may be used.
  4. Run make to compile UnrealIRCd.
  5. Compile any custom modules you may be using.
  6. Run make install if you specified a different path in ./Config.
  7. Veify that your configuration files and custom modules are present in the UnrealIRCd directory, copy them if needed.
  8. Restart UnrealIRCd
Upgrading on Windows:
  1. Gather or compile any custom modules you may be running.
  2. Shut down UnrealIRCd.
  3. Run the installer and select the same installation location.
  4. Veify that your configuration files are in the UnrealIRCd folder, copy them if needed.
  5. Start UnrealIRCd.