Quassel IRC 0.14.0 配置参数详解
Quassel IRC 0.14.0 配置参数逐项详解:quasselcore/quasselclient 启动参数、systemd 单元与 /etc/default、数据目录状态文件、TLS/ident/指标/日志配置与参数组合,基于 Ubuntu 22.04 实测。
Quassel IRC 0.14.0 配置参数详解
目标:逐项讲清 Quassel IRC 0.14.0 服务端(quasselcore)与客户端(quasselclient)的全部配置入口——命令行启动参数、systemd 单元与环境变量、数据目录状态文件——并给出可落地的参数组合。本文为配置篇,所有参数表与文件内容均来自 Ubuntu 22.04.5 实测环境(quassel-core 1:0.14.0-1ubuntu0.22.04.4)的
--help输出、发行版配置文件与运行日志(实测日期 2026-10-26)。
一、配置体系总览
Quassel 的服务端配置没有「主配置文件」概念,管理面由四层构成(实测梳理):
| 层 | 载体 | 生效方式 | 典型用途 |
|---|---|---|---|
| 命令行启动参数 | quasselcore <options> | 进程重启 | 监听地址/端口、TLS、ident、指标、日志、账号管理 |
| 环境变量 | /etc/default/quasselcore(发行版默认单元引用) | daemon-reload + restart | 修改发行版单元使用的 PORT/LISTEN/LOGLEVEL 等默认值 |
| 核心状态文件 | /var/lib/quassel/quasselcore.conf | 核心自动维护 | 存储后端选择等内部状态(不建议手改) |
| 数据库 | /var/lib/quassel/quassel-storage.sqlite | 客户端 GUI / SQL 直查 | 用户、网络、缓冲区、backlog 全部业务数据 |
两点架构性结论(实测确认):
- 添加 IRC 网络、配置身份(identity)、高亮/忽略规则等业务配置没有 CLI,只能通过 quasselclient 图形界面完成;命令行参数只覆盖「核心进程自身」的行为。
- 全新安装即有合理默认值(4242 端口、双栈监听、SQLite、强制 TLS),最小部署可以零配置文件完成。
二、服务端启动参数详解(quasselcore)
以下为 Ubuntu 22.04 仓库包 quasselcore --help 实测完整清单,按功能分组注释:
2.1 基础运行参数
| 参数 | 说明 |
|---|---|
-c, --configdir <path> | 配置目录:存放配置文件、SQLite 数据库与 SSL 证书。发行版默认 /var/lib/quassel。最重要的参数,所有状态都在这一个目录里 |
--listen <addr>[,<addr>...] | 监听地址列表,逗号分隔。发行版默认 ::,0.0.0.0(IPv6+IPv4 双栈)。可收敛为 127.0.0.1 仅本机(配合反代) |
-p, --port <port> | 客户端协议监听端口,默认 4242 |
-n, --norestore | 不恢复上次核心状态 |
--config-from-environment | 从环境变量读取配置(容器化部署形态,0.13.0 引入) |
2.2 账号与认证参数
| 参数 | 说明 |
|---|---|
--add-user | 交互式添加核心用户(用户名+密码)。必须以对 configdir 有写权限的用户执行(如 sudo -u quasselcore) |
--change-userpass <username> | 交互式修改指定用户密码 |
--select-authenticator <id> | 选择认证后端。0.13.0 起支持 Database(默认)与 LDAP;用 Database 之外的值前需确认构建包含相应插件 |
2.3 存储后端参数
| 参数 | 说明 |
|---|---|
--select-backend <id> | 切换存储后端,尽量迁移既有数据。实测 jammy 构建可用值仅 SQLite(Qt 只装了 QSQLITE 驱动,见 2.6 节日志证据) |
2.4 TLS 参数
| 参数 | 说明 |
|---|---|
--require-ssl | 强制非回环(remote)客户端连接使用 SSL。Ubuntu 22.04 包已在单元中默认启用,拆除前需确认有反代终止 TLS |
--ssl-cert <path> | 指定 SSL 证书路径。默认 <configdir>/quasselCert.pem(首次启动自动生成自签证书,实测 2949 字节) |
--ssl-key <path> | 指定 SSL 私钥路径(默认与证书同一 PEM 文件) |
2.5 ident 与代理参数
| 参数 | 说明 |
|---|---|
--strict-ident | 用 quasselcore 用户名作为 ident 回复,忽略各用户自设 ident。与 --oidentd 搭配为官方推荐组合 |
--ident-daemon | 启用内置 ident 守护进程 |
--ident-port <port> | ident 监听端口(仅 --ident-daemon 下有意义) |
--ident-listen <addr>[,...] | ident 监听地址(格式同 --listen) |
--oidentd | 启用 oidentd 集成(向 oidentd 配置写入映射) |
--oidentd-conffile <file> | oidentd 配置文件路径 |
--proxy-cidr <addr>[,...] | 允许发送 HAProxy proxy protocol 的来源 IP 段(0.14.0 新增,反代场景用) |
2.6 可观测性与日志参数
| 参数 | 说明 |
|---|---|
--metrics-daemon | 启用 Prometheus 指标接口(0.14.0 新增) |
--metrics-port <port> | 指标端口(仅 --metrics-daemon 下有意义;帮助文本未标注默认值) |
--metrics-listen <addr>[,...] | 指标监听地址 |
-L, --loglevel <level> | 日志级别:Debug/Info/Warning/Error,默认 Info |
-l, --logfile <path> | 写日志文件。发行版默认 /var/log/quassel/core.log |
--syslog | 写 syslog(与 --logfile 二选一) |
-d, --debug | 调试输出 |
--debug-irc | 记录全部原始 IRC 报文到调试日志 |
--debug-irc-id <network-id> | 仅记录指定网络 ID 的原始报文(隐含 --debug-irc) |
--debug-irc-parsed / --debug-irc-parsed-id | 记录解析后的 IRC 报文(同上带 ID 过滤变体) |
⚠️ 安全红线:
--debug-irc、--debug-irc-parsed的帮助文本明确警告日志包含密码(含 SASL/_nick 口令)。只在排障时短期开启,且必须配合 Debug 级别日志,事后立即关闭并清理日志。
三、systemd 单元与 /etc/default/quasselcore
Ubuntu 包注册的单元 /lib/systemd/system/quasselcore.service 实测全文关键内容:
[Unit]
Description=distributed IRC client using a central core component
Documentation=man:quasselcore(1)
Wants=network-online.target postgresql.service
After=network-online.target postgresql.service
[Service]
User=quasselcore
Group=quassel
WorkingDirectory=/var/lib/quassel
Environment="DATADIR=/var/lib/quassel" "LOGFILE=/var/log/quassel/core.log" "LOGLEVEL=Info" "PORT=4242" "LISTEN=::,0.0.0.0"
EnvironmentFile=-/etc/default/quasselcore
ExecStart=/usr/bin/quasselcore --configdir=${DATADIR} --logfile=${LOGFILE} --loglevel=${LOGLEVEL} --port=${PORT} --listen=${LISTEN} --require-ssl
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
配套环境变量文件 /etc/default/quasselcore 实测内容:
LOGLEVEL="Info"
PORT="4242"
LISTEN="::,0.0.0.0"
修改方法(发行版推荐路径,不改单元文件本身):编辑 /etc/default/quasselcore 后执行:
sudo systemctl daemon-reload
sudo systemctl restart quasselcore
💡 解读与注意:
EnvironmentFile=-前导连字符表示文件可选;此处单元先用 Environment= 内置同值默认,用户文件覆盖之。--require-ssl写死在 ExecStart 中,不在环境变量里——关闭强制 TLS 需要覆写单元(systemctl edit quasselcore重写 ExecStart),属高危操作。Wants/After=postgresql.service表明发行版预期 PostgreSQL 存储场景;jammy 构建缺驱动时该依赖空转无害(实测日志仅警告)。Restart=on-failure:进程异常退出自动拉起;kill -HUP(reload)不重载配置文件——Quassel 无 SIGHUP 重载语义,改参数一律 restart。
四、数据目录与状态文件
/var/lib/quassel 实测内容(安装并初始化后):
| 文件 | 作用 | 实测大小 |
|---|---|---|
quassel-storage.sqlite | SQLite 数据库:用户、网络、身份、缓冲区、backlog 全部数据 | 118,784 B |
quasselCert.pem | 客户端 TLS 证书+私钥(首次启动自动生成的自签证书) | 2,949 B |
quasselcore.conf | 核心内部状态(Qt QSettings 格式) | 251 B |
quasselcore.conf 实测内容(节选):
[Config]
Version=1
[Core]
StorageSettings=@Variant(...Backend\0\0\0\f\0S\0Q\0L\0i\0t\0\x65)
即核心状态里记录了所选存储后端为 SQLite。该文件由核心自动维护,手改无意义且危险。
数据库实测表清单(sqlite3 .tables):backlog(聊天记录)、buffer(缓冲区)、network(IRC 网络)、identity / identity_nick(身份)、ircserver(网络服务器地址)、quasseluser(核心用户)、sender、user_setting、core_state、coreinfo。初始化后 quasseluser 含 admin(UserId 1),network 为空(未在客户端添加网络)。
五、存储后端配置
- 默认 SQLite:首次客户端初始化时选择;实测核心日志输出
SQLite storage backend is ready. Schema version: 32,数据库 schema 随核心版本自动迁移。 - PostgreSQL:jammy 仓库包不可用——启动日志实测警告
PostgreSQL driver plugin not available for Qt. Installed drivers: QSQLITE(Qt SQL 的 PostgreSQL 驱动未随包安装)。需 PostgreSQL 的场景只能换用包含驱动的构建或源码编译。 - 切换与迁移:
quasselcore --select-backend <backend>会尝试迁移既有数据(官方帮助原文:Switch storage backend (migrating data if possible))。操作前务必停服并备份 configdir。
六、TLS/证书配置
- 自动证书:核心首次启动在 configdir 生成自签
quasselCert.pem(实测已生成),同时承载证书与私钥,权限 600。 - 强制 TLS:发行版默认带
--require-ssl,非回环明文连接被拒。实测从另一节点以 openssl 握手验证:Verify return code: 0 (ok)。 - 替换为可信证书:用
--ssl-cert/--ssl-key指向 Let's Encrypt 等签发的 PEM(fullchain 与 privkey),或直接替换 quasselCert.pem 后重启。单 PEM 文件需同时含证书链与私钥。 - 客户端侧:连接自签核心时,客户端会展示证书指纹要求人工信任(一次性确认)。
七、ident 与反向代理
- 一般个人部署:三个 ident 参数都不需要(多数 IRC 网络不强制 ident)。
- 多用户/要求 ident 的网络:
--ident-daemon --ident-port 113 --ident-listen 0.0.0.0(或--oidentd --oidentd-conffile,适合宿主机已跑 oidentd 的场景),并按官方建议加--strict-ident。 - HAProxy/nginx 反代场景:0.14.0 支持 proxy protocol;用
--proxy-cidr限定可信反代来源网段(如10.89.58.0/24),反代侧发送 PROXY 头以保留真实客户端 IP。
八、Prometheus 指标配置
0.14.0 内置指标接口,开启三步:
# /etc/default/quasselcore 追加(需同步修改单元 ExecStart 增加参数,或 systemctl edit 覆写)
# ExecStart 追加:--metrics-daemon --metrics-port 9735 --metrics-listen 127.0.0.1
实测帮助文本确认:--metrics-port/--metrics-listen 仅在 --metrics-daemon 下有意义,帮助未标注默认端口。建议固定监听 127.0.0.1 由 Prometheus 本机抓取,避免指标接口直接暴露。注意:开启 metrics 需修改单元 ExecStart(环境变量只覆盖 PORT/LISTEN/LOGLEVEL 三项),修改后 daemon-reload + restart。
九、日志配置与轮转
- 级别与去向由
-L/--loglevel、-l/--logfile、--syslog控制(发行版默认 Info + 文件)。 - 包自带 logrotate 配置
/etc/logrotate.d/quassel-core实测:weekly(每周)、rotate 4(保留 4 份)、compress+delaycompress、copytruncate(复制后截断,适配核心持续持有日志句柄的行为)、missingok、notifempty。默认无需调整。 - 排障临时提级:
/etc/default/quasselcore中LOGLEVEL="Debug"+ restart(完成后改回)。
十、客户端配置参数(quasselclient)
quasselclient --help 实测完整参数(无显示环境需 xvfb-run -a 包裹执行,实测直接运行会 abort):
| 参数 | 说明 |
|---|---|
-c, --configdir <path> | 客户端配置目录。默认 ~/.config/quassel-irc.org/(实测首次运行生成) |
--icontheme <theme> | 覆盖系统图标主题(帮助原文推荐 breeze) |
--qss <file.qss> | 加载自定义样式表(Qt 样式表语法) |
--hidewindow | 启动即最小化到系统托盘 |
--account <account> | 启动时直接连接指定账号(账号 ID) |
-L/-l/--syslog/-d/--debugbufferswitches/--debugmodel | 日志与调试参数(语义同服务端;后两项为客户端专用调试开关) |
客户端配置目录实测产物:quasselclient.conf([Config] Version=1 VersionMinor=9 + [QtUi] 窗口几何/布局状态,QSettings 格式)与 settings.qss(默认样式)。多账号、网络、身份等业务配置存储在核心侧数据库,客户端本地文件仅承载 UI 状态——这是「客户端可换机器、状态不丢」的原因。
十一、常用参数组合示例
# A. 最小安全默认(发行版即此形态):双栈 4242 + 强制 TLS + SQLite
ExecStart=/usr/bin/quasselcore --configdir=/var/lib/quassel --require-ssl
# B. 仅本机监听 + 反代终止 TLS(nginx stream/HAProxy,发 proxy protocol)
quasselcore --configdir /var/lib/quassel --listen 127.0.0.1 \
--proxy-cidr 10.89.58.0/24
# C. ident + oidentd 集成(多用户服务器)
quasselcore --configdir /var/lib/quassel --strict-ident --oidentd \
--oidentd-conffile /etc/oidentd.conf
# D. Prometheus 指标(本机抓取)
quasselcore --configdir /var/lib/quassel --metrics-daemon \
--metrics-port 9735 --metrics-listen 127.0.0.1
十二、参考链接
- 服务端参数:
quasselcore --help与 man quasselcore(1)(本文表 2.1–2.6 为 2026-10-26 实测原文) - 客户端参数:
quasselclient --help(2026-10-26 xvfb 环境实测) - 发行版配置文件(实测路径):/lib/systemd/system/quasselcore.service、/etc/default/quasselcore、/etc/logrotate.d/quassel-core、/etc/ufw/applications.d/quassel-core.ufw.profile、/etc/apparmor.d/usr.bin.quasselcore
- 官方下载页:https://quassel-irc.org/downloads(查询日期 2026-10-26)
- 同系列:认知篇《Quassel IRC 0.14.0 介绍与选型指南》、部署篇《Quassel IRC 0.14.0 Ubuntu 22.04 安装指南》、命令篇《Quassel IRC 0.14.0 常用命令详解》