IRC bouncer, keep connected and history

original: http://pingbin.com/2011/07/irc-bouncer-keep-connected-and-history/

IRC is still actually quite popular, albeit with the more technical community. However there are some issues with it, most significantly it’s design doesn’t really allow for the mobility of it’s users from one workstation to another which is fairly common practice in a technical community. History is created in realtime without been stored on the server for user retrieval, much like a real world conversation if your not there then you miss what has been said and you can only gain back that history by asking someone what happend (which isn’t going to be that accurate).

Adapting this design requires a middle man of sorts, in this case a VPS server or even a dedicated server if you have one. Basically you install some software on a server, this software connects to the IRC server on your behalf and constantly maintains the session. You keep the same username/handel/nic and ‘session’ with 100% presence in the channel, therefore you also get 100% of the history on the middel man VPS.

As a client from your workstation you then make an IRC connection not to the main IRC server, but your middle man IRC server. This server will then instantly push you the historical data so you can jump straight into the conversation. great isn’t it!

First we need to install the software:

1
2
3
sudo apt-get install znc
sudo adduser znc
su znc

Next you need to follow through the wizard and create a configuration file, the config file will be stored in ~/.znc/configs/znc.conf once created, just run the following command and follow the instructions:

1
znc --makeconf

You will be asked for a port to use, I would suggest using the normal IRC port however if your trying to get around a proxy use something like port 80, only if there is no web server attached!

Finally just setup your IRC client to use the proxy vps as the IRC server either the hostname or IP address should work, also don’t forget to give the user name and password or you will get an authentication error