Mjolnir是一款针对Matrix协议的综合审核工具,旨在保护Matrix服务器和社区免受***行为侵扰。它不仅提供服务器级别的保护,还能帮助社区在不使用个人账号的情况下有效管理房间,同时支持作为Synapse模块将审核规则应用于整个家庭服务器(homeserver)。
前置要求
注意事项
Mjolnir已发布至Docker Hub:https://hub.docker.com/r/matrixdotorg/mjolnir%EF%BC%8C%E4%B9%9F%E5%8F%AF%E8%87%AA%E8%A1%8C%E6%9E%84%E5%BB%BA%E9%95%9C%E5%83%8F%E3%80%82
安装步骤
bash# 克隆仓库 git clone https://github.com/matrix-org/mjolnir.git cd mjolnir # 创建并编辑配置文件(不建议修改数据路径) mkdir -p /etc/mjolnir/config cp config/default.yaml /etc/mjolnir/config/production.yaml nano /etc/mjolnir/config/production.yaml # 编辑配置 # 启动容器 docker run --rm -it -v /etc/mjolnir:/data matrixdotorg/mjolnir:latest
需依赖yarn和Node 14。
bash# 克隆仓库 git clone https://github.com/matrix-org/mjolnir.git cd mjolnir # 安装依赖并构建 yarn install yarn build # 创建并编辑配置文件(建议修改数据路径) cp config/default.yaml config/development.yaml nano config/development.yaml # 编辑配置 # 启动 node lib/index.js
机器人启动后,执行以下命令完成初始设置:
!mjolnir list create COC code-of-conduct-ban-listCOC、别名为#code-of-conduct-ban-list:example.org的封禁列表,自动邀请您加入管理房间)!mjolnir default COC!mjolnir help查看所有可用命令。要求:Synapse 1.53.0及以上版本。
该模块可将Mjolnir的审核规则应用于整个家庭服务器,主要用于阻止来自不受信任家庭服务器/用户的邀请,需手动配置。
安装步骤
安装模块:
将模块安装到Synapse的Python环境中:
bashpip install -e "git+https://github.com/matrix-org/mjolnir.git#egg=mjolnir&subdirectory=synapse_antispam"
配置homeserver.yaml:
在配置文件中添加模块配置,示例如下:
yamlmodules: - module: mjolnir.Module config: # 阻止封禁列表中的服务器/用户发送邀请(默认true) block_invites: true # 将封禁列表中的服务器/用户发送的消息标记为垃圾信息(默认false,标记后消息显示为空) block_messages: false # 通过过滤用户ID和显示名称,从用户目录搜索中移除封禁列表中的用户(默认false) block_usernames: false # 需遵循的封禁列表房间ID(仅支持房间ID,不支持别名或永久链接;服务器需已加入这些房间) ban_lists: - "!roomid:example.org" # 消息长度限制(可选) message_max_length: # 限制消息体字符数(默认无限制,超出Synapse规范的事件大小限制除外) # threshold: 510 # 示例:限制为510字符 # 指定仅在某些房间应用长度限制(默认所有房间) # rooms: # - "!vMvyOCeCxHsggkmALd:localhost:9999" # 对来自远程服务器的消息也应用长度限制(默认仅限制本服务器消息) # remote_servers: true
重启Synapse:
修改配置后需重启Synapse使模块生效。
注意事项
ban_lists中指定的房间,模块不会自动加入房间。Mjolnir 1.2及以上版本支持将滥用报告替换为房间内可读格式,无需通过管理员API获取数据,需以下两步配置:
配置Mjolnir:
在Mjolnir配置文件(通常为/etc/mjolnir/config/production.yaml)中,复制default.yaml中的web部分(1.20版本新增),并启用web和abuseReporting:
yamlweb: enabled: true port: 9000 # 配置端口 host: 0.0.0.0 # 建议设为localhost仅允许反向代理访问 abuseReporting: enabled: true
设置反向代理:
将请求重定向至Mjolnir的API端点。以Nginx为例,配置如下(参考test/nginx.conf):
nginxlocation ~ ^/_matrix/client/r0/rooms/([^/]*)/report/(.*)$ { proxy_pass http://host:port/api/1/report/$1/$2; # host为Mjolnir主机,port为配置的web端口 }
安全注意事项
host: localhost)。若对安全性有顾虑,可禁用此功能。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务