赞
踩
1台运行了DSM6.2的群晖,打算在其上搭建1台bitWarden服务器,来替代keePass和1password,搭建过程中走了不少弯路,特此记录。
在搭建中尝试使用过群晖第三方套件源中的vaultWarden套件,但是版本过旧且配置也比较麻烦,最终选定用docker自己搭建。
搭建过程分为以下几个步骤:
docker拉取并安装vaultWarden
vaultWarden在群晖中反向代理配置
阿里云ssl证书申请和配置
浏览器/手机端bitWarden连接配置
具体症状:
套件中心报错:“套件中心连接失败,请检查您的网络和时间设置”
docker中报错:”注册表查询失败“
首先使用ssh登陆群晖并ping外网域名确认网络是正常没有问题的,
ssh登陆群晖使用ping命令会提示没有权限,可以使用sudo ping
如果嫌弃每次使用sudo比较麻烦,可以使用"sudo su -"提升为root权限
解决办法:
由于群晖的套件中心和docker的注册表中心也就登陆管理时候使用,所以可以在要使用的使用临时使用代理恢复网络功能
在个人使用的电脑上开启代理功能,然后在群晖中配置使用个人电脑上的代理即可
以clash为例,首先确认clash工作正常,然后勾选“允许局域网连接入Clash”和“系统代理”,并记住端口号,我用的是789
然后在cmd中输入ipconfig查看并记住自己电脑的ip(我这里ip为172.168.0.2,这里已经假设个人pc和群晖服务器是在可以正常互访的网络中)
在群晖控制面板中,点击“网络-常规-代理服务器”,填写步骤1和步骤2的端口和ip,点击应用
如果不出意外,这时候群晖的套件中心和docker注册表功能已经可以正常访问。
在安装前需要在群晖中创建一个vaultWarden的目录,用于存放bitWarden服务器的数据文件,这个目录建议直接创建一个一级目录,仅开放权限给管理员即可,例如我的文件目录为:vaultwarden\data(这里仅为示例,实际使用可以根据自己的喜好选择存放位置,不过这个位置一定要确保安全和便于备份)
打开file station,点击菜单:新增共享文件夹
在创建向导中输入名称:vaultwarden,勾选2个隐藏的选项,去掉”启用回收站“,不加密,其他设置都默认
回到file station中,找到新创建号的vaultwarden文件夹,点击菜单:新增文件夹,创建一个名为data的文件夹
在docker注册表中搜索并下载”vaultwarden",实际完整的源地址是:“vaultwarden/server:latest”(我实际安装的是当前最新版本1.30,latest标签会保证你安装的就是当前时间的最新版)
安装时候需要注意,在创建容器向导中点击高级设置:
勾选启用自动重启
存储空间添加文件夹,选择前边创建好的vaultwarden/data,装载路径输入”/data“
端口将容器端口80对应的本地端口改为8057(仅为示例,可根据自己情况选择,建议不要设置1000以内的)
环境中点击加号,名称:TZ,值:Asia/Shanghai,此处为设置服务器的时区,防止与实际时间不同
完成并启动后,此时应该可以通过http://群晖服务器ip:8057访问vaultWarden的网页端了,但是由于不是https访问,所以不能登陆不能注册
下边就看自己个人需求,如果只需要网页端和浏览器插件端使用,那可以看下边反向代理实现https访问的方法,如果需要在pc或手机的app端访问使用,那可以看下边注册ssl证书实现https访问的方法,这两个方法二选一即可。
打开群晖的控制面板-Synology应用程序门户-反向代理服务器,点击新增
来源协议:HTTPS,来源端口:8058(注意:这里端口要和前边的端口区分开)
目的地协议:HTTP,目的地端口:8057(注意:这里是前边的8057端口(实际映射了vaultwarden服务器的80端口)
本方法可以实现全平台正常登陆服务器,但需要以下几个条件:
有一个有效的可管理的域名
内网服务器映射外网访问需要有网关路由的权限(是家用路由环境也可以)
有公网ip
教程开始
个人使用的是阿里云注册的域名,证书申请也使用阿里云的ssl证书注册服务,免费但仅有3个月有效期
证书申请
证书验证
在证书列表中,点击后边的验证按钮,打开验证页面,分别复制里边的主机记录和记录值(这个窗口不要关,后边步骤要继续使用)
登陆自己的域名管理页面(以我的阿里云域名为例),设置DNS验证要使用的解析记录
回到证书验证页面,点击验证按钮,提示验证成功就说明设置正确,如果未成功请检查步骤5-6的设置是否正确对应
成功并提交后,等待证书审核通过即可(阿里云的审核在5-20分钟左右,成功后会收到站内消息和短信提醒)
证书下载和安装
设置域名绑定(有静态公网ip的话设置a记录绑定,动态公网ip可以使用ddns绑定,没有公网ip可以考试使用sd-wan,根据自己情况选择)
设置端口映射,将vaultwarden服务器的8507端口映射到出口路由器的对应8507端口
如果域名绑定正确,即可使用域名+端口访问vaultwarden服务器https://bw.abc.com:8507,可以成功访问后就可以将前边域名+端口复制到pc或手机端的bitWarden的app中使用了
以下2个解决办法二选一
192.168.16.10 bw.abc.com
windows系统hosts文件路径:c:\windows\system32\driver\etc\hosts
mac系统hosts文件路径:/etc/hosts
注意事项:修改请注意权限问题,例如windows下修改该文件需要使用管理员权限打开记事本,然后再打开hosts文件修改才能保存
以clash为例,排除指定域名和地址的方法:
点击设置-系统代理-系统代理绕过的域名/ip网段
在弹出的窗口中添加域名和服务器ip即可
验证dns映射正确的方法:直接ping服务器域名,例如:ping bw.abc.com,看测试过程中的ip是不是服务器的内网ip,如果是,则表示dns域名映射正确,如果不正确可以根据下边步骤排查:
确保路由器上开启了dns服务器功能,并且域名和ip映射设置正确
确保dhcp服务器的dns服务器ip已设置为了路由器的ip(可以使用ipconfig /all查看)
确保本机已经重新获取了最新的ip(可以使用ipconfig /renew重新获取ip)
使用ipconfig /flushdns刷新dns缓存,并关闭重启浏览器
如果服务器是个人使用,在自己账号注册完毕后可以关闭注册功能
在docker中关闭vaultwardne,然后点击编辑
在环境中点击加号添加变量:SIGNUPS_ALLOWED=false
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。