把 DevBridge 隧道挂成常驻服务:2048 小站的可用性运维记录云计算云计算云计算

举报
yd_264066207 发表于 2026/10/25 11:22:02 2026/10/25
【摘要】 DevBridge 隧道的可用性运维:有效期参数、systemd 常驻、无 systemd 时的守护脚本,以及 404/502 三种返回码的排查顺序。

问题

用 DevBridge 把本地 8080 端口暴露成 https 域名后,最容易出问题的不是怎么建隧道,而是它能不能一直活着。进程一断,域名就 502;隧道一过期,域名直接作废。作品链接一旦失效,后续任何校验都会失败。

建隧道时就把有效期拉长

devbridge create 2048hw -d "华为云闯关2048" -e 720
devbridge port create <tunnel-id> -p 18080 --protocol http -a
devbridge host <tunnel-id> -p 18080

-e 720 是 720 小时(30 天)有效期,默认很短。端口那步的 -a 是允许匿名访问,漏了会变成网关中转页。

进程保活:systemd 方案

cat >/etc/systemd/system/devbridge-host.service <<'UNIT'
[Unit]
Description=DevBridge host (2048)
After=network-online.target

[Service]
ExecStart=/root/.huawei/bin/devbridge host <tunnel-id> -p 18080
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
UNIT
systemctl daemon-reload && systemctl enable --now devbridge-host

隧道客户端自带 Auto reconnect,进程活着就会自己重连;systemd 只负责把进程拉起来。两者配合基本不用管。

没有 systemd 时的兜底脚本

容器环境里常常没有 systemd,用一段死循环守护也能顶住:

while true; do
  pgrep -f "devbridge host" >/dev/null || \
    setsid nohup devbridge host <tunnel-id> -p 18080 >>/tmp/dbhost.log 2>&1 &
  pgrep -f "http.server 18080" >/dev/null || \
    setsid nohup python3 -m http.server 18080 --bind 127.0.0.1 >>/tmp/srv.log 2>&1 &
  sleep 60
done

关键点是 setsid nohup:让子进程脱离当前会话,否则守护脚本退出时会把服务一起带走。

怎么确认真的活着

curl -s -o /dev/null -w '%{http_code}\n' https://<id>-<port>.devbridge-s2.hwtunnel.com/
curl -s https://<id>-<port>.devbridge-s2.hwtunnel.com/ | grep -o '<title>[^<]*'

只看状态码不够,建议同时抓标题,确认拿到的不是中转页或错误页。

常见返回码

  • 404 tunnel not found:端口没开匿名访问,重跑 port create ... -a;
  • 502:host 进程没连上,或者本地服务挂了,先 curl 127.0.0.1:18080;
  • 200 但内容不对:本地服务起来了但根目录不对,检查 http.server --directory。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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