news 2026/10/18 7:17:03

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

作者头像

张小明

前端开发工程师

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

前言

密码管理这类工具和普通自建应用不太一样:一旦真正用起来,里面放的不是影视库、照片或测试数据,而是账号、登录凭据和个人服务入口。也正因为如此,很多人更愿意把密码库放在自己的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-xl&&cdpassword-xl

然后创建后端数据目录:

mkdir-ppassword-xl-service/password-xl-data

继续进入后端服务目录:

cdpassword-xl-service

完成以后,整个项目会有比较清晰的目录结构。

6 创建用户列表配置

编辑:

vipassword-xl.toml

按照需要写入用户:

[[user]]username="u1"password="123456"[[user]]username="u2"password="123455"

这里的:

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-service

9 启动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混在一起。

8080:

Web前端

8081:

Password-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 cpolar

22 进入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负责承载Docker,8080提供Web页面,8081提供后端私有服务,再通过用户配置和主密码进入自己的密码库。

从登录私有服务到设置主密码,再到新增一条密码记录,说明这套环境已经不仅是容器启动成功,而是完成了最基本的实际使用验证。

远程部分则应该放在本地功能之后。只有确实需要异地使用时,再给8080配置外部入口;而固定地址解决的是访问稳定,不会替代Password-XL本身的用户认证和主密码保护。

密码管理工具和普通自建页面最大的不同,就是数据价值更高。服务放在自己的NAS上以后,运行位置更可控,但账号、主密码、NAS权限和远程入口仍然需要长期维护,这几层缺一不可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 7:16:14

Docker入门与实战——高级网络功能

高级网络功能1、启动与配置参数1.1、网络启动过程1.2、网络相关参数2、配置容器DNS和主机名2.1、相关配置文件2.2、容器内修改配置文件2.3、通过参数指定3、容器访问控制3.1、容器访问外部网络3.2、容器之间的访问3.3、防火墙规则4、映射容器端口到宿主机的实现4.1、容器访问外…

作者头像 李华
网站建设 2026/10/18 7:16:07

从零搭建轻量级任务执行器rea:顺序执行、失败重试与状态归档

1. 从“rea”这个标题说起:一个被低估的缩写背后藏着什么第一次看到“rea”这个标题的时候,我承认自己愣了几秒。没有正文,没有关键词,没有摘要,就孤零零三个字母。这种极简到近乎“空白”的输入,反而让我觉…

作者头像 李华
网站建设 2026/10/18 7:15:23

火影忍者手游迪鲁达技能介绍 火影忍者手游迪鲁达厉害吗

火影忍者手游迪鲁达依托全身科学忍具打造空中拉扯打法,攻防一体的双段技能让她在决斗场有着灵活的博弈空间。火影忍者手游迪鲁达拥有两套奥义形态,熟练掌握组合技的触发时机,才能把这个忍者的上限打出来,想要反复练习连招与预判走…

作者头像 李华
网站建设 2026/10/18 7:14:12

23.RK3588 底板电源设计要点:PMIC、上电时序与常见故障

RK3588 底板电源设计要点:PMIC、上电时序与常见故障摘要:核心板选型敲定后,底板电源设计是自研硬件第一个容易踩坑的环节。时序不对、带载不足、纹波超标,症状都可能表现为"系统起不来"或"外设莫名异常"。本文…

作者头像 李华
网站建设 2026/10/18 7:13:23

非标装备装配周期长,改善为何重复发生

本文以非标装备企业的精益改善场景为例,结合一线落地经验,回答一个很多制造管理者都碰到的问题:精益项目一轮接一轮,为什么同类问题还在反复发生?在不少制造企业,6S、价值流分析、Kaizen、质量攻关、工时优…

作者头像 李华
网站建设 2026/10/18 7:10:41

手写Python网络协议实验:HTTP解析、UDP构造与TCP可靠传输模拟

简介:这是一份源自黑龙江大学计算机网络课程的实验报告与Python源码包,适合正在学习网络原理、需要完成类似实验或复习协议实现的学生。包内共有二十四个文件,以十一个Python脚本为主,另有五份Word实验报告、四个HTML辅助页面及说…

作者头像 李华