必须将homeserver.yaml中enable_registration和enable_guest_access均设为false,并重启服务,否则公开注册和访客聊天仍可被绕过;推荐额外配置registration_shared_secret或反向代理拦截/register路径。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要彻底关闭Synapse服务器的公开注册和访客聊天功能,防止任何人未经许可创建账号或以访客身份加入房间,必须修改核心配置文件并重启服务。这一步不能只靠前端界面开关,否则注册入口仍可能被暴力探测或绕过。
关闭公开注册
打开你的 homeserver.yaml 配置文件,定位到 enable_registration 这一行。
将它的值改为 false:
enable_registration: false
如果该行不存在,就在 registration_shared_secret 上方手动添加这一行。不加这句,即使设置了注册密钥,新用户仍可通过网页表单提交注册请求——这是最常被忽略的安全缺口。
禁用访客访问权限
在同一个 homeserver.yaml 文件中,查找 enable_guest_access。
将其设为 false:
enable_guest_access: false
若该配置项未出现,需手动添加在 enable_registration 下方。启用访客模式后,任何人都能以临时身份加入公开房间,且无需密码;一旦关闭,所有未登录用户将直接收到 403 错误,无法加载任何房间列表。
强制启用注册密钥(可选但推荐)
方法一:启用共享密钥验证
确认配置中已存在 registration_shared_secret 行,且其值为一串随机、长度不少于16位的字符串,例如:registration_shared_secret: "Xq9#vL2mRt$FpWzY"
方法二:配合反向代理拦截注册路径(高级)
如果你用 Nginx 或 Caddy 做反代,在 server 块中加入:location /_matrix/client/r0/register { return 403; }
这会直接拒绝所有注册请求,连 Synapse 层都不触达。
注意:此方法仅在你完全不需要注册能力时使用;若后续需管理员手动添加用户,仍要保留 register_new_matrix_user 工具调用路径。
保存配置并重启服务
第一步:执行 synctl restart
第二步:等待输出显示 Starting ... OK 后,立即测试:
用浏览器访问 http://你的域名:8008/_matrix/client/r0/register,应返回 HTTP 403 或空响应;
尝试在 Element 客户端点击“注册”按钮,页面应卡在加载或提示“注册已被禁用”。
第三步:检查日志确认生效:tail -n 20 /var/log/matrix-synapse/homeserver.log | grep -i "registration\|guest"
若看到 Registration is disabled 或 Guest access disabled 字样,说明配置已载入。

















