Skip to content

IRC

通过 IRC 协议将 PRX 接入任何 IRC 服务器,支持 TLS 加密、NickServ 认证和 SASL 认证。

前置条件

  • 一个 IRC 服务器(如 Libera.Chat、OFTC 等)
  • Bot 的昵称和(可选的)认证凭证
  • PRX 守护进程已运行

快速配置

1. 选择 IRC 网络

常见的公共 IRC 网络:

网络服务器TLS 端口
Libera.Chatirc.libera.chat6697
OFTCirc.oftc.net6697
Rizonirc.rizon.net6697

2. 编辑配置

~/.config/openprx/config.toml 中添加:

toml
[channels_config.irc]
server = "irc.libera.chat"
port = 6697
nickname = "prx-bot"
username = "prx"
channels = ["#my-channel"]
allowed_users = ["your_nick"]
mention_only = true
nickserv_password = "your-nickserv-password"
verify_tls = true

3. 验证

bash
prx channel doctor irc

配置参考

字段类型默认值说明
serverString必填IRC 服务器地址
portu166697服务器端口(6697 为 TLS)
nicknameString必填Bot 昵称
usernameString?null用户名(默认使用昵称)
channelsVec<String>[]连接后自动加入的频道列表
allowed_usersVec<String>[]允许的昵称列表(大小写不敏感),"*" 允许全部
mention_onlyboolfalse在频道中是否只响应包含 Bot 昵称的消息
server_passwordString?null服务器密码(用于 ZNC 等 Bouncer)
nickserv_passwordString?nullNickServ IDENTIFY 密码
sasl_passwordString?nullSASL PLAIN 认证密码(IRCv3)
verify_tlsbool?true是否验证 TLS 证书

功能特性

  • TLS 加密 — 默认使用 TLS 端口(6697)加密连接
  • 多种认证 — 支持 NickServ、SASL PLAIN 和服务器密码
  • 多频道 — 可同时加入和监听多个频道
  • Bouncer 兼容 — 支持 ZNC 等 IRC Bouncer

限制

  • IRC 消息长度限制为 512 字节(含协议头),超长响应会自动分割
  • 无原生媒体消息支持
  • 昵称冲突时需要自行处理(如使用 NickServ GHOST)
  • 无消息历史记录(IRC 协议本身不持久化消息)

故障排除

无法连接服务器

  1. 确认 serverport 正确
  2. 如果使用自签名证书,设置 verify_tls = false
  3. 检查防火墙是否允许出站连接到 6697 端口

昵称已被占用

  • 配置 NickServ 密码,连接后自动 IDENTIFY 并 GHOST 占用者
  • 或选择一个不常见的昵称

Released under the Apache-2.0 License.