User Tools

Site Tools

tools:irc

Internet Relay Chat (IRC)

Internet Relay Chat (or IRC) is one of the oldest chat platforms. However, it is not a service, nor an application, but a communication protocol. Using the IRC protocol, anyone can spin up a chat server with any number of individual chat rooms, and any compatible program can connect to any of these servers.

Its simple no-frills interface has led to IRC being affectionately nicknamed Multiplayer Notepad. To win in IRC, you go and talk, become popular, amass friends, and get ops. Now for most things in life you can just go read Wikipedia, but IRC is confusing as fuck. So let's break it down for the new operatives to learn.

AMI @ IRC

The Anonymous Military Institute's conference hall is located at #ami on irc.hackint.org. If you are using IRC for the first time, it is recommended you use the webchat, or install HexChat.

IRC Clients

Below are just a handful of popular IRC clients. Each of them does things in its own way. It will be up to you to play around to see what works best for you and your particular machine.

For a full list of clients that are compatible with modern IRC servers, visit IRCv3.net for a detailed comparison chart.

Browser

If you're just getting started and are feeling apprehensive about installing software right away, perhaps consider a browser-based client to get a feel for the IRC ecosystem first.

Desktop

If you find yourself using IRC regularly, you will want to graduate from a browser-based app to something a bit more robust. Full-fledged desktop apps are the next step up.

Terminal

For powerusers who aren't afraid of command line, are terminal-based apps. This is where things get serious, but also where you get the most functionality for advanced IRC magick.

  • BitchX - Linux, Mac & Windows (popular with ASCII artists!)
  • irssi - Linux, BSD & Mac (by far the most popular terminal-based client)
  • WeeChat (simple, modern client. not to be confused with WeChat)

Mobile

Mobile apps are their own animal entirely. Here are a few options.

Guide For New Users

IRC is primarily controlled with text-based commands. Some clients have fancy buttons and menus that replicate some of these commands for novices. However, if you plan on sticking around on IRC, you should learn some of the basic commands.

Connecting to Chat Rooms

Chat rooms on IRC are called channels, which are hosted on servers. One server will typically have many channels, and not everyone in one channel will be in the other channels on the same server. Before you can join a channel, you have to connect to a server first.

There are many servers, but for the sake of this tutorial, we will use Hackint as an example, since that's where the AMI's channel is hosted. In most clients, you can do this with the /server command:

/server irc.hackint.org

Once you are connected, you can type /join #ami to join our channel.

