免费内网穿透哪家强?没公网 IP 靠 DevBridge,自家小主机自建 Vaultwarden 密码管理器,真香

举报
赛博大妈 发表于 2026/11/08 09:25:17 2026/11/08
【摘要】 家里的机器没有公网 IP,又想让手机随时同步自建的 Vaultwarden?华为云开发者空间的 DevBridge 开发隧道,一条命令把本地端口变成带 HTTPS 的公网地址,免费额度每月 50GB 流量、5M 带宽,个人密码库绰绰有余。这篇记录完整搭法,以及把它用稳、用安全要注意的几处细节。

自建密码管理器,最难的一步往往不是部署,而是"出门怎么连回家"。

Vaultwarden 本身很轻,一台旧笔记本、一个 NAS 就能跑。可家宽大多没有公网 IP,传统做法要么买台云服务器做 frp 中转,要么折腾 DDNS 加端口映射,还得自己弄证书——Bitwarden 网页端依赖浏览器的 WebCrypto,必须跑在 HTTPS 下,没证书连网页都打不开。

华为云开发者空间里的 DevBridge 开发隧道,正好把这几件事一次解决了。

DevBridge 解决了什么

DevBridge 的思路是"反向托管":本地机器主动连出去,网关把公网请求转回来,所以本地不需要开任何入站端口。托管成功后会拿到一个这样的地址:

https://<tunnelId>-<port>.devbridge-s2.hwtunnel.com

有三点我觉得特别适合密码库这种场景:

  1. 自带 HTTPS 子域名。证书由网关负责,Vaultwarden 只管在本地跑 HTTP,WebCrypto 的要求天然满足,不用自己申请和续期证书。
  2. 免费额度够用。每月 50GB 流量、5M 带宽,网关在广州,国内访问延迟友好。这个额度跑密码库有多富余,后面单独算一笔账。
  3. 开发者空间自带插件。在开发者空间里不用另装,自己的机器装 CLI 也是一行脚本的事。

和几家常见免费隧道比一比

做之前我把国内几家常用的内网穿透免费档翻了一遍,数据取自各家官网 2026 年 11 月的说明,以官网实时为准:

服务 免费带宽 免费流量 免费隧道数 地址与 HTTPS
DevBridge 5M 50GB/月 10 条 固定 hwtunnel.com 子域名,自带 HTTPS,持久隧道最长 720 小时可续
cpolar 1Mbps 不限 4 条 随机二级域名,约 24 小时一换
NATAPP 1M 2G/月 2 条 随机域名,不定时强制更换,免费档不支持 HTTPS
SakuraFrp 10Mibps 5GiB/月,签到可加 2 条 需实名;内地节点建站要备案域名
花生壳 较低(免费档) 5G/月 1 条 送 1 年壳域名,需实名

看下来各家各有长处:SakuraFrp 带宽最大,cpolar 不限流量。但放到"手机长期同步密码库"这个场景,最要紧的是地址不变和自带 HTTPS——地址一变,所有客户端都得重新填服务器;没有 HTTPS,Bitwarden 网页端直接用不了。这两条同时满足、流量又宽裕的,免费档里 DevBridge 最省心。

为什么这套组合够用:5M 跑密码库的账

5M 听着不大,换算下来约 625KB/s。密码库恰好是对带宽最不挑的自托管服务之一,原因有三层。

一是数据量小。 密码条目本质是加密后的短文本。以几百条记录的个人库估算,一次完整同步返回的数据大约是几百 KB(估算,随条目数和附件变化),5M 下不到一秒。真正大的只有网页端第一次加载的前端资源,加载后浏览器会缓存,之后不再重复拉取。

二是访问频率低。 手机、电脑、浏览器插件三端各自定时或在改动时同步,按每端每天几十次、每次几百 KB 粗算,一个月也就几 GB(估算),离 50GB 的额度很远。换句话说,流量额度是按"小网站"给的,跑密码库属于富余使用。

三是断了也不致命。 Bitwarden 系客户端会在本地保留一份加密缓存,隧道临时掉线时,已有密码照样能查、能填,受影响的只是新改动的同步。这让"免费隧道不保证 SLA"这个短板,在密码库场景里被大大削弱。

