需部署sync-1.5 server与auth-server,配置firefox客户端强制指向私有服务地址,并通过桌面端独立注册、网络层日志双重验证,实现完全本地可控的加密同步。

如果您希望将火狐浏览器的同步数据完全掌控在本地,避免任何数据上传至 Mozilla 官方服务器或第三方云环境,则需配置自建同步服务器。该方案要求同时部署 Sync-1.5 Server 与 auth-server,并通过强制修改客户端底层配置项,使所有加密同步请求定向至您私有托管的服务地址。以下是具体配置步骤:
一、部署 Sync-1.5 Server 与 auth-server
Sync-1.5 Server 负责接收、存储与分发加密后的书签、历史、密码等数据;auth-server 则提供账户注册、登录验证及 OAuth 令牌签发功能。二者必须共域部署或启用严格 CORS 白名单,且均需使用 HTTPS 协议,否则 Firefox 客户端将拒绝连接。
1、在 Linux 服务器上安装 Python 3.8 或更高版本,并确保系统已安装 pip 与 git 工具。
2、执行命令 git clone https://github.com/mozilla-services/syncserver.git 获取 Sync-1.5 Server 最新稳定版源码。
3、进入 syncserver 目录,复制 syncserver.ini-dist 为 syncserver.ini,编辑该文件:将 public_url 设为您的完整 HTTPS 域名(如 https://sync.example.com),并确认 sqluri 指向可用数据库(例如 sqlite:///var/sync/sync.db)。
4、安装依赖并启动服务:pip install -e . && gunicorn --paste syncserver.ini。
5、另起终端,部署 auth-server:克隆 https://github.com/mozilla/fxa-auth-server,按其 README 配置 MySQL 数据库与 Redis 缓存,运行 npm start 启动服务,监听地址设为 https://auth.example.com。
二、强制修改 Firefox 客户端配置项
Firefox 默认通过自动发现机制连接 Mozilla 公共服务,必须显式覆盖三项核心 URI 地址,才能切断与官方基础设施的所有通信路径。所有修改仅在 about:config 中生效,UI 设置界面不可见且无法回退。
1、在 Firefox 地址栏输入 about:config,点击“接受风险并继续”。
2、搜索 identity.fxaccounts.autoconfig.uri,双击修改值为 https://auth.example.com。
3、搜索 identity.sync.tokenserver.uri,双击修改值为 https://sync.example.com/token/1.0/sync/1.5。
4、搜索 identity.fxaccounts.remote.root,双击修改值为 https://auth.example.com。
5、关闭所有 Firefox 窗口,彻底终止进程后重新启动浏览器。
三、在桌面端完成独立账户注册
自建服务不复用 Mozilla 公共账户体系,所有用户凭证均保存于本地 auth-server 数据库中。注册过程全程离线可控,邮箱仅作为唯一标识符,不会触发任何外发 HTTP 请求或 SMTP 通信。
1、打开 Firefox,点击右上角菜单 → “登录到 Firefox” → “创建账户”。
2、在跳转页面中输入任意有效邮箱(如 user@localhost)与强密码,点击“继续”。
3、auth-server 将返回 JSON 格式注册成功响应,Firefox 自动完成会话初始化。
4、检查地址栏是否显示 https://auth.example.com/confirm,确认未跳转至 accounts.firefox.com 或其他外部域名。
5、进入设置 → “Firefox 账户” → “要同步的内容”,勾选全部项目,确保同步开关处于开启状态。
四、验证同步链路完整性
同步链路是否真正指向私有服务,需从网络层与日志层双重确认。若任一环节仍调用 Mozilla 域名,则说明某项配置遗漏或缓存未清除,数据存在泄露风险。
1、在 Firefox 中访问 about:sync-log,查看最近一次同步日志。
2、在日志顶部确认 Token server URL 显示为 https://sync.example.com/token/1.0/sync/1.5,而非 mozilla 域名。
3、打开开发者工具(F12)→ 网络(Network)标签页,过滤 XHR 请求,执行一次“立即同步”,观察所有请求目标均为 sync.example.com 或 auth.example.com。
4、在服务器端查看 auth-server 日志,确认收到 POST /v1/account/create 与 GET /v1/account/login 请求。
5、在 Sync-1.5 Server 日志中确认出现 PUT /1.5/{uid}/storage/bookmarks 与 GET /1.5/{uid}/storage/passwords 等路径记录。
五、禁用所有非必要同步代理与扩展
部分安全类或网络优化类扩展(如 uBlock Origin 高级模式、HTTPS Everywhere 自定义规则、企业级透明代理插件)可能劫持或重写同步请求头,导致 URI 被篡改或证书校验失败,从而回退至默认服务。
1、在 about:addons 页面中,临时禁用全部扩展,仅保留默认内置组件。
2、重启 Firefox,再次访问 about:sync-log,确认同步任务成功完成且无错误码。
3、逐个启用扩展,每次启用后执行一次同步,定位引发异常的具体扩展。
4、对确认干扰同步的扩展,在其设置中添加 *.example.com 到白名单或排除规则中。
5、在操作系统 hosts 文件中添加 127.0.0.1 accounts.firefox.com accounts.firefox.com.cn,彻底阻断任何意外外连。











