本文档仍在编写中 (WIP),应被视为如此。我将尽力保持其更新和准确。
以下“圣经”不应被忽视
Jarkko Oikarinen 和 Darren Reed 的 RFC 1459 是关于 Internet Relay Chat 协议的第一个文档 - http://ftp.isi.edu/in-notes/rfc1459.txt
Christophe Kalt 的 RFC 2810 更新了 RFC 1459,并描述了 Internet Relay Chat 的架构 - http://ftp.isi.edu/in-notes/rfc2810.txt
Christophe Kalt 的 RFC 2811 更新了 RFC 1459,并描述了 Internet Relay Chat 的频道管理 - http://ftp.isi.edu/in-notes/rfc2811.txt
Christophe Kalt 的 RFC 2812 更新了 RFC 1459,并描述了 Internet Relay Chat 的客户端协议 - http://ftp.isi.edu/in-notes/rfc2812.txt
Christophe Kalt 的 RFC 2813 更新了 RFC 1459,并描述了 Internet Relay Chat 的服务器协议 - http://ftp.isi.edu/in-notes/rfc2813.txt
另请务必查看以下链接
除了其他目标外,本 mini-HOWTO 的目标还包括
链接关于 IRC 的重要资源;
通过编写 IRC 礼仪来避免常见的 IRC 误用;
列出流行的客户端、服务器、机器人和 Bouncer,以及它们的维护者、#频道、简短描述、下载位置、主页和提示;
列出所有主要发行版的最新版本中可用的 IRC 工具。
本文档的最新版本可在 http://www.pervalidus.net/documentation/IRC-mini-HOWTO/ 找到
下一个草稿的 WIP 版本可能在 http://www.pervalidus.net/documentation/IRC-mini-HOWTO/WIP/ 提供
所有草稿都存档在 http://www.pervalidus.net/documentation/IRC-mini-HOWTO/old/
所有内容可能镜像在 http://www2.pervalidus.net/documentation/IRC-mini-HOWTO/
您可以通过电子邮件(用英语、法语或葡萄牙语)向我发送关于 mini-HOWTO 的建议。我知道这还远未完成,但希望您觉得它有用。尽量避免要求我添加您的应用程序、发行版或站点。我很可能不会这样做,但您可以尝试说服我。也不要寻求技术支持。我没有时间帮助每个人。
顺便说一句,有人来处理协议和服务器端将非常受欢迎。
Fr�d�ric L. W. Meunier - http://www.pervalidus.net/contact.html
摘自 RFC2810
IRC(Internet Relay Chat)协议用于基于文本的会议。它自 1989 年开始开发,最初是作为 BBS 用户之间聊天的工具而实现的。
该协议于 1993 年 5 月在 RFC 1459 [IRC] 中首次正式记录,并一直在不断发展。
IRC 协议基于客户端-服务器模型,非常适合在分布式环境中的多台机器上运行。典型的设置涉及单个进程(服务器),该进程形成客户端(或其他服务器)连接的中心点,执行所需的消息传递/多路复用和其他功能。
这种分布式模型要求每个服务器都有全局状态信息的副本,但这仍然是协议最明显的问题,因为它是一个严重的障碍,限制了网络可以达到的最大规模。如果现有网络能够以惊人的速度持续增长,我们必须感谢硬件制造商为我们提供了越来越强大的系统。
第一个 IRC 守护程序是由芬兰奥卢大学的 Jarkko "WiZ" Oikarinen 在 1998 年夏天编写的。最初旨在作为 Talk 的 BBS 风格替代品,IRC 迅速传播开来;首先在斯堪的纳维亚半岛,然后遍及世界各地。一年之内,就有超过 40 台服务器连接起来。
在这个阶段,只有一个网络,因此不需要名称 - 它只是“IRC”;但是随着网络规模的扩大,分歧开始形成。IRC 是一种非常混乱的媒介,网络分裂、昵称冲突和频道劫持都很常见;用户在某个阶段分裂出来形成自己的网络是不可避免的。
第一次重大分裂之一发生在 1992 年,当时 Wildthang 创建了 Undernet 网络。Undernet 最初旨在作为一个测试网络,但很快发展壮大,并因其引入保护用户和频道的服务而获得了友好网络的声誉。
两年后,Undernet 本身也发生了分支,新的网络成为 DALnet。DALnet 的创始人 dalvenjah 将 Undernet 的服务概念提升到了一个新的水平,引入了对昵称注册、G-lines 和许多其他功能的支持。
与此同时,在 IRCnet(原始 IRC 网络现在被称为)上,情绪高涨。IRCnet 反对 Undernet 和 DALnet 引入的频道/昵称“所有权”概念,但显然必须对不断发生的频道劫持采取一些措施。提出了两种替代方案:昵称/频道延迟和时间戳(有关信息,请参阅 http://www.irc-help.org),但对于实施哪一种方案存在激烈的争论。
1996 年 7 月,IRCnet 分裂,大部分北美服务器离开形成了 EFnet,使 IRCnet 成为一个主要以欧洲为主的网络。
从那时起,形成了数百个其他较小的网络,大多数使用 DALnet、EFnet、IRCnet 或 Undernet 的 ircd 的修改版本。
标准的 IRC 客户端是原始的 ircII。它是大多数 Linux 发行版的一部分,并且大多数其他基于文本的 IRC 客户端(特别是 BitchX 和 EPIC)都源自它。
使用 ircII 很简单。假设您想以 mini-HOWTO 的身份连接到 irc.freenode.net。
在命令行中,键入
$ irc mini-HOWTO irc.freenode.net
您还可以导出变量,这样您就不需要在命令行中使用它们。对于 bash 和 zsh 用户
$ export IRCNICK=mini-HOWTO IRCSERVER=irc.freenode.net
对于 csh 和 tcsh 用户,将 export 替换为 setenv。
完成后将它们添加到您的 shell 配置文件中(例如 ~/.bash_profile 或 ~/.zprofile)。
其他常用变量是 IRCNAME 和 IRCUSER,分别设置 /whois 的 ircname 部分和在第一行 'mini-HOWTO is ~username@hostname (ircname)' 中看到的用户名。请记住,如果您运行 ident 守护程序(大多数发行版的默认设置),IRCUSER 将不起作用。如果您仍然需要更改用户名(不推荐,我希望您没有以 root 身份登录 IRC!),请从 http://ojnk.sourceforge.net/ 安装 oidentd。要配置,请阅读 oidentd.conf 手册页。最后运行 '/usr/local/sbin/oidentd -g nobody -u nobody'。完成后将其添加到您的启动脚本中(例如 /etc/rc.d/rc.local)。
如果未设置,IRCNICK、IRCUSER 和 IRCNAME 将从 /etc/passwd 中检索。
使用 /help 获取所有可用命令的列表(/help help 是一个好的开始)。将 nick 替换为任何 IRCNICK。
首先,/set NOVICE off
/nick IRC-mini-HOWTO 将您的 IRCNICK 更改为 IRC-mini-HOWTO
/set realname The Linux IRC mini-HOWTO 将您的 IRCNAME 更改为 The Linux IRC mini-HOWTO(在同一连接上不会更改)
/j #mini-HOWTO 加入频道 #mini-HOWTO
/j #unmaintained-HOWTO 加入频道#unmaintained-HOWTO
/j #mini-HOWTO 将当前活动频道更改为 #mini-HOWTO
/msg nick 你好。向 nick 发送包含 你好。 的私信
/notice nick (或 #mini-HOWTO) 你好。向 nick (或 #mini-HOWTO) 发送包含 你好。 的通知
/query nick 开始与 nick 的私人对话。/query 结束私人对话
/me 爱 Linux。向当前频道或查询发送包含 IRC-mini-HOWTO 爱 Linux。 的操作
/dcc chat nick 开始与 nick 的聊天。使用 /msg =nick(注意 =)通过聊天发送消息
/dcc send nick /etc/HOSTNAME 将给定文件发送到 nick
/dcc get nick 接收 nick 提供的文件
/part 离开当前活动频道
/part #unmaintained-HOWTO 离开频道 #unmaintained-HOWTO
/discon 断开与当前 IRCSERVER 的连接
/server irc.oftc.net 连接到 IRCSERVER irc.oftc.net
/quit 再见。以 再见。 的理由退出您的 IRC 会话
以上大多数命令(包括使用环境变量)也适用于其他基于控制台的客户端。
警告 警告 警告 警告 警告
永远不要以 root 或任何具有过度权限的用户身份登录 IRC。坏事可能迟早会发生。您已被警告。强烈建议您创建一个用户专门用于 IRC。
$ man adduser
在 Linux 频道上,您不应该
表现得像个白痴。如果您想受到尊重,那么首先要尊重他人。
使用颜色 (^C)。大多数 Linux 用户不容忍这种 mIRC 狂热,并且 ircII 实际上不支持它们。ANSI 也应如此。
使用全大写字母、粗体 (^B)、反色 (^V)、下划线 (^_), 闪烁 (^F) 和响铃 (^G)。前 4 个用于强调单词,而不是整个文本。后 2 个非常烦人。
询问您是否可以提问。直接提问,但首先阅读所有关于该主题的可用文档。首先查看 /usr/doc/ (在某些系统上可能是 /usr/doc/,否则请转到 http://www.tldp.org/ 或 http://www.ibiblio.org/pub/Linux/docs/ 。并且不要立即重复您的问题。至少等待 10 分钟。如果您没有得到任何答案,那是因为没有人知道或愿意帮助。尊重他们的选择,他们不是您的私人助理。也永远不要发送大量私人消息。这就像垃圾邮件。
维护者: ircII 项目
IRC 频道: #ircII(官方频道?)在 EFNet 上 http://www.efnet.org/?module=servers
ircII 最初由 Michael Sandrof 编写,随附于大多数 Linux 发行版。它使用 termcap,不应成为大多数用户的选择,但它是一个标准。Mathusalem 和其他专家将使用它。不太敢冒险的人会后悔安装它。
您可以从 ftp://ircii.warped.com/pub/ircII/ 获取最新版本的 ircII。主页位于 http://www.eterna.com.au/ircii/
维护者: EPIC Software Labs
IRC 频道: #EPIC 在 EFNet 上
EPIC(增强型可编程 ircII 客户端)基于 ircII,专为真正的脚本编写者和寻求自由的用户而设计。当您第一次启动它时,您会注意到您真的应该学习脚本编写的基础知识。
您可以从 http://prbh.org/?page=ftp 获取最新版本的 EPIC。主页位于 http://www.epicsol.org/
维护者: Colten Edwards
IRC 频道: #BitchX 在 EFNet 上
BitchX 最初是 ircII 的一个脚本,是一个流行的客户端,旨在通过在客户端本身中包含大量功能来减少对脚本编写的需求(即使是经验丰富的用户也记不住太多功能)。许多人认为 BitchX 是臃肿软件(不一定是坏事),但它在用户和 opers 中非常受欢迎。
您可以从 http://www.bitchx.org/download.php 获取最新版本的 BitchX。主页位于 http://www.bitchx.org/
维护者: Timo Sirainen
IRC 频道: #irssi 在 freenode - http://freenode.net/irc_servers.shtml 和 IRCnet - http://www.ircnet.org/
Timo 在 1997 年发布了 yagIRC。它是一个使用 GTK+ 工具包的 GUI 客户端。一年后,军队征召了他,新的维护者不愿接手这项工作。yagIRC 消失了,他开始将 irssi 作为替代品。它使用了 GTK+。GNOME 和 curses 版本稍后出现。截至 0.7.90 版,它只是一个模块化的文本模式客户端。支持 Perl 脚本。
您可以从 http://irssi.org/?page=download 获取最新版本的 irssi。主页位于 http://irssi.org/
还有一些其他基于 ircII 的客户端。
Blackened - ftp://ftp.blackened.com/pub/irc/blackened/
Ninja - ftp://qoop.org/ninja/
ScrollZ - http://www.scrollz.com/
维护者: Lindsay F. Marshall
IRC 频道: 无?
用 Tcl/Tk 编写,使用 Tcl 的原生网络通信。
您可以从 ftp://catless.ncl.ac.uk/pub/ 获取最新版本的 Zircon。主页位于 http://catless.ncl.ac.uk/Programs/Zircon/
维护者: Szymon Stefanek
IRC 频道: #KVIrc 在 freenode 上
KVIrc 也使用 Qt 工具包编写,是一个强大的客户端。支持 DCC Voice、内置脚本语言和插件。
您可以从 http://www.kvirc.net/?id=download 获取最新版本的 KVIrc。主页位于 http://www.kvirc.net/
维护者: Peter Zelezny
IRC 频道: #Linux 在 ChatJunkies 上 - http://www.chatjunkies.org/servers.php
使用 GTK+ 和可选的 GNOME,支持 Perl 和 Python 脚本。
您可以从 http://xchat.org/download/ 获取最新版本的 X-Chat。主页位于 http://xchat.org/
维护者: Patrick Earl
IRC 频道: #QuIRC 在 DALnet 上 - http://www.dal.net/servers/index.php3
使用 Tk,支持 Tcl 进行脚本编写。
您可以从他的主页 http://quirc.org/ 获取最新版本的 QuIRC
维护者: ircd 开发者
IRC 频道: #ircd 在 IRCnet 上
原始的 IRC 守护程序,主要由 IRCnet 使用。最新版本试图通过引入额外的频道类型(例如 !linux)和频道模式来改进频道安全性。
您可以从 ftp://ftp.irc.org/irc/server/ 获取最新版本的 IRCD。主页位于 http://www.irc.org/
维护者
IRC 频道: 无?
主要由 EFNet 使用。Hybrid 的重点是速度和效率,因为它缺乏其他网络提供的许多服务。为了与 EFnet 的精神保持一致,即 opers 不应关注频道事务,Hybrid 不允许 opers 设置频道模式或加入他们被禁止加入的频道。直到最近,Hybrid 才提供服务机器人重新操作无操作员频道的能力。
您可以从 http://ftp1.sourceforge.net/ircd-hybrid/ 获取最新版本的 IRCD-Hybrid。主页位于 http://www.ircd-hybrid.org/
维护者: Undernet Coder Committee
IRC 频道: #ircu 在 Undernet 上 - http://www.undernet.org/servers.php
主要由 Undernet 使用。在 2001/2002 年发生一系列 DDoS 攻击之后,ircu 提供了用户和服务器隐藏其地址的功能。许多 /stats 命令也(可悲地)从 Undernet 中删除。
您可以从 http://ftp1.sourceforge.net/undernet-ircu/ 获取最新版本的 ircu。主页位于 http://coder-com.undernet.org/
维护者: DALnet Coding Team
IRC 频道: #Bahamut 在 DALnet 上
Bahamut 基于 DreamForge 和 Hybrid,是 DALnet 服务器。功能包括频道和昵称注册、支持最多 15 个字符的昵称以及备忘录服务。
您可以从 http://bahamut.dal.net/download.php 获取最新版本的 Bahamut。主页位于 http://bahamut.dal.net/
维护者
IRC 频道: #eggdrop 在 Undernet 上
Eggdrop 通常被认为是最棒的 IRC 机器人,它提供强大的频道保护,并且可以通过使用 Tcl 脚本进行高度定制。
多个 Eggdrop 可以链接在一起形成一个机器人网络,该网络可以跨越多个频道,甚至网络。在没有频道注册服务的网络上,Eggdrop 是几乎所有大型频道中的常见功能。
您可以从 http://www.eggheads.org/downloads/ 获取最新版本的 Eggdrop。主页位于 http://www.eggheads.org/
维护者: Proton
IRC 频道: 无
早期版本的 EnergyMech(或经常被称为 emech)因其能够从单个进程运行多个机器人(从而允许不太受欢迎的用户从 shell 帐户加载数百个 vhosted 克隆)而获得了脚本小子机器人的声誉。Emech 并不应该得到这种声誉,因为它实际上是一个相当不错的频道保护机器人,并且最新版本的 emech 已经限制了这种能力(最多 4 个机器人)。是 Eggdrop 的一种流行的替代方案。
您可以从 http://www.energymech.net/download.html 获取最新版本的 EnergyMech。主页位于 http://www.energymech.net/
维护者: James Seter
IRC 频道: 无?
bnc 是原始的 bouncer。
您可以从 http://gotbnc.com/download.html 获取最新版本的 bnc。主页位于 http://gotbnc.com/
维护者: Sebastian Kienzl
IRC 频道: 无?
muh 是一个智能且通用的 irc-bouncing 工具,它也会在启动后立即进入 IRC,守护或尝试获取您的昵称。
您可以从 http://ftp1.sourceforge.net/muh/ 获取最新版本的 muh。主页位于 http://seb.riot.org/muh/
维护者: Murat Delig�n�l
IRC 频道: 无?
ezbounce 的基本功能包括密码保护、远程管理、日志记录和在多个端口上监听。
您可以从他的主页 http://druglord.freelsd.org/ezbounce/ 获取最新版本的 ezbounce
IRC 频道: #Debian 在 freenode 上 (irc.debian.org -> irc.freenode.net)
Debian - http://www.debian.org/ 包含太多 IRC 工具,无法一一列举。您可以在以下位置找到它们
Debian stable - http://ftp.debian.org/debian/dists/stable/main/binary-i386/
Debian unstable(未经过充分测试) http://ftp.debian.org/debian/dists/unstable/main/binary-i386/
另请务必查看建议的更新 - http://ftp.debian.org/debian/dists/proposed-updates/ 。它也可能包含 IRC 客户端。
IRC 频道: #RedHat 在 freenode 上 (irc.redhat.com -> irc.freenode.net)
Fedora Core 3 包括以下客户端
EPIC4 1.0.1 - http://download.fedora.redhat.com/pub/fedora/linux/core/3/i386/os/Fedora/RPMS/epic-1.0.1-18.i386.rpm
KSirc 来自 KDE Network 3.3.0 - http://download.fedora.redhat.com/pub/fedora/linux/core/3/i386/os/Fedora/RPMS/kdenetwork-3.3.0-5.i386.rpm
X-Chat 2.4.0 - http://download.fedora.redhat.com/pub/fedora/linux/core/3/i386/os/Fedora/RPMS/xchat-2.4.0-3.i386.rpm
Rawhide(当前开发)
http://download.fedora.redhat.com/pub/fedora/linux/core/development/ 。使用风险自负。
IRC 频道: #Slackware 在 freenode 和 OFTC 上 - http://www.oftc.net/
Slackware - http://www.slackware.com/ 10.0 包括以下客户端
BitchX 1.1 - ftp://ftp.slackware.com/pub/slackware/slackware-10.0/slackware/n/bitchx-1.1-i486-1.tgz
EPIC4 2.0 - ftp://ftp.slackware.com/pub/slackware/slackware-10.0/slackware/n/epic4-2.0-i486-1.tgz
irssi 0.8.9 - ftp://ftp.slackware.com/pub/slackware/slackware-10.0/slackware/n/irssi-0.8.9-i486-3.tgz
KSirc 来自 KDE Network 3.2.3 - ftp://ftp.slackware.com/pub/slackware/slackware-10.0/slackware/kde/kdenetwork-3.2.3-i486-1.tgz
X-Chat 2.0.9 - ftp://ftp.slackware.com/pub/slackware/slackware-10.0/slackware/gnome/xchat-2.0.9-i486-1.tgz
Slackware -current(当前开发)
ftp://ftp.slackware.com/pub/slackware/slackware-current/ 。使用风险自负。