在 OpenWrt 上部署 2FAuth,最推荐的方式是使用 Docker。因为 2FAuth 官方提供了 Docker 镜像,而 OpenWrt 可以安装 Docker 来运行它,这能避免直接安装 PHP 环境和依赖的繁琐过程。
🐳 部署前准备
在开始之前,请确保你的 OpenWrt 设备满足以下条件:
已安装 Docker:如果你的 OpenWrt 尚未安装 Docker,可以通过
opkg 包管理器进行安装。在 SSH 中执行以下命令(请根据你的设备架构调整):opkg update opkg install dockerd docker-compose足够的存储空间:2FAuth 的 Docker 镜像和数据会占用一定空间,建议确保设备有至少 500MB 的可用空间。
🚀 部署 2FAuth (Docker Compose 方式)
关键点:APP_KEY 是必须设置的,它是用于加密数据库和会话的安全密钥,一旦设置后务必妥善保存,丢失将导致所有数据无法解密。
你可以使用以下命令生成一个安全的 APP_KEY:
docker run -it --rm --entrypoint /usr/bin/php 2fauth/2fauth artisan key:generate --show
复制命令输出的密钥(一串32位的字符串,包括 base64:),然后在下面的 docke-compose.yml 中使用它。
创建一个 docker-compose.yml 文件,内容如下:
services:
2fauth:
image: 2fauth/2fauth:latest
container_name: 2fauth
restart: unless-stopped
volumes:
- 2fauth_data:/2fauth # 使用命名卷
ports:
- "8000:8000"
environment:
- APP_NAME=2FAuth
- APP_ENV=local
- APP_TIMEZONE=Asia/Shanghai
- APP_DEBUG=false
- APP_KEY=<粘贴刚刚生成的32位App_key>
- APP_URL=https://2fauth.fmzhong.top # 设置为你的外部访问地址并部署SSL证书
volumes:
2fauth_data: # 声明命名卷将文件保存到 OpenWrt 上(例如 /root/docker-compose.yml),然后在该目录下执行以下命令启动服务:
docker-compose up -d
🔧 配置与访问
开放防火墙:如果你的 OpenWrt 启用了防火墙,需要允许外部访问你映射的端口(例如 8000)。可以通过 LuCI 界面或
iptables 命令添加规则。访问 2FAuth:在浏览器中输入
http://你的OpenWrt设备IP:8000,你应该能看到 2FAuth 的初始设置页面。创建管理员账户:首次访问时,按照页面提示创建管理员账户,即可开始使用。
⚠️ 极其重要的安全警告(务必阅读)
2FAuth 是你所有账号的最后一道防线。如果你丢失了 2FAuth 的数据,你将无法登录你绑定了 2FA 的所有账号。
备份数据:因为你用的是 Docker 命名卷,你的所有 2FA 密钥都保存在
2fauth_data这个卷里(对应宿主机目录/var/lib/docker/volumes/...)。建议定期在 2FAuth 界面使用 “导出” 功能,下载一份 JSON 备份文件,保存在安全的地方。
或者定期备份你的 Docker 卷。
保存恢复码:在 GitHub 等网站开启 2FA 时,它们会给你一次性的恢复码(Recovery Codes)。请务必将这些恢复码复制到安全的地方(比如密码管理器或打印出来),不要只存在 2FAuth 里。
APP_KEY 不要丢:你之前设置的
APP_KEY绝对不能丢失或更改。如果丢了这个,即使你有数据库文件,里面的数据也无法解密。不要轻易删除容器数据:以后如果升级 2FAuth,千万不要执行
docker-compose down -v(-v会删除数据卷),只能执行docker-compose down或直接docker-compose pull && docker-compose up -d。
评论