IRC (Internet Relay Chat)

IRC (de l'anglais Internet Relay Chat, qui se traduirait en « Discussion Relayée sur Internet ») est un système de messagerie en temps réel sur Internet. Des dizaines de milliers d'utilisateurs partout dans le monde y sont connectés à tout moment, occupés à discuter dans des groupes qu'on appelle des channels.

IRC à l'ENS

L'ENS dispose d'un réseau IRC local (séparé du reste du réseau IRC).

Depuis les machines de l'école

Vous pouvez utiliser Thunderbird qui devrait être pré-configuré, ou en suivant la procédure décrite ci-dessous si ce n'est pas le cas.

Vous pouvez aussi vous connecter directement au channel par défaut (#causeries) du serveur IRC avec la commande empathy-irc. Celle-ci lance le client Empathy avec la configuration qu'il faut.

Depuis l'extérieur de l'école, en passant par sas.eleves.ens.fr

Vous pouvez également vous connecter au channel par défaut depuis l'extérieur de l'école en ouvrant une session ssh vers sas.eleves.ens.fr et en lançant la commande irc. Celle-ci lance le client irssi avec la configuration qu'il faut. Pour quitter, faites Control-a, puis appuyez sur la touche d.

La commande irc utilise la commande screen pour que vous restiez connecté sur le canal en permanence et puissiez consulter les discussions qui ont eu lieu en votre absence (le backlog). Attention, si sas.eleves.ens.fr redémarre, vous serez déconnecté (vous serez reconnecté à la prochaine utilisation d'irc). La commande screen permet d'ouvrir plusieurs terminaux dans une même console et de détacher ces terminaux pour les reprendre ultérieurement. Ainsi, vous pouvez fermer votre session SSH en laissant tourner irssi et le récupérer à la connexion suivante. La commande Control-a puis d utilisée pour quitter est justement la commande pour détacher le screen, et le laisser pour le reprendre plus tard.

Avec votre propre client

Pour vous connecter au réseau IRC de l'ENS, il y a plusieurs possibilités :

clipper.ens.fr, port 6667
Uniquement accessible depuis l'intérieur de l'école
ulminfo.fr, port 6667
Accessible depuis l'extérieur de l'école, bloqué depuis l'intérieur de l'école.
ulminfo.fr, port 6666
Comme au-dessus, mais avec support SSL.
ulminfo.fr, port 3724
Accessible depuis l'extérieur de l'école, devrait fonctionner depuis l'intérieur de l'école.
ulminfo.fr, port 3725
Comme au-dessus, mais avec support SSL.

Théorie : Qu'est-ce que IRC ?

Type de discussions

IRC est un service de messages sur Internet. Sa principale différence avec des services comme le courrier électronique ou les news de Usenet est que les conversations sur IRC se déroulent en temps réel. Vous envoyez un message, quelqu'un vous répond, et ainsi de suite, vous conversez avec d'autres utilisateurs. En ce sens, son fonctionnement ressemble à une conférence téléphonique : les messages ne sont pas sauvegardés après leur transmission (comme dans le talk).

Sur un réseau IRC (et il y en a plusieurs) il y a le plus souvent quelques dizaines de milliers d'utilisateurs simultanés. (Sur celui de l'ENS, évidemment, il y a moins de monde.) Chacun s'identifie par un surnom ou nickname ; vous choisissez votre nickname quand vous vous connectez à IRC, celui-ci sera refusé (et le système vous en demandera un autre) si quelqu'un d'autre est déjà en train d'utiliser le même.

Les conversations sur IRC se déroulent dans des groupes nommés channels, le principe étant que, quand vous rentrez dans un channel, vous voyez la discussion qui y a lieu, et vous pouvez y participer. Il est également possible d'envoyer des messages privés à destination d'un autre utilisateur, indépendamment de tout channel.

Tous les messages publiés dans un channel sont visibles par tous les utilisateurs ayant rejoint ce channel. Par contre, les messages privés ne sont visibles que par le destinataire, comme leur nom l'indique.

Les réseaux et les serveurs IRC

Il existe plusieurs réseaux IRC indépendants; chaque réseau se compose d'un certain nombre de serveurs connectés entre eux. Les nicknames et les channels sont globaux sur chaque réseau : vous n'avez pas besoin d'être connectés au même serveur IRC pour discuter avec quelqu'un, il vous faut juste être sur le même réseau.

Des réseaux IRC importants sont :

IRCnet
le réseau principal Européen ;
EFnet
le réseau principal Américain ;
Undernet
un réseau alternatif ;
DALnet
un autre réseau alternatif.
Freenode
un réseau populaire pour les développeurs et utilisateurs de logiciels libres. La plupart des logiciels libres y ont un chan dédié.
OFTC
un autre réseau populaire pour les développeurs et utilisateurs de logiciels libres.

Libre à vous de visiter les sites webs de chacun de ces réseaux pour avoir toutes les informations pour vous y connecter.

À l'École, pour différentes considérations de sécurité, l'accès à la plupart des réseaux IRC est bloqué. Il a existé à l'école un serveur IRC sur le quatramaran, mais il n'est plus en ligne. La commande qui -too irc permettait de savoir à peu près qui était connecté dessus. Il existe à présent un serveur IRC sur clipper, voir la section correspondante.

Utilisation d'IRC

Thunderbird

Thunderbird intègre un client de messagerie instantanée, qui gère IRC (mais aussi XMPP, Facebook, Twitter et Google Talk) et vous permettra donc de vous connecter sur le serveur de l'ENS. Pour commencer, ouvrez les comptes de messagerie instantanée, dans Outils → État de messagerie instantanée → Afficher les comptes.

Afficher les comptes de messagerie instantanée dans Thunderbird

Dans la fenêtre qui s'ouvre, choisissez d'ajouter un nouveau compte "IRC".

Dans le champ "Nom d'utilisateur", renseignez le surnom de votre choix, qui sera votre nickname sur IRC. Dans le serveur, renseignez un des serveurs listés dans la section "Avec votre propre client" de cette page (si le serveur n'est pas sur le port 6667, il faudra configurer le port à la dernière étape de l'assistant).

Assistant compte de messagerie instantanée de Thunderbird

Sur l'écran suivant, laissez le champ "mot de passe" vide. Ce champ "mot de passe" est utile si vous avez enregistré votre surnom sur le serveur, avec NickServ.

Sur l'écran suivant, vous pouvez renseigner un "alias local" pour ce compte, qui vous sert à lui attribuer un nom sur votre ordinateur pour l'identifier facilement. En déroulant les "Options IRC", vous aurez accès aux réglages avancés pour la connexion, tel que le port (à modifier si différent de 6667).

Assistant compte de messagerie instantanée de Thunderbird

Une fois connecté, votre compte devrait s'afficher avec une icône verte. Vous pourrez alors utiliser le menu Outils → Rejoindre une discussion pour rejoindre un channel. Par exemple, vous pouvez utiliser ce menu pour rejoindre le channel par défaut #causeries sur le serveur IRC de l'ENS, et éventuellement choisir de le rejoindre automatiquement à chaque connexion.

Rejoindre une discussion dans Thunderbird Boîte de dialogue “Rejoindre une discussion” dans Thunderbird

Finalement, en cliquant sur l'icône "Chat", vous ouvrirez la fenêtre de chat listant les channels que vous avez rejoints sur la gauche, les utilisateurs présents dans le channel sur la droite, les derniers messages au centre et une zone pour rédiger un message en bas. Pour démarrer une query (conversation privée) avec un utilisateur, il vous suffit de double-cliquer sur son nom. Vous pouvez également utiliser les commandes IRC courantes dans la zone de texte (utilisez /help pour avoir une liste des commandes disponibles).

Vue de la fenêtre IRC dans Thunderbird

Irssi

Irssi est le programme lancé dans un screen quand vous lancer la commande irc sur une machine de l'école. Vous pouvez utiliser les commandes /connect et /disconnect pour vous connecter et vous déconnectez. La commande /server permet d'ajouter et de modifier les serveurs. Pour plus de détails sur une commande, vous pouvez utiliser /help commande. Lorsque vous lancez la commande irc, vous devriez déjà être automatiquement connecté au serveur IRC de l'ENS. Si vous avez plusieurs connexions actives, vous pouvez défiler entre les connexions avec Control+X.

Une fois connecté, vous devriez avoir envie de rejoindre un channel. Pour cela, il vous suffit d'utiliser /join #channel.

Irssi fonctionne avec plusieurs fenêtres. Par défaut, chaque channel est ouvert dans une nouvelle fenêtre. Vous pouvez vous déplacer entre les différentes fenêtres ouvertes en utilisant Alt+[0-9]. ou avec /window number. Vous pouvez fermer une fenêtre avec /window close.

Enfin, vous pouvez parler en privé avec un utilisateur (query). Pour commencer une query avec un utilisateur, utilisez /q surnom ou /query surnom.

Si vous quittez mal votre session screen avec irssi ouvert à l'intérieur, il se peut que l'écran soit bloqué à votre retour. Pour résoudre ce problème, il suffit en général d'utiliser Control-q ou Control-a puis q.

Irssi possède de nombreuses fonctions avancées, non détaillées dans cette introduction, notamment la possibilité de l'étendre par des plugins en Perl. Pour découvrir ces fonctions avancées, vous pouvez regarder ce guide de référence (en anglais).

Quelques commandes utiles, communes à tous les clients IRC

Voici quelques commandes courantes d'IRC. Les majuscules ne sont pas nécessaires.

/HELP demande de l'aide au programme IRC. Il vous présentera une liste de sujets possibles.
/NICK un-surnom vous permet de changer de surnom ; le nouveau nom sera refusé si quelqu'un d'autre est déjà en train de l'utiliser, ou s'il est trop long (la limite est à 9 lettres). Il ne peut pas contenir de caractère spécial ou accentué.
/JOIN #nom-de-channel vous permet de rentrer dans un channel. Tous les noms de channel commencent par le caractère #. Si vous demandez à rentrer dans un channel qui n'existe pas, il sera créé pour vous. De même, un channel disparaît au moment où son dernier utilisateur le quitte.
/PART #nom-de-channel sert à quitter un channel. Si vous ne précisez pas de nom de channel, c'est celui qui est actuellement affiché que vous quittez.
/MSG Surnom texte envoie un message destiné uniquement à une personne ; mettez son surnom à la place de Surnom sur la ligne précédente. Si vous recevez vous-même un tel message, un nouvel onglet s'ouvrira pour la conversation privée avec son auteur.
/QUERY Surnom Ouvre un nouvel onglet pour démarrer une conversation privée avec l'utilisateur Surnom (même chose que /msg, sans envoyer de message immédiatement).
/INVITE Surnom #channel invite une personne dans un channel.
/LIST permet d'avoir une liste de tous les channels. Il est déconseillé d'utiliser cette commande sur les grands serveurs, parce-que la liste occupe des milliers de lignes et prend longtemps à arriver (aucun problème en revanche sur le serveur interne à l'École).
/NAMES permet d'avoir la liste de toutes les personnes connectées dans le channel courant.
/WHOIS Surnom permet d'avoir plus d'informations sur la personne désignée par le nickname Surnom. En particulier, il est possible d'avoir son nom complet, si disponible, son statut (absent ou pas), les autres channels sur lesquels il est présent, etc.
/AWAY Raison permet d'indiquer qu'on est absent. Vous devez préciser un texte (Raison), qui sera notamment indiqué aux autres utilisateurs qui souhaiteraient commencer une conversation privée avec vous, afin de les prévenir de votre absence. Votre statut d'absence est visible par les autres utilisateurs en utilisant la commande whois votre-nickname. Pour indiquer que vous n'êtes plus absent, il suffit d'utiliser /AWAY (sans raison indiquée).

Si du texte apparaît dans un onglet qui n'est pas affiché, le nom de cet onglet s'affiche en rouge, pour attirer votre attention. Si en plus le nouveau texte parle de vous (sur la base de votre surnom), la couleur bleue sera utilisée.

Que faire sur IRC ?

En un mot : discuter. Les autres ne voient de vous que ce que vous tapez. Ils sont aussi probablement déjà en train de parler à d'autres personnes à la fois, n'espérez donc pas avoir leur attention complète.

Quand vous rentrez sur un channel public, et surtout s'il y a déjà quelques dizaines d'utilisateurs dessus, vous verrez que le texte défile très vite. Voici un extrait typique de la conversation sur un channel :

*** Signoff: Bebile (EOF From client)
<Telemak> il y a que des CAVES ici !
*** Pilah has left channel #france
*** ombre (eymartin@sc-2.salles.entpe.fr) has joined channel #france
<steph> telemak:pardon?
<Luc> zak: oui tout pres de Frankfort
<zak2> luc: ah ok et c'est comment en allemagne
*** visiteur1 (webbar@lisbonne-story.webbar.fr) has joined channel #france
<Luc> zak: et toi ou est-tu en ce moment
<zak2> luc: paris
*** |AsSaiL| has left channel #france
*** TtouKC (oeil@toulouse2-2.hol.fr) has joined channel #france
<PEEPOO> KC: t etais ou?
<visiteur3> bonsoir

Les leçons à en tirer sont simples mais importantes : premièrement, il est très courant de s'adresser à quelqu'un dans un channel en commençant la phrase par «son_surnom:» (penser à utiliser l'autocompletion avec la touche TAB :). Ceci permet d'avoir plusieurs conversations en cours dans un channel, et de s'y retrouver. Le corollaire de tout cela étant que l'on apprend très vite à ne pas tenir compte des lignes adressées à d'autres, ni des lignes qui annoncent qui rentre et qui sort du channel. De plus, lorsqu'un message commence par votre_surnom:, la ligne est automatiquement surlignée par votre client IRC pour que vous puissiez la repérer plus facilement (et il est possible de dédier une fenêtre particulière, appelée "hilight window" pour centraliser tous les messages qui vous sont ainsi adressés).

Soyez raisonnablement poli, et ne passez pas tout votre temps à tenter de draguer sans subtilité tout ce qui bouge : c'est la meilleure façon de se faire kicker (c'est-à-dire, de vous faire éjecter du channel par un opérateur) !

Enfin, il n'y a pas toujours du monde sur un channel. Si vous n'avez pas immédiatement de réponse, attendez un peu, que les utilisateurs aient le temps de voir votre message (ce qui peut prendre potentiellement quelques heures sur des chans peu actifs).

Les modes

Les channels, tout comme les utilisateurs, peuvent être dans plusieurs modes. Chaque mode est noté par une lettre, généralement l'initiale du nom du mode en question.

Sur les channels, les modes servent à deux choses :

Si vous êtes opérateur sur un channel, vous pouvez changer ses modes en utilisant les boutons en haut de l'écran (si vous n'êtes pas opérateur, ces boutons ne vous servent qu'à connaître les modes). Voyons ces boutons (ceux qui sont à droite de la barre blanche)

T
seul un opérateur peut changer le sujet du channel
N
seules les personnes présentes dans le channel peuvent y parler
S
le channel est secret (n'apparaît pas dans la liste)
I
le channel est réservé aux invités
P
le channel est privé
M
le channel est modéré (seuls les opérateurs peuvent parler)
L nombre
le channel a un nombre limité de places
K mot de passe
le channel est réservé aux gens munis du mot de passe

On peut utiliser la commande /MODE pour changer le mode d'un channel sans utiliser la souris. On ajoute +lettre ou -lettre selon si on veut activer ou désactiver le mode en question, et on précise éventuellement le paramètre après.

Un channel a aussi un sujet, ou topic qu'on change en modifiant dans la barre blanche en haut, ou en utilisant la commande /TOPIC. Le sujet apparaît à côté du nom du channel en réponse à la commande /LIST.

Les utilisateurs eux-mêmes peuvent aussi avoir des modes. Le seul qui soit utile est le mode +i ou invisible. Et encore, cette «invisibilité» est très restreinte : elle vous empêche juste d'apparaître dans la liste donnée par une commande WHO à quelqu'un qui ne serait pas dans le même channel que vous.

Vous pouvez mettre ou enlever ce mode avec les commandes /UMODE +i et /UMODE -i respectivement.

NickServ

Le protocole IRC ne vous permet pas d'enregistrer votre surnom. Cela veut dire que tant que vous êtes connecté, votre surnom est utilisé et personne d'autre ne peut l'utiliser. Mais dès que vous vous déconnecterez, d'autres personnes peuvent réutiliser votre surnom, et se faire potentiellement passer pour vous. Pour résoudre ce problème, il existe une solution à base de bot (un programme se connectant à IRC comme vous, mais qui reste toujours connecté) qui vous permet d'enregistrer votre surnom pour que seul vous puissiez l'utiliser. Ce programme s'appelle NickServ.

Pour commencer, connectez vous sur un serveur IRC et choisissez un surnom libre. Ensuite, il vous suffit d'enregistrer votre surnom en utilisant la commande /msg nickserv REGISTER mot_de_passe email en remplaçant mot_de_passe par un mot de passe de votre choix et email par votre adresse email (selon les serveurs IRC, l'email peut être facultatif).

Dorénavant, chaque fois que quelqu'un arrivera sur le serveur et voudra utiliser votre surnom (vous y compris), il aura un message de NickServ l'avertissant que ce surnom est réservé et qu'il a 3 minutes pour indiquer le bon mot de passe à NickServ, sous peine de voir son surnom modifié de force.

Vous devrez alors indiquer à NickServ votre mot de passe à chaque connexion, grâce à la commande /msg nickserv IDENTIFY mot_de_passemot_de_passe est le mot de passe que vous aviez choisi.

ChanServ

Si vous êtes le premier utilisateur à rejoindre un channel, le channel sera créé et vous aurez les droits opérateurs sur ce channel. Si par la suite d'autres utilisateurs rejoignent le channel, ils auront le statut d'utilisateurs normaux. Dès lors, si vous quittez le channel pour n'importe quel motif (déconnexion fortuite par exemple), le channel existera toujours mais n'aura plus aucun opérateur, ce statut ne pouvant vous être réattribué. ChanServ est un bot qui rejoindra votre channel, aura les droits opérateurs et restera toujours dans votre channel pour vous permettre de pouvoir retrouver vos droits opérateurs.

Pour pouvoir enregistrer un channel, il faut:

Pour enregistrer un channel, utilisez la commande /msg chanserv REGISTER #channel mot_de_passe description#channel est le channel, mot_de_passe est un mot de passe de votre choix et description est une description pour votre channel..

Pour vous identifier ensuite, à la reconnexion par exemple, utilisez la commande /msg chanserv IDENTIFY #channel mot_de_passe#channel est le channel sur lequel vous voulez vous identifier et mot_de_passe est le mot de passe que vous avez choisi.

Remerciements

Cette page est initialement due à Roger Espel Llima, également connu sous le surnom de APO, hacker et IRCiste émérite.

Auteurs : Lucas Verney, Dominique Quatravaux, Roger Espel Llima, Nicolas George.