再往下想一层:为什么偏偏是"隧道 + 密码库"而不是"隧道 + 网盘"?因为瓶颈不同。网盘、相册、视频这类服务吃的是持续带宽,5M 会直接卡住体验;密码库吃的是在线率、固定地址和 HTTPS,这三样恰好是 DevBridge 免费档的长处。服务的需求和隧道的优势对上了,这才是"最优解"的来由,而不是单纯因为免费。

免费档里白送的安全能力

算完带宽再算安全,DevBridge 免费档里有几样东西,单独找方案搭要花不少功夫,这里是直接送的(均出自官方文档):

  • 源站不暴露。 Host 主动向中继发起出站连接,本机不用开任何公网入站端口。扫描器只能扫到华为的网关,扫不到你家的宽带 IP。自己搭 frp 或做端口映射,这一层要靠防火墙自己守。
  • 现成的 HTTPS 证书。 隧道地址自带平台签发的证书,不用申请、不用续签,也不怕忘记续期导致客户端连不上。
  • 按端口的访问策略。 每个端口单独设"禁止匿名 / 允许匿名",默认是禁止。同一条隧道里,密码库端口开放、调试端口锁死,可以分开管。
  • 分权的短期令牌。 Host 令牌只能托管、Connect 令牌只能连接,且有效期固定、较短,不跟着隧道有效期走。令牌就算泄露,能干的事和能用的时间都有限。
  • 账号权限是天然的一道墙。 建隧道、开端口、改匿名策略、签发令牌,全都要先用华为云账号登录或持 API Key 才能操作;没开匿名的端口,访问者也得有 DevBridge 身份。也就是说,"门开不开、开多大"只有你自己的账号说了算,别人拿到地址也改不了策略。
  • 身份与集群隔离。 隧道归属登录身份的工作空间,Host、Connect 和网关必须同属一个集群,避免跨集群串访问。
  • 本地凭据受保护存储,断线自动重连。 登录凭据存在本地受保护的凭证存储里;Host、Connect 网络中断后会自动重连,家里断一下网不用手动拉起。

自己用 VPS 搭一套 frp 中转,要的是一台机器、一张证书、一套防火墙规则,外加持续的维护时间。这些在这里都是零成本,这才是我说"赚到"的地方。

要说明的是,官方文档里没有写隧道自带 WAF、抗 DDoS 之类的增值防护,所以本文不把它算进来。应用层的防护,靠的仍是第四步里 Vaultwarden 自身的加固。

安全怎么看:把风险一层层拆开

密码库挂公网,第一反应是"危险"。与其笼统地怕,不如按链路拆成四层,看每层谁在防、防到什么程度。

第一层:数据本身。 Bitwarden 协议是端到端加密:密码库在客户端用主密码派生的密钥加密后才上传,登录时发给服务器的也只是主密码的派生哈希,不是主密码本身。所以服务端存的是密文,主密码从不离开你的设备。这是整套方案最硬的一层,也是密码库比很多"明文后台"更适合挂在隧道上的根本原因。

第二层:传输链路。 访问地址是平台签发证书的 HTTPS 域名,客户端到网关这一段是加密的。需要说清楚的是:证书属于平台,TLS 大概率在网关处终止(推断,官方文档未明说),也就是说网关理论上能看到解开 HTTPS 后的请求。但结合第一层,它能看到的是请求结构和密文,看不到你的明文密码。把隧道网关当成"可信度一般的中转"来设计,结论依然成立。

第三层:入口暴露。 这是真正要花心思的一层。-a 开匿名后,地址就是公网可达的,而地址里的隧道 ID 不是秘密,要默认它会被扫到。风险集中在三处:有人来注册新账号、有人对登录接口撞库、有人摸到管理后台。对应的门锁在第四步:关注册、主密码设长并开两步验证、不开管理后台。Vaultwarden 自带登录限速(LOGIN_RATELIMIT_* 系列参数),默认就开着,能拖慢暴力尝试。

第四层:平台与可用性。 DevBridge 免责声明(2026-08-15 生效)写明它面向开发测试,不承诺用于生产核心系统和关键数据。这一条要正视,而不是绕开:本文的定位是个人自用的折腾方案,数据始终在本地,隧道只是一条随时可替换的通道。落到操作上就是两件事:/vw-data 定期备份到别处;把隧道当成随时可替换的通道,真要给家人或团队当正式服务,还是上云服务器更合适。

