Internet Relay Chat
WARNING ABOUT FREENODE:
This post refers to Freenode server. I now suggest that you use Libera chat that is the de-facto alternative, now that Freenode went nuts.
Concepts
- Protocol
- Servers
- Clients
- Commands
Protocol
IRC is an Internet Protocol, as specified in https://tools.ietf.org/html/rfc1459
Servers
IRC clients connect to IRC servers in order to chat in IRC channels.
IRC Servers form networks of servers:
Source: https://tools.ietf.org/html/rfc1459#section-1.1
For example, The Freenode IRC network is available through the following domain: irc://chat.freenode.net/
And you can see a list of all the servers associated to freenode's main IRC server, here: https://netsplit.de/servers/?net=freenode
Clients
There's a variety of IRC clients one can use to connect to IRC channels. The most popular is mIRC. In my case, I'm using HexChat on Windows.
Commands
IRC commands can be executed from within any conversation, and they do something that might or might not be outputted for everyone to see.
IRC commands are used to do things like:
- identifying to a nickserv (
/msg NickServ identify <PASSWORD>
) - joining a channel (
/join #channelname
) - quitting a channel (
/quit
)
And more1
In practice
Now, since I'm mainly going to use IRC for talking about nerdy things (I'm working on Web-related stuff), then I'm going to connect to Freenode IRC network (that has many IRC servers) that hosts mainly FOSS-related IRC channels (chat rooms).
After having registering myself to the nickserv, I had to validate my email. So I received the following email:
Now that you have a user on that IRC network, you can /join
a channel.
Here's the command to do so for the #wordpress
channel:
/join #wordpress
Simple!
Looking for another channel?
/list
This command will open a window that looks like this (depending on your IRC client):
You can then enter a keyword to search through the list. In my case, I'm looking for a GnuPG-related channel.
So #gnupg
looks like the place to go to!
Security
Now, you need to know that some people are logging conversations of channels they are logged into. And some of those people (often the case for open source-related channels) publish conversations (along with users' IP addresses) on the Web.
Now, you probably don't want your real IP to be listed on the Web, right?
That's when "cloaking" become useful.
You can get a cloak by asking your IRC network's #vHost channel, or on
#freenode
for example, you just go to the #freenode
channel and ask a staff
to give you a cloak that matches your current status. In my case, since I did
not participate in any open source project, I can ask an unaffiliated
cloak.
If you're not identified to the nickserv yet, they'll ask you to do so first hand.
SASL
Also, to make sure you're always signed in with your own nickname on the
network you're connecting to, you need to configure your client so that it
auto-connects instead of you always typing /msg nickserv identify ...
each
time.
Credits
Thanks to indomitable
on Freenode, who helped me figure out and clarify some
of those aspects.