故障
通过管理页面修改配置并保存后,会将配置参数写入 config.json 文件,但当通过直接编辑 config.json 文件配置参数后,管理页面无法读取修改后的配置参数。
原因为只有在 Vaultwarden 容器启动时才会读取 config.json 文件。修改 config.json 文件后要使功能生效,需要在修改 config.json 文件后重启 Vaultwarden 容器:
docker restart vaultwarden
日志记录使用 UTC(全球标准时间),而中国使用时间为 UTC+8,比 UTC 推后 8小时。
在创建 Vaultwarden 容器时加上时区环境变量:
-e TZ=Asia/Shanghai
先查看 Fail2ban 是否正常运行。如果正常运行,运行下面的命令后将显示
Server replied: pong
:sudo fail2ban-client ping
如果 Fail2ban 正常运行,可能的原因:
原因:Vaultwarden 容器的时区与主机的时区不一致
现象:无论怎么测试,fail2ban.log 中看不到 ban IP 的记录
解决:在创建 Vaultwarden 容器时加上时区环境变量:
-e TZ = Asia/Shanghai
原因:Fail2ban 默认的 iptables 封禁策略为
REJECT--reject-with icmp-port-unreachable
,需要变更为 DROP
现象:
sudo iptables --list -n
命令能看到被 ban 的 IP 记录,但封禁策略为 REJECT
解决:编辑 /etc/fail2ban/action.d/iptables-common.conf 文件,将封禁策略变更为
DROP
# 打开 iptables-common.conf 文件
sudo vi /etc/fail2ban/action.d/iptables-common.conf
# 注释掉这一行
blocktype = REJECT --reject-with icmp-port-unreachable
# 添加一行
blocktype = DROP
# 重启 Fail2ban
sudo systemctl restart fail2ban
正常情况下,使用 lnmp 自带的 Let's Encrypt 生成的相应的证书(这里为
vault.yourdomain.com
)会自动续期。查看 Let's Encrypt 日志文件
/usr/local/acme.sh/acme.sh.log
,发现如下错误记录:Verify error:Invalid response from https://vault.yourdomain.com/.well-known/acme-challenge/QK1Gw-lJbi78GO5smcU1-Akkkm13UQbtLmVR073J2iI
原因为我之前将
vault.yourdomain.com.conf
配置文件中的如下语句移除了,添加上即可: location ~ /.well-known {
allow all;
}
# 定位到 /usr/local/acme.sh/ 目录
cd /usr/local/acme.sh/
# 手动续期 vault.yourdomain.com 的 Let’s Encrypt 证书
acme.sh --renew -d vault.yourdomain.com
如果由于某些原因无法手动续期,则可以通过 lnmp 命令删除虚拟主机然后重新添加虚拟主机的方式重新获取证书:(此操作不会丢失 Vaultwarden 的数据,并且不需要对 Vaultwarden 做任何操作)。
1、备份
vault.yourdomain.com
虚拟主机的配置文件:/usr/local/nginx/conf/vhost/vault.yourdomain.com.conf
2、删除并重新创建
vault.yourdomain.com
虚拟主机:# 删除虚拟主机
lnmp vhost del # 根据提示输入 vault.yourdomain.com 以删除此虚拟主机
# 删除网站文件
chattr -i /home/wwwroot/vault.yourdomain.com/.user.ini # 需要先执行此命令才能删除 .user.ini 文件
rm -rf /home/wwwroot/vault.yourdomain.com/ # 执行删除操作
# 新建虚拟主机
lnmp vhost add
# 根据提示输入使用的域名(这里为 vault.yourdomain.com)
# 选择使用 Let's Encrypt
# 其他如 Rewrite rule、PHP Pathinfo、access log、databse、ftp 等全部选 no
3、恢复
vault.yourdomain.com
虚拟主机的配置文件:/usr/local/nginx/conf/vhost/vault.yourdomain.com.conf
4、重启 nginx 使配置生效:
lnmp nginx restart
# 或者
/etc/init.d/nginx restart
发生错误。YUBICO_CLIENT_ID
orYUBICO_SECRET_KEY
environment variable is not set. Yubikey OTP Disabled
原因为未设置配置文件
config.json
中 Yubico 的 Client ID
和 Secret key
环境变量的值。通过 Yubico API key signup 页面注册您的 Yubico 的 Client ID
和 Secret key
,然后将其通过管理页面或直接配置到 config.json
中即可。发生错误。 Yubico support is disabled
原因为未启用 Yubikey,启用即可。
最近更新 3mo ago