资讯动态

密码越来越多不想交给第三方?我把Password-XL部署到飞牛NAS并做成可远程访问的密码库

发布时间:2026/10/18 7:17:10 来源:尧图企业网站定制
前言密码管理这类工具和普通自建应用不太一样一旦真正用起来里面放的不是影视库、照片或测试数据而是账号、登录凭据和个人服务入口。也正因为如此很多人更愿意把密码库放在自己的NAS里先把存储位置和访问方式掌握在自己手中再决定是否需要异地访问。这次我在飞牛OS上部署Password-XL从创建Docker目录开始准备前后端服务目录和用户配置文件再通过Docker Compose启动Web端和后端服务分别使用8080和8081两个端口。本地访问跑通以后再实际登录私有服务、设置主密码并新增一条密码记录确认这套密码库已经能够正常使用。最后才处理外部访问在飞牛NAS上安装cpolar把8080 Web页面提供给外部设备并继续配置固定二级子域名。整篇重点放在“NAS部署—本地验证—密码库使用—远程入口”这条链上同时把密码、主密码、Webhook式公网入口这类高敏感信息的使用边界说清楚。这类应用真正值得花时间的地方不是“容器能不能启动”而是整条使用链是否顺畅Web端能不能打开、后端服务能不能连接、主密码能不能正常工作、密码记录能不能保存以及离开局域网以后是否还要保留一个长期可用的访问入口。把这些环节依次跑通比单独强调“自托管更安全”更有实际意义。1 Password-XL适合什么场景Password-XL是一套可以自己部署的Web密码管理工具。这类方案最直接的价值是服务运行在自己的NAS或服务器上密码库不需要依赖单独购买一台新设备可以通过浏览器访问可以自己决定是否开放远程入口适合个人或小范围家庭使用。它和普通自建应用最大的区别在于保存的是高敏感凭据。所以部署时不能只看“页面能不能打开”还要同时关注用户配置主密码服务地址NAS本身外部访问入口。2 这篇实际要跑通的完整链路整个过程分成四段第一段飞牛OS → Docker目录第二段Password-XL Web Service → 8080 / 8081第三段登录 → 主密码 → 新增密码第四段外部浏览器 → 固定公网地址 → Password-XL Web先本地跑通再考虑远程比一开始就把密码库暴露出去更稳妥。3 在飞牛OS创建Docker目录先打开文件管理创建一个用于保存Docker应用的目录进入详细信息复制目录的原始路径后面的终端命令需要使用这个实际路径。4 开启飞牛OS的SSH进入系统设置 → SSH → SSH功能启用然后通过终端SSH连接NAS并切换到root环境。进入刚才复制的目录# 将 /vol1/1000/docker 换成你实际的文件夹路径cd/vol1/1000/docker这里/vol1/1000/docker只是这次环境里的实际路径。使用时按自己的飞牛目录替换。5 创建Password-XL项目目录执行mkdirpassword-xlcdpassword-xl然后创建后端数据目录mkdir-ppassword-xl-service/password-xl-data继续进入后端服务目录cdpassword-xl-service完成以后整个项目会有比较清晰的目录结构。6 创建用户列表配置编辑vipassword-xl.toml按照需要写入用户[[user]]usernameu1password123456[[user]]usernameu2password123455这里的u1 / u2以及示例密码都是这次配置内容。真正长期使用时账号和密码应该按自己的实际用户规划不要把示例凭据直接当成长期密码。7 返回项目根目录执行cd..下一步开始创建Docker Compose文件。8 编写docker-compose.yml创建文件vidocker-compose.yml写入services: password-xl-web: image: huangypeng/password-xl-web container_name: password-xl-web restart: unless-stopped ports: -8080:80# 左侧的8080前端端口可自由修改password-xl-service: image: huangypeng/password-xl-service container_name: password-xl-service restart: unless-stopped ports: -8081:8080# 左侧的8081后端端口可自由修改volumes: - ./password-xl-service:/password-xl-service这套Compose里有两个服务。前端password-xl-web端口8080:80后端password-xl-service端口8081:8080同时把./password-xl-service挂载到容器里的/password-xl-service9 启动Password-XL容器执行dockercompose up-d然后查看实时日志dockercompose logs-f如果两个容器都正常运行就可以进入浏览器验证。10 先验证本地8080页面浏览器访问http://飞牛IP:8080这次示例http://192.168.42.147:8080页面能够正常打开以后可以确认浏览器 → 飞牛8080 → Password-XL Web已经跑通。11 Web页面和后端服务是两层这里不要把8080和8081混在一起。8080Web前端8081Password-XL后端服务进入Password-XL以后还需要把前端连接到自己的后端服务。12 登录私有服务点击私有服务并登录。服务地址示例http://192.168.88.130:8081用户名和密码使用前面password-xl.toml里配置的内容。这一步完成以后Web前端才真正接到自己的Password-XL后端。13 保存初始化提示信息登录以后页面会出现相应提示这类信息建议妥善保存。密码管理工具一旦涉及恢复、迁移或重新登录初始化阶段给出的信息往往比普通Web应用更重要。14 再设置主密码继续设置主密码这里可以选择标准密码手势密码。主密码和前面的服务用户密码不是一回事。前面的用户凭据负责连接私有服务。主密码则用于进入密码库。15 登录密码库设置完成以后进入现在Password-XL已经不只是“页面打开”而是后端连接完成用户认证完成主密码完成密码库可以进入。16 离开页面后会再次要求主密码页面切换后重新回来会再次要求输入主密码。对密码管理工具来说这类重新验证机制比普通后台更有意义。因为即使浏览器页面一度处于登录状态也不能默认任何拿到设备的人都应该直接看到密码库。17 查看设置项进入设置可以继续按自己的使用习惯调整相关选项。这类设置建议在真正录入大量账号前先看一遍。18 新增一条密码记录点击添加密码保存以后能够看到新记录说明这次最核心的功能已经验证密码数据可以录入并在自己的Password-XL实例里查看。到这里本地阶段已经完成。19 先明确一个边界本地部署和远程访问是两件事如果只在家庭局域网或公司内网里使用Password-XL到这里已经够了。此时服务只需要在内网访问。如果确实有出门查密码其他设备访问异地使用才需要继续给8080增加外部入口。所以“自托管”不等于一定要公网开放。20 密码库一旦远程访问入口要比普通Web应用更谨慎Password-XL保存的是账号凭据。因此外部访问前至少要明确不共享主密码不共享服务账号不使用过于简单的用户密码不把固定访问地址公开NAS系统本身也要保持账号隔离只给真正需要的设备和用户使用。cpolar负责网络入口。Password-XL仍然负责实际的密码库和登录逻辑。21 在飞牛NAS上安装cpolar先确认SSH已经开启通过SSH进入飞牛NAS执行安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后查看服务sudosystemctl status cpolar22 进入cpolar管理页面通过飞牛主机IP加9200端口进入管理界面后面的随机地址和固定地址都从这里配置。23 给Password-XL的8080创建HTTP隧道创建隧道时填写隧道名称password协议HTTP本地地址8080域名类型随机域名地区China Top这里映射的是Password-XL Web前端8080。24 先用随机公网地址测试创建以后进入在线隧道列表然后从外部浏览器访问页面能够正常打开以后可以确认外部浏览器 → 公网地址 → 飞牛8080 → Password-XL已经打通。25 公网页面能打开只是网络验证对密码管理工具来说这一步不能只理解成“远程访问成功。”更准确的是外部网络已经能够到达登录页面。真正能不能进入密码库仍然需要私有服务用户对应密码主密码。网络入口和密码库认证是两层。26 随机地址适合先验证如果只是测试随机地址已经足够。但长期使用Password-XL时每次重新找地址会比较麻烦。所以后面继续配置固定二级子域名。27 保留固定二级子域名进入预留页面这次示例使用password实际名称按自己的账号和可用域名设置。28 把原来的password隧道改成固定地址进入隧道列表编辑对应隧道。修改域名类型二级子域名Sub Domain填写已保留名称地区China Top。更新29 查看固定地址是否生效回到在线隧道列表可以看到原来的随机地址已经切换成固定二级子域名。30 最后再从外部设备访问一次使用固定地址页面能够正常打开以后固定入口也已经跑通。到这里整套链路变成外部设备 → 固定地址 → Password-XL Web → 私有服务 → 主密码 → 密码库。31 这套方案真正重要的是“自己掌握运行位置”自托管最大的实际变化是Password-XL运行在自己的飞牛NAS上。服务、Docker目录、配置文件和数据都由自己维护。但这不代表只要“放在自己NAS”就自动等于绝对安全。真正长期使用时仍然取决于NAS账号Docker配置Password-XL用户主密码外部访问入口自己的维护习惯。所以更准确的理解是运行和存储位置自己可控但安全仍然需要自己维护。32 这篇最终跑通的完整链路部署飞牛OS → Docker Compose → Password-XL端口8080 Web 8081 Service使用服务登录 → 主密码 → 新增密码远程外部浏览器 → 公网地址 → 8080 → Password-XL固定入口固定二级子域名 → Password-XL Web实际完成Docker目录Password-XL项目目录用户配置Compose前后端容器本地访问私有服务登录主密码新增密码cpolar随机公网地址固定二级子域名。这样整套自托管密码库就从“部署起来”继续走到了“本地可用、外部可访问”。总结这次真正跑通的是一套完整的Password-XL自托管链路飞牛OS负责承载Docker8080提供Web页面8081提供后端私有服务再通过用户配置和主密码进入自己的密码库。从登录私有服务到设置主密码再到新增一条密码记录说明这套环境已经不仅是容器启动成功而是完成了最基本的实际使用验证。远程部分则应该放在本地功能之后。只有确实需要异地使用时再给8080配置外部入口而固定地址解决的是访问稳定不会替代Password-XL本身的用户认证和主密码保护。密码管理工具和普通自建页面最大的不同就是数据价值更高。服务放在自己的NAS上以后运行位置更可控但账号、主密码、NAS权限和远程入口仍然需要长期维护这几层缺一不可。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