需部署Sync-1.5 Server与auth-server,配置Firefox客户端强制指向私有服务地址,并通过桌面端注册、Android ADB调试注入参数,实现完全本地可控的加密同步。

如果您希望将火狐浏览器的同步数据完全掌控在本地,避免任何数据经由 Mozilla 官方服务器中转或存储,则需配置自建 Firefox Sync 本地同步服务器。该方案要求独立部署 Sync-1.5 Server 与配套 auth-server,并通过强制修改客户端底层配置,使所有账户认证、令牌获取与数据上传/拉取均指向您私有可控的服务地址。以下是具体配置步骤:
一、部署 Sync-1.5 Server 与 auth-server
Sync-1.5 Server 负责接收、存储与分发加密后的同步数据(书签、密码、历史等),auth-server 则处理用户注册、登录及 OAuth 令牌签发;二者必须共用同一信任域,且通信全程启用 HTTPS 或局域网可信直连,否则客户端将拒绝建立会话。
1、在 Linux 服务器上安装 Python 3.8 或更高版本,以及 python3-venv、gcc、libffi-dev、openssl-dev 等编译依赖。
2、执行 git clone https://gitcode.com/gh_mirrors/sy/syncserver 下载官方维护的 Sync-1.5 Server 源码,进入 syncserver 目录。
3、运行 make build 构建虚拟环境并安装全部 Python 依赖;随后执行 make test 验证服务基础功能是否正常。
4、复制 syncserver.ini.template 为 syncserver.ini,编辑以下关键项:public_url 必须设为可被客户端访问的完整 HTTPS 地址(如 https://sync.internal.lan);sqluri 必须明确指定数据库路径(如 sqlite:////var/db/sync.db);secret 必须使用 openssl rand -base64 32 生成的 32 字节随机密钥。
5、启动 Sync-1.5 Server:gunicorn --paste syncserver.ini --reload。
6、单独部署 auth-server(推荐使用 mozilla-services/auth-server 仓库),确保其监听地址与 Sync-1.5 Server 共享同一根域名(如 https://auth.internal.lan),并在 CORS 配置中显式允许 Sync-1.5 Server 的 origin。
二、配置 Firefox 客户端强制指向私有服务
Firefox 默认通过 DNS 自动发现 Mozilla 公共服务地址,若不显式覆盖,即使部署了私有服务,客户端仍将回退至云端基础设施。所有配置必须在 about:config 中手动设定,且需重启浏览器生效。
1、在 Firefox 地址栏输入 about:config,确认警告后进入高级配置界面。
2、搜索 identity.fxaccounts.autoconfig.uri,双击修改其值为 auth-server 的根地址,例如 https://auth.internal.lan。
3、搜索 identity.sync.tokenserver.uri,双击修改其值为 Sync-1.5 Server 的令牌端点,例如 https://sync.internal.lan/token/1.0/sync/1.5。
4、搜索 identity.sync.username,若存在且非空,双击清空其值,防止旧账户缓存干扰首次注册流程。
5、关闭所有 Firefox 窗口,彻底退出进程,再重新启动浏览器。
三、在桌面端完成离线账户注册与绑定
自建服务不复用 Mozilla 公共账户体系,所有用户凭证均由 auth-server 独立生成并落库,注册过程全程无外联请求,邮箱仅作唯一标识符,不触发 SMTP 发信或第三方验证。
1、打开 Firefox,点击右上角菜单 → 登录到 Firefox → 创建账户。
2、在注册页面填写任意有效邮箱(如 user@localhost)与强密码,提交后页面跳转至 auth-server 提供的确认页。
3、auth-server 返回成功响应后,Firefox 自动完成账户初始化,并在 about:preferences#sync 页面显示“已登录”状态。
4、进入同步设置 → 同步选项,勾选书签、密码、历史记录等需同步的数据类型;此时所有数据将仅加密上传至您部署的 sync.internal.lan,不再经过任何外部节点。
四、Android 设备接入私有同步网络
Android 端 Firefox 不支持 UI 层直接修改服务地址,必须通过 ADB 调试桥注入配置参数,否则将始终尝试连接 Mozilla 官方服务。
1、在 Android 设备上启用开发者选项与 USB 调试模式。
2、使用 USB 连接手机与已部署 adb 的电脑,执行 adb devices 确认设备在线。
3、执行 adb shell settings put global firefox_sync_server_url https://sync.internal.lan。
4、执行 adb shell settings put global firefox_auth_server_url https://auth.internal.lan。
5、卸载并重装 Firefox for Android,安装后首次启动即读取上述系统级配置,跳过自动发现流程。
6、在登录界面选择“使用电子邮件”,输入与桌面端一致的邮箱与密码,完成设备绑定;绑定成功后,所有同步流量将严格限制在本地网络内,无 DNS 查询、无 TLS 握手至公网 IP。
五、验证同步数据是否真正本地化
仅完成配置不等于数据已脱离公共基础设施,需通过网络层与日志层双重验证,确认无任何出向连接指向 Mozilla 域名或 IP 段。
1、在桌面端 Firefox 中访问 about:sync-log,点击右上角“重新同步所有数据”,等待完成。
2、同步完成后,查看日志末尾出现 Sync completed successfully 及各引擎(bookmarks、passwords)状态为 OK。
3、在 Linux 服务器上执行 ss -tuln | grep :5000(或对应监听端口),确认仅有来自局域网 IP 的 ESTABLISHED 连接。
4、在客户端主机执行 tcpdump -i any host account.services.mozilla.com or host auth.mozilla.org or host sync-1.5.services.mozilla.com,运行同步操作 60 秒,确认捕获包数量为零。


















