Screen Irssi Bitlbee
一起使用 GNU Screen、Irssi、Bitlbee 和 SSH,您可以持久连接到 IRC 服务器和其他聊天网络。 通过 SSH,您可以从任何地方访问此持久聊天套件。 将这些组件组合在一起并不困难,本页将指导您完成整个过程。
组件
GNU Screen
首先,我们将介绍 GNU Screen。 Screen 允许您保持 shell 打开,即使您没有积极使用它们。 我们将在此处使用它来保持我们的 IRC 会话持久,以便我们可以从任何地方重新连接到它,而无需关闭 IRC 客户端。 请参阅 GNU Screen 和 screen(1)。
Irssi
Irssi 是一个命令行 IRC 客户端。 它非常灵活且可编写脚本。 显然,我们将使用它作为我们的 IRC 客户端。
Bitlbee
Bitlbee 是一个有趣的项目。 它在您的本地机器上设置一个 IRC 服务器,该服务器连接到各种即时消息协议,并将登录用户表示为 IRC 用户。
SSH
每个人都知道 SSH 是什么。 这将使我们可以从任何有网络访问权限的地方使用我们的持久聊天套件。
设置
安装
首先,安装 openssh irssi screen bitlbeeAUR。
配置 SSH
按照 SSH 的 Wiki 页面上的说明设置 SSH。 这里总结它太复杂了。
配置 bitlbee
唯一真正需要您配置的应用程序是 Bitlbee。 如果您愿意,可以按照 Bitlbee 的 Wiki 页面上的说明进行操作。 您真正需要做的就是浏览 /etc/bitlbee/bitlbee.conf 并按照您的喜好进行配置。 以下是一些值得指出的修改。
这将使 Bitlbee 作为守护进程运行,它为每个加入的用户 fork 一个新进程。 这比通过 xinetd 运行它更简单,所以我建议这样做。
RunMode = ForkDaemon
这将使守护进程在启动时放弃 root 权限。 为了安全起见,请执行此操作; Bitlbee 没有理由以 root 身份运行。
User = bitlbee
请务必在此处更改密码。
OperPassword =
在 Screen 中使用 Irssi
打开终端并运行 screen。 在版权消息之后(阅读 Wiki 以禁用该消息),您应该会发现自己位于一个普通的终端。 在此终端中启动 irssi。
Irssi 是一个功能齐全的 IRC 客户端,因此我们无法在此处列出完整的教程。 使用 Google 查找有关 irssi 可以为您做什么的更多信息。 现在是连接到您喜欢的任何 IRC 网络的时候了。
连接到 Bitlbee
Bitlbee 在您的本地机器上设置一个 IRC 服务器。 要连接到它,请在 irssi 中运行此命令
/connect localhost <optional port>
您应该立即加入一个名为 &bitlbee 的频道。 在这里您将看到 Bitlbee 的简要介绍。 输入 help 开始。 设置 Bitlbee 以连接到您的即时通讯帐户。 您将看到您的联系人加入频道。
使用
现在我们已经让 Irssi、Bitlbee 和 Screen 都运行起来了,我们能用它做什么呢?
首先,此练习的重点是创建一个可以从任何地方访问的持久聊天会话。 从另一台计算机,SSH 进入您的服务器。 输入
screen -raAd
并观看 irssi,以及您的所有频道和 IM 连接,弹出。 您离开时留给您的任何消息都是可见的,就像您在服务器上一样。
启动设置
由于每次登录时手动连接到每个 IRC 网络、加入频道、连接到 Bitlbee 以及让 Bitlbee 连接到您的消息帐户都很慢,因此请设置一些脚本来帮助您。
首先,创建一个 screen 初始化文件。 这是一个例子
~/irc_screen
source ~/.screenrc screen -t IRC 1 irssi
这将在窗口 1 中启动 irssi,并将 screen 会话标题设置为“IRC”。
然后设置一个简短的脚本,以使用该配置文件启动 screen
~/bin/irc_start
#!/bin/sh screen -d -m -c ~/irc_screen
命令行开关 -d -m
在分离模式下启动 screen,使其在后台启动。 -c ~/irc_screen
使用 ~/irc_screen
作为此会话的 rc 文件。
启动并连接到 Screen 会话
~/bin/irc_start screen -raAd
更多操作
研究如何配置 irssi 以使其更符合您的需求:https://www.quadpoint.org/articles/irssi
在 Screen 分离时自动设为离开
使用 screen-away 脚本,您可以在断开 screen 会话时将自己在 BitLBee 上标记为“离开”。 默认情况下,该脚本会影响所有服务器,但可以轻松修改为仅影响 BitLBee。
在“更多操作”中的 URL 中阅读有关脚本的更多信息。 在 https://scripts.irssi.org/ 找到 screen-away.pl 脚本
为 BitLBee 修改 screen-away.pl
首先,您需要 BitLBee 的服务器标签。 您可以通过在 irssi 中键入“/server”来获得此标签。 该标签是行中的第一个词。 对我来说,标签是“BitLBee”。 在以下行之后
foreach $server (Irssi::servers()) {
(出现两次)插入行
next unless ( $server->{chatnet} eq 'TAG' );
根据需要替换 TAG。 在当前版本中,它们出现在第 181 行和第 206 行。 要使用该脚本,您需要加载它 - 除非它已自动加载,并将其设置为活动状态。
/script load screen_away /set screen_away_active on
在挂起和连接更改后保持聊天客户端持久运行
如果您使用笔记本电脑,您可能会经常挂起和更改无线网络,这会导致您的 ssh 客户端失去连接。 对于您希望始终可用的聊天客户端来说,这可能会很烦人。
要解决此问题,请尝试 Mosh,它是一个 shell,可以无缝处理恢复或更改无线网络后的重新连接。