自托管验证解决方案:2FAuth完美替代谷歌和微软验证器

如今强制开启双因素验证(2FA)的网站越来越多,国内外主流方案却大不相同:国内偏好短信验证码,而海外平台更常使用 TOTP 动态密码。

保存 TOTP 需要借助验证器应用,像 Google Authenticator 或 Microsoft Authenticator 就十分常见。但由于网络限制,它们的云端同步功能并不稳定,可能导致验证数据丢失,相关案例在网上并不少见。

也有人选择密码管理器(如 Bitwarden)内置的 2FA 功能,但这实际上违背了”二次验证”的安全逻辑——密码和验证码集中存储,一旦泄露就等于完全失守。因此,独立部署 2FAuth 才是更稳妥的选择

2FAuth 作为网页应用,数据完全托管在你的 VPS 或 NAS 上。它无需安装客户端,浏览器访问即可使用,彻底规避了同步故障风险。只需定期备份数据库文件,即使服务器意外损坏,也能快速恢复所有验证数据。

安装

建议通过 Docker Compose 进行安装,2FAuth 有非常多的环境变量,具体可以参考官方文档,下面给出最精简的 Compose

警告

1.如果 APP_URL 必须与实际访问 URL 一致,否则访问时可能会白屏

2.在运行 Compose 之前,你还需要手动创建 2fauth 目录并修改所有权和权限,否则启动时创建 SQLite 可能会失败

mkdir 2fauth
chown 1000:1000 2fauth
chmod 700 2fauth
services:
2fauth:
image: 2fauth/2fauth
container_name: 2fauth
volumes:
- ./2fauth:/2fauth
ports:
- 8000:8000/tcp
environment:
- APP_URL=http://192.168.1.10:8000

配置

此时,再访问 http://ip:8000,你应该就能看到登录页面了,点击下方的 Register 进行注册

登录页
登录页

注册需要填写 Name、Email 和 Password,建议设置复杂度较高的密码

注册页
注册页

登录到 2FAuth 后,可以看到和其他验证器一样,可以通过扫描二维码添加 2FA 非常的方便

扫描二维码
扫描二维码

如果你的电脑没有摄像头不方便扫码,也可以选择 Use the advanced form 手动添加,只需要将平台的密钥粘贴到 Secret 即可,上方的 Service 和 Account 用于区分平台和账号,可以随意填写。

手动添加
手动添加

如果你已经在使用其他的身份验证器,也可以直接导入到 2FAuth 中作为备份,目前支持下面这些验证器,需要注意的是,导出时不要勾选加密

Plain text QR code JSON
Google Authenticator
Aegis Auth
2FAS auth
FreeOTP+
2FAuth

导入
导入

效果

最终效果如下图,Icon 会根据你填写的 Service 名字自动匹配,如果没有匹配上也可以选择手动上传

下方的小点用于指示过期时间,并且最下方还会显示下一个动态密码,避免了刚复制完密码就过期的情况,更加的方便

效果
效果

原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/resource/955.html

(0)
上一篇 2025年6月22日 10:09

相关推荐