拆完再看,最大的风险不在"免费隧道"本身,而在第三层的门有没有锁好,这部分完全掌握在自己手里。

第一步:本地跑起 Vaultwarden

docker run -d --name vaultwarden \
  -v /vw-data/:/data/ \
  -e DOMAIN="https://<tunnelId>-8080.devbridge-s2.hwtunnel.com" \
  -e SIGNUPS_ALLOWED=true \
  -p 127.0.0.1:8080:80 \
  --restart unless-stopped \
  vaultwarden/server:latest

两个细节:端口只绑 127.0.0.1,局域网里也不暴露,入口只留隧道一个;DOMAIN 先留着,等拿到隧道 ID 再回来填,它影响附件下载、邮件里的链接等。

第二步:建一条长期隧道

装 CLI 并登录(自己的机器上执行,开发者空间可跳过安装):

curl -fsSL https://tools-artifact.developer.huaweicloud.com/sharedata/devbridge/install.sh | bash
export PATH="$HOME/.huawei/bin:$PATH"
devbridge auth login

devbridge host -p 8080 能直接起一条临时隧道,但默认有效期 72 小时,地址也会跟着变,不适合给手机长期用。密码库要用持久隧道,有效期拉满 720 小时:

devbridge create vault -d "vaultwarden" -e 720
devbridge port create <tunnelId> -p 8080 --protocol http -a
devbridge host <tunnelId>

这里的 -a 要说清楚。DevBridge 端口默认禁止匿名访问,访问者需要先有 DevBridge 身份,这对调试页面是很好的默认保护。但 Bitwarden 的手机、桌面客户端和浏览器插件没法完成 DevBridge 这一步认证,想让它们直接同步,这个端口只能开匿名。

官方文档建议包含用户数据的服务禁止匿名,这里属于权衡后的例外:底气来自前面安全一节说的端到端加密,代价是门口的保安换成了 Vaultwarden 自己,所以第四步的加固一定要做。

拿到隧道 ID 后,把 DOMAIN 改成真实地址,重建一下容器。

第三步:让它一直在线

devbridge host 是前台进程,正式用写成 systemd 服务,断线自己会重连,挂了也会被拉起:

[Unit]
Description=DevBridge host for Vaultwarden
After=network-online.target docker.service

[Service]
ExecStart=/root/.huawei/bin/devbridge host <tunnelId>
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

有效期也别忘了。官方文档写明,修改隧道或端口会刷新到期时间,所以加一条每周的定时任务续一下即可:

0 4 * * 1 /root/.huawei/bin/devbridge update <tunnelId> -e 720

720 小时是 30 天,每周续一次,留足余量。

第四步:开匿名之后的加固

这一步决定了这套方案安不安全,我按优先级排:

  • 注册完自己的账号就关注册:SIGNUPS_ALLOWED=false,重建容器。地址是公网可达的,不关就等于谁都能来开号。
  • 管理后台:用不上就别设 ADMIN_TOKEN,后台默认就是关的;要用就用 argon2 哈希形式的 token,不放明文。
  • 主密码设长,账号开两步验证。
  • 地址不外传。隧道地址就是门牌号,别贴进群聊和截图里。

小结

没有公网 IP、不想买中转机、不想管证书,这三个痛点 DevBridge 一条隧道全包了:自带 HTTPS 域名,免费额度对密码库来说用不完,开发者空间里开箱即用。真正需要花心思的只有两处——用持久隧道并定期续期,以及开匿名后把 Vaultwarden 自己的门锁好。做到这两点,旧电脑上的密码库也能随身带着走。


使用声明

DevBridge 官方文档写明:开发隧道面向开发和测试工作流,官方建议在测试环境使用。使用时仍需遵守以下边界:

  • 不在隧道中传输不必要的生产数据;
  • 不为管理接口开放匿名访问;
  • 不在脚本、日志或代码仓库中保存 API Key 和隧道令牌;
  • 不把短期令牌当作长期身份凭证;
  • 完成共享后停止 Host,并删除不再使用的隧道。

本文是个人自用场景的实践记录,请结合自身情况评估风险,数据务必做好备份。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。