In this extensive tutorial, I will explain to you step-by-step how to set up UnrealIRCd on a Windows system. Estimated setup time: 30-45 minutes, excluding port forwarding.
Notes:
This tutorial will assume you already have an IRC client like mIRC installed. If you don’t, try using Mibbit at http://www.mibbit.com/. It’s a free web-based IRC client, so you don’t have to install anything. First click “Start chatting now” to go to the main Mibbit application. Click the “Server” link when the page has been loaded (this may take a while!) and enter your IP into Mibbit. Please note you can only do this after you’ve forwarded the necessary ports in your router, I’ll explain how to do that later. If you have a client like mIRC installed, you can simply use /server 127.0.0.1 to connect to your local server, even if you have not forwarded it yet. Other clients may require other commands or interactions, but just try to connect to 127.0.0.1 with whatever client you are using.
I also assume you have access to your router; this might require login details. If unknown, try ‘admin’ as both the username and the password. If that doesn’t work, try ‘administrator’. If that STILL doesn’t work, ask the guy that set up your router to give you the login details, since he probably configured it. Having access to your router is absolutely required to successfully make your server available to the outside world. You can also use software like Wippien or Hamachi, but that’s far outside the scope of this tutorial. I might write one on that later.
Last but not least, all software used in this tutorial is either free or open-source. You are fully licensed to use it, at least in a personal/home environment. However, be sure to read the licenses that come with the software. It’s always best to know what’s in it. You don’t have to fully read it, but try to skim the text a bit, to get a general idea of the license.
Step 1: Download UnrealIRCd
Go to http://www.unrealircd.com/. In the left column, you can see a list of recent downloads. Pick the Win32 version (not the SSL one!) and wait until it’s fully downloaded.
Step 2: Install UnrealIRCd
Next, we will install it. Just run the setup, and install everything in the default locations. When it asks about the additional tasks, choose “Install as a service”, “Start UnrealIRCd when Windows starts” and “Restart UnrealIRCd if it crashes”. This will make sure your server keeps running, no matter what happens. It will also mean that the server will start when you boot your computer, probably even before you logged on. Your antivirus-software or firewall might give a warning or two about this, just click OK or Yes. I can assure you that it’s 100% safe.
If it’s installed, uncheck everything in the final window, except for “View example.conf”. This will be the configuration file you are going to modify. Don’t worry, it’s not as big and complicated as it looks like!
Step 3: Configuring UnrealIRCd
Now, we will have to edit example.conf. The comments in the configuration file instruct you to uncomment two lines. This simply means you have to remove the // in front of it. (You are using a Windows system, in case you forgot
)
After you’ve done this, simply scroll down, until you reach the ‘me’ block. Please note that all strings (pieces of text) should be contained in quotation signs (”), to make it clear to UnrealIRCd that it’s one block of text. Change the name to ‘irc.localhost.net’, and change the info field to something that makes clear what kind of server the users are on. For example, enter the name you made up for your server, or type “Joe’s Server” or something like that. It doesn’t really matter a lot. You can leave the numeric as it is, it’s not important.
Next, there is the ‘admin’ block. Here you should add all information about yourself that you wish to share with the users of your IRC server. Remember that IRC servers are usually publicly accessible, and it’s not a good idea to put any personal info here. It’s best to enter just your name or nickname, and your e-mail address. As the comments in the configuration file instruct you, you can add an unlimited number of lines, and also remove any lines you don’t want. Just make sure there is at least one line there.
Next is the ‘class’ block. It’s not important. It’s not interesting either, in fact very boring, so just skip it. The default values work just fine (just note that by default, only 500 clients can connect to your server, but that should be enough. If you want more, you might just want to change the maxclients field under the ‘clients’ class.
Then we see the allow block. It defines that any person can connect (that’s what a public IRC server is for, right?), and that a person can only connect five times simultaneously as an absolute maximum. From the same IP address, that is. That means that if a household has two computers, the maximum amount of connections from both computers added up, is five. These settings are fine, so let’s not mess with them. Next is another ‘allow’ block, but this time with a password. Just remove the entire block, because we are not going to need that.
Next is an ‘allow channel’ block. Remove it completely, it’s not needed.
After this, we see an ‘oper’ block. Now, this part is very important. It defines your server operator login. You can use it to manage certain parts of your IRC server remotely. You will see a part saying oper bobsmith. Replace the bobsmith part with the username you want to use. Then change the userhost line to userhost *@*;. This will enable you to connect from anywhere, not just your home computer. At the password line, replace the text between the quotation marks with the password you want to use. Be sure to use a strong password, as this is the password that will secure the account on your server with the most influence. In fact, it’s the only account, unless you have services installed (this will be explained in a later tutorial). Leave the rest (including the flags) of the oper block as it is, and continue scrolling down.
Next is the ‘listen’ block. There is a serious wall of text here, explaining how everything works. We are not interested though, so we skip the entire ‘listen’ block, including the explanations.
Next are the ‘link’ and ‘uline’ blocks, just remove these completely.
We now see the ‘drpass’ block. Define the password needed for restarting/killing the server here, I think you figured out how to change values by now (quotation marks blah blah blah).
Next is the ‘logs’ block. Leave this as it is.
Now from the ‘alias’ block until /* You can include other configuration files */, just remove EVERYTHING. Yes, I know it’s a lot, but just remove it. It’s not needed.
You will find two ’set’ blocks now. In the first block, set the network name to the name of your IRC server (whatever name you made up). Change the default-server to your IP address (go to http://www.whatismyip.com/ and write it down for future reference as well). Then remove the stats-server line, set services-server to your IP address, and change help-channel to #help. For the 3 cloak keys, enter some random characters (follow the instructions in the configuration file, they should be VERY random, or the server won’t start), and change all those ‘hosts’ into <something>.localhost.net. In the next ’set’ block, change the kline address to your e-mail address. Leave the rest. You’re done!
Step 4: Saving the configuration and starting UnrealIRCd
Phew! That was some typing, wasn’t it? But hey, you’re done now. Just save the file into C:/Program Files/Unreal3.2 or wherever you installed UnrealIRCd. Note that the example.conf is not in the UnrealIRCd directory by default (you really have to navigate there first!), and you have to save it as unrealircd.conf, or it won’t work. Now you’ve saved your configuration file, let’s start UnrealIRCd! Go to the UnrealIRCd entry in your Start Menu, and start it (you’ll probably know which icon to click, I hope). Now the big thing happens you’ve been waiting for… nothing! In the background, however, the server should have started. Try going to Start > Run, and type services.msc. In the list you now see, look for UnrealIRCd, and see if it says ‘Started’ in the status column. If it doesn’t, you’ve made a mistake in configuring UnrealIRCd. Go to your UnrealIRCd directory (C:/Program Files/Unreal3.2 for most people) and open service.log with Notepad (that probably happens by default). At the bottom of the log file, it will explain you where you went wrong. Fix it and try again. To test if everything is working, try connecting to 127.0.0.1 with your IRC client. Or, if you are using Mibbit, or another web-based IRC client, skip the connection test, and continue with the next step.
Step 5: Forwarding your router
Now we’re going to do one of the most tedious tasks one can do regarding the internet: forwarding ports on a router. This is different for every router, and if you’re not sure what to do, you should take a look at http://www.portforward.com for a manual for your router. Or you can just try this fairly universal method I’m about to explain here. First go to Start > Run and type cmd, or just open your Command Prompt through the Start Menu. In the command prompt window, type ipconfig /all and hit Enter. It will now shoot a lot of information at you, about all your network connections. Look for one that has a “Default Gateway”, and write down the address. If you don’t see any Gateway addresses in the entire list, you are either not looking hard enough, or you don’t have a connected network adaptor and you are reading this page telepathically 
In the same screen, look for the “IP Address” that is listed for the same network adaptor as your Default Gateway, and write it down as well. Open your browser, type the Default Gateway address, and hit Enter. It should now load the control panel of your router. Look for something called “service forwarding”, “port forwarding”, “server access”, “virtual ports”, or anything remotely similar. If it has “Port” and “Forwarding address” or similar ports, you’re probably at the correct page. For Port, fill in 6667. For the Forwarding Address, Destination, Local Computer, or anything else your router says about it, write the second IP you wrote down (your local IP address) and click OK to save it (you might need to tick a checkbox to enable the forwarding rule). Reboot your router (preferable through the router control panel, also known as ’soft reboot’), and wait until you have an internet connection again. Now try connecting to your own external IP address (the one from whatismyip.com you wrote down) with either your IRC client or Mibbit. If it connects, you just successfully forwarded your ports, and your server is now accessible for the entire outside world! Of course, you should keep an eye on it to prevent abuse, but that’s your own business 
Now the only thing you have to do is give your external IP to other people, and tell them to connect to your IRC server. Have fun!
Problems, questions, feedback, found errors in this tutorial?
Either drop me a line at info@sven-slootweg.nl, or post a comment, and I’ll try to answer your questions. Please don’t forget I have a lot to do every day, so I might not respond right away, but I’m doing my best.