写在前面
互联网中继聊天(IRC)是一个基于文本的即时消息聊天系统。IRC是为论坛频道(称为channels)中的小组交流而设计的,但也允许通过私人消息进行一对一交流,以及聊天和数据传输,包括文件共享。
一些外站是有使用 irc 作为站内沟通的工具,同时个别站点也还有一些 irc 积分奖励
于是乎,想利用 Nas 或者软路由来部署 irc,这样就可以达到:
- 省去不同设备(比如电脑、手机)都要下载安装 irc 客户端并进行配置
- 在任意时间、任意设备都可以通过 Nas 或软路由来使用 irc,同时 irc 也可以 24 小时在线
于是就有了本文了,大纲如下:
软件选型
我们的目标是,在 Nas 或者软路由上部署 irc 客户端,并且客户端需要支持 web 远程访问
搜索了相关的资源,目前符合目标的主要是以下两种:
- znc
- thelounge
znc 比较古老,并且看起来配置比较复杂,成本较高
最后还是选择了相对比较年轻的 thelounge
安装配置
因为一开始是在 Nas 上安装,后续迁移到了软路由,所以两种安装方式都发出来了
软路由因为也是配置了支持 docker,所以迁移成本是比较低,对软路由跑 docker 可以看之前的文章
Unraid 安装
在 Unraid 上安装还是比较简单的,通过社区商店搜索就可以安装了
有两个版本,个人比较习惯使用 linuxserver 的,点击安装后,跳转到 Unraid 的 docker 镜像配置页面
做了一个调整,将网络类型改成 br0 并手动指定了 Fixed IP,原因如下:
- 通过 br0 的方式,可以单独从主路由可以管理的 IP,方便后续调整上网策略
- 不需要经过 Unraid 的 NAT 进行处理,不受限与 Unraid
最后点击应用,就会拉取镜像并启动
Openwrt 安装
先进入 docker 页面,点击添加按钮创建一个容器
点击命令行,并输入一下命令,解析CLI
docker run -d --name=thelounge -e TZ=Asia/Shanghai -v /opt/appdata/thelounge:/config --restart always lscr.io/linuxserver/thelounge:latest
这样可以省去部分参数的填写,接下来修改使用自定义网桥并分配一个空闲 ip 即可启动
不了解自定义网桥可以看我之前发过的文章,作用就是实现与主路由同子网
提交之后会进入已创建状态,还需要勾选后点击启动
这样在部署了之后,就可以通过 10.0.0.52:9000 来访问 thelounge 了
配置登陆
开启认证
该版本 thelounge 镜像默认会设置为 public,任意用户知道网址就可以打开访问,不需要登陆认证。
而默认 public 是不支持设置自动登录以及 24 小时在线,需要进行调整。
对于 Unraid,在 Docker 管理页面点击 thelounge 图标并进入 Console
在 Openwrt 上,就是点开容器后,通过控制台连接进去
进入容器终端环境后,修改配置文件/config/config.js,将 public 改为 false
修改之后,重启一下容器生效
添加用户
接下来需要进入容器终端,通过命令行添加一个用户,才能在 WebUI 上登陆
s6-setuidgid abc thelounge add root
下方是我在 unraid 上的操作,openwrt 的容器也是对应进入控制台即可
输入上述命令后会要求输入密码,以及咨询是否将日志落盘:
添加完成之后,打开 thelounge 的 WebUI 入口,使用刚才添加的用户登陆
登陆后,进行一些基础配置,点击左下角的齿轮进行配置页面(以下仅供参考)
所有配置都是立即生效,不需要点击保存
irc 挂机聊天
前面的步骤仅仅只是完成 irc 客户端的配置,接下来才是真正登陆 irc 在线聊天
添加 irc 账号
首先需要从你对应的站点获取到 irc 相关的登陆信息:
- irc 服务端地址(域名及端口)
- irc 用户昵称
- irc 登陆密码
- irc 登陆认证命令
然后就可以在 thelounge WebUI 点击左下角的 加号 按钮开始添加 IRC 会话,
最后点击 CONNECT 按钮开始登录
然后就是按照站点 irc 的认证流程输入对应指令完整后续登录步骤,进入 IRC 频道
至此,已经完成服务端登录 IRC 的操作了:
- 将 thelounge 暴露公网后,就可以在任意设备上使用
- 浏览器退出也不会影响 IRC,实现 24 小时在线
但是总有一些意外情况会导致 irc 掉线需要重新登陆,而重新登陆就又要走完整一遍流程,比较繁琐,下一步配置就是快速重连。
配置快速重连
接下来就是配置重连自动认证的流程,在 irc 站点右键,Edit this network...
此时,在 User preference 配置里面会多了一个 Commands 的选项,
将站点 irc 认证指令填入,并且每个命令后面增加一个空行,最后点击 **SAVE NETWORK **保存设置
至此,后续如果连接断开,可以直接输入 /connect 自动认证连接,无需再手动输入
写在后面
目前这种方式,能够实现一个远程 irc 客户端:
- 可以保持 irc 在线以及远程访问进行 irc 聊天
- 能够有一个 24 小时在线的网络环境
但是并不能避免因为其他问题导致 irc 掉线,如果 xdm 有什么自动重连方案,也可以评论区分享,最后也多多点赞关注支持一下哇。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,