All channels are prefixed with the pound (#) sign (like a hashtag). You can type /list to get a full list of other channels on the server, which you can also join with the /join command.

To find more servers, check out this fairly updated list of popular IRC servers.

Managing Your "Account"

IRC does not require registration, and allows you to chat under almost any name (aka 'nick' or 'nickname' in IRC terminology) as a guest. To change your nick, type /nick newnickhere.

Some servers have nickname registration services, allowing you to keep other people from stealing your nick. On Hackint (and many other servers) this service is called NickServ.

You can get a list of available NickServ options with the help command:

/msg nickserv help

To register your nick, use the register command, providing a password and email. You will usually have to validate the email address to finish registration in these cases:

/msg nickserv register password youremail@domain.com

To “log in” to your registered nick, use the identify command upon joining the server:

/msg nickserv identify password

Many IRC clients have an option to “auto-identify” with NickServ, providing your password automatically on connect so you don't have to enter it every time. Check your client's documentation for more info on this feature.

If someone is using your nickname, you can boot them off with the ghost or recover commands, depending which version of NickServ the server has. Both of them are the same:

/msg nickserv ghost yournick yourpassword
/msg nickserv recover yournick yourpassword

You can also link additional nicks to your account. Simply change to the new nickname you want to squat, and use the group command:

/msg nickserv group yourprimarynick yourpassword

People on IRC

You will notice that people on IRC will oftentimes have symbols next to their names. This is to display their role in the server. Underlying these roles is a obtuse system of modes denoted by letters. From most-powerful to least-powerful, here are the various roles of an IRC channel:

  • Channel founders have a ~ by their name, also known as mode +q. They are the top-level admin of the IRC channel, usually the founder, but sometimes the founder will pass the role onto someone else. They can change all channel settings and modes.
  • Super-ops or sops have a & by their name, also known as mode +a. They have the same powers as ops, can access some channel management commands, and cannot be kicked by normal ops.
  • Ops have a @ by their name, also known as mode +o. They can ban, kick, add and remove ops, change the topic, and make your life hell.
  • Half-ops or hops have a % by their name, also known as mode +h. They can ban and kick, add and remove voice, change the topic and set a few modes.
  • Voiced users have a + by their name, also known as mode +v. If the channel is set to mode +m (moderated, basically mute) then only voiced users and the various levels of ops can talk, while regular users cannot. Voiced users are usually people who have been around the channel for awhile, and are probably friends with the ops.

A user without any of these symbols/modes is just a regular person. They may feel as clueless as you. Just stick around, lurk moar, and you will learn.

Talking To Other Users

To send a private message, use the /msg command:

/msg nick message here blah blah dongs

In most clients, private messages appear in a little new window.

Chat Etiquette

Note about Lurking: SAY SOMETHING EVERY ONCE IN A WHILE. Many channels get sick of people just joining and watching, at least let them know who you are so someone doesn't kick you or something. So, you can lurk, but be sure to talk occasionally. The IRC world is extremely intolerant of newfags.

Advanced IRC Magick

IRC's simple text-based interface hides a lot of functionality. Some things which you may find useful:

Secure IRC

IRC is not the most secure platform in the world, but a few simple tricks can dramatically increase your privacy:

IRC over VPN's

Depending on how you are using IRC, you may not always need a VPN. If you are using TLS to connect to your favorite IRC servers, then your connection is already encrypted. If you are using IRC remotely (see IRC in the Cloud” below) via SSH, then know SSH encrypts your connection as well. So rest assured, if you are hanging out with terrorists on EFNet, all anyone can really see is that you are connecting to EFNet - but they cannot see anything else unless this is happening in a public room on EFNet, which they would have to go find in a list of thousands of channels unless they have a way to man-in-the-middle a TLS connection.

In many cases you will want to use a VPN. This is mainly because on IRC everyone can see your hostname and IP address. So if you do not want people tracing back to your location, connect to IRC from a VPN, or from a via media remote server in the cloud.

You will also want a VPN if you are working sensitive operations on a private IRC server. If you have a remote client in an opsec-conscious environment, you will want a VPN both ways: both between your local machine and your remote client, and between your remote client and the server. Even with encrypted connections using SSH and TLS, the datacenter can still pick up the IP addresses of everything your remote client talks to, and you cannot always trust the datacenter.

IRC over TLS/SSL

Most modern IRC clients support encrypted connections between client-server with TLS (the modern successor to SSL). You should enable this, as it will keep people on your local network from being able to read your communications, as well as prevent man-in-the-middle attacks.

TLS/SSL connections are made over different ports than non-encrypted connections. For IRC, this is usually be on Port 6697, but it can vary from server to server.

Channel Management

Many servers have a service called ChanServ for managing channels. Use the help command to pull up a list of all ChanServ options:

/msg chanserv help

Registering Channels

If you are running a channel on a server with ChanServ, it is recommended you take advantage of it and register your channel. Many services provided by ChanServ are not available unless you register your channel with it first. To do so, you will need an unregistered channel in which you are an op, and you will need a registered and identified nick:

/msg chanserv register #channelname password brief description

Managing Channel Access

ChanServ runs on autopilot, and can be set to dole out the various op & voice modes to users. (Note that when using ChanServ to give automatic privileges out like this, that user must be registered with NickServ first.)

/msg ChanServ xop #channelname add nick

Where “xop” is either:

  • vop for auto-voice
  • hop for auto-halfops
  • aop for auto-ops
  • sop for auto-superops

You can also change add to del to revoke privileges from the specified nick.

Kicking People Out

Too much of a pussy to kick or ban someone yourself? ChanServ can do it for you!

/msg chanserv (kick|ban) #channelname nick reason

Note: If the channel has signkick enabled (default), your nick will be displayed in the kick message.

Secure Noticing

To send a message to everyone on a channel with a certain level or higher, type this:

/notice (~|&|@|%|+)#channel message

where the symbol represents the minimum level to send the message to (see “People on IRC”).

Use this to share sensitive information without spais finding out.

Custom Hostnames

Normally when you join a channel, people see a long ugly hostname - a sort of long-form address that corresponds to your IP address. However, with a registered nick, you can replace your plain old hostname with a vHost, which is basically just a fake hostname that looks a lot prettier.

To request a vHost, you will typically have to message HostServ:

/msg hostserv request vhost@goes.here

You will then have to wait for your vHost to be approved. Some networks do it automatically after about a few hours, while other nets have it to where it must be manually approved. This command can vary from server to server, and sometimes you will have to contact a server operator directly to make it happen.

Some networks let you use real domain names as a vhost… provided you can prove you own it. This is useful if you are connecting from a cloud machine that is providing other services. (See next section)

IRC in the Cloud

IRC was developed in a time before the prevalence of mobile phones & wireless internet connections. Because of this, it is a little frustrating to use on unstable connections. Furthermore, when you are disconnected and waiting to reconnect, you completely miss any messages that are being sent in your favorite channels.

To get around this, you will want to set up an IRC client on a remote machine. For under $10/m, you can get a Debian VPS with Vultr (complete with automated backups) on which you want to install byobu or tmux, and a terminal-based IRC client like WeeChat or irssi.

By running an IRC client in this type of software stack, it will stay alive 24/7 even if you disconnect or close the window. When combined with a remote machine, you can use SSH to check IRC at your leisure without missing a single message. You can even combine it with WireGuard to obfuscate the location of your VPS's datacenter from other IRC users.

Application Specific Instructions

Here are some quick-start guides for several popular IRC clients, if you need help getting started.

Configuring HexChat

To point HexChat to our IRC, configure it as follows. (Click to enlarge)

Configuring WeeChat

Eventually you may need more functionality out of your IRC client, and when that time comes you will need a terminal client. WeeChat is probably the simplest of the terminal clients to configure. It also has a pretty robust out-of-the-box setup without having to track down plugins. For both these reasons, we recommend using WeeChat if you have never used a terminal-based client before.

You can install WeeChat in Debian with the apt command, and then the weechat command to start it:

$ sudo apt install weechat
$ weechat

WeeChat requires a little bit of configuration to get going. First off, you will need to tell WeeChat to use Dynamic Rejoining. With this set, WeeChat will remember which channels you were in last, and automatically rejoin them when you connect:

/set irc.server_default.autojoin_dynamic on

Next, you need to connect WeeChat to a server (again, we will use Hackint as an example). To do this, you first need to define some details about the server:

/server add hackint irc.hackint.org/6697 -ssl -autoconnect

Then, use the /connect command to connect to Hackint:

/connect hackint

Once you are connected, you can type /join #ami to enter our IRC channel. To test that autoconnect works, type /quit to exit WeeChat. Then reopen WeeChat. It should dump you right back into #ami on Hackint. There is no real limit to how many servers/channels you can have WeeChat automatically join.

To keep WeeChat alive on a remote machine, simply run it inside byobu or tmux via SSH. Then just reattach to your session when you SSH back in.

Configuring irssi

Many power users prefer irssi as a terminal IRC client. Like WeeChat, it can be run locally, and on a remote machine via SSH.

This section needs expansion. You can help by adding to it.

tools/irc.txt · Last modified: by Humphrey Boa-Gart

Find this page online at: https://bestpoint.institute/tools/irc