用途
Huawei Cloud DevBridge Development Tunnel 用于创建和管理 DevBridge 开发隧道,通过华为云中继基础设施,将本地开发服务(Web 服务器、API、调试端点)安全地暴露给远程设备,而无需开放公网入站端口。Host 与 Connect 两端均向中继服务发起出站连接,因此托管设备不需要公网入站端口。
典型使用场景包括:与团队成员进行远程调试和集成测试;向相关方分享开发中的网页;在本地开发期间接收 webhook 回调;从移动设备或其他机器访问本地服务;临时暴露本地 API 用于演示。
主要能力
- 隧道管理:创建、列出、查看、更新、删除隧道,删除全部隧道,设置/清除默认隧道,查看配额与用量。
- 端口管理:创建、列出、查看、更新、删除端口,支持 http / https / auto 协议,可配置匿名访问策略。
- 托管与连接:托管隧道已配置端口,或创建临时隧道并立即托管;从远程设备连接隧道并建立本地端口映射。
- 诊断:启动本地 HTTP echo 服务验证隧道链路,向 URI 发送 HTTP ping 并输出状态码与延迟,支持调试日志。
- 动态命令适配层:所有隧道/端口/托管操作必须通过 scripts/devbridge_cmd.sh 中定义的 db_* 包装函数执行,而非直接调用 devbridge 命令(仅 devbridge auth 与 devbridge version 例外)。适配层在执行前通过 devbridge <command> --help 动态发现支持的参数,并在执行后解析 cobra 错误,自动恢复重命名参数、新增必填参数或重命名命令,使技能在 v0.2.x 内与版本无关。
使用方式
前置条件:Bash 与 curl,或 PowerShell 5.1+;x86-64 或 ARM64 架构;可访问 DevBridge 安装源;对 ~/.huawei 目录有写权限。
初始化(不向用户请求确认,db_init 静默自动完成安装、升级、鉴权检查与自动登录):
source <skill_directory>/scripts/devbridge_cmd.sh
db_init
快速创建流程(用户仅说“创建隧道”时):
source <skill_directory>/scripts/devbridge_cmd.sh
db_init
TUNNEL_NAME="dev-tunnel-$((RANDOM % 9000 + 1000))"
TUNNEL_ID=$(db_create "$TUNNEL_NAME" -d "开发隧道" -e 72)
db_port_create "$TUNNEL_ID" -p 8080 --protocol auto
db_host "$TUNNEL_ID"
TUNNEL_URL=$(db_tunnel_url "$TUNNEL_ID")
echo "Tunnel ID: $TUNNEL_ID"
echo "Tunnel URL: $TUNNEL_URL"
完整流程:安装或更新 CLI → 加载适配层并鉴权 → 创建隧道 → 配置端口 → 托管本地服务 → 从远程设备连接 → 清理。
安装 CLI 示例:
devbridge version
curl -fsSL https://gitcode.com/CloudDeveloperDepartment/devbrige/releases/download/latest/install.sh -o /tmp/devbridge_install.sh
bash /tmp/devbridge_install.sh -s
devbridge version
鉴权示例:
export PATH="$HOME/.huawei/bin:$PATH"
source <skill_directory>/scripts/devbridge_cmd.sh
db_init
devbridge auth status 2>/dev/null || devbridge auth login --api-key "$HW_API_KEY"
创建隧道与端口:
db_create <name> -d "<description>" -e <expiration>
db_port_create <tunnelId> -p <port> --protocol <protocol>
托管与连接:
nohup python3 -m http.server <port> > /tmp/devbridge-service.log 2>&1 &
db_host <tunnelId>
TUNNEL_URL=$(db_tunnel_url <tunnelId>)
echo "$TUNNEL_URL"
db_connect <tunnelId>
清理:
db_processes
db_process_stop <pid>
db_delete <tunnelId>
默认参数
- 隧道名称:dev-tunnel-<random>(如 dev-tunnel-3847),最大 128 字符。
- 描述:开发隧道,仅允许中文字符、数字、字母(不含空格),最大 64 字符。
- 过期时间:72 小时(CLI 默认),范围 1–720 小时。
- 端口:8080,范围 1–65535。
- 协议:auto(可选 http / https / auto)。
- 匿名访问:默认拒绝(--deny-anonymous 为 CLI 默认);仅在用户明确要求或内容明确公开时使用 -a 允许匿名访问。
版本与鉴权要求
- CLI 版本:v0.2.x(从官方渠道安装,如 0.2.1-release / 0.2.2-release)。
- 鉴权:API Key(devbridge auth login --api-key 或环境变量 HW_API_KEY)或交互式登录。v0.2.x 仅支持 API Key,--access-key / --secret-key / --security-token(AK/SK)参数已移除。API Key 在 DevBridge 管理页创建:https://devstation.connect.huaweicloud.com/space/devbridge/apikey。
- 隧道域名:新集群域名(如 devbridge-s2.hwtunnel.com),以 devbridge host 实际输出的 Tunnel URL 为准。
- 旧版本:v0.1.x 不受支持,旧域名已无法连接,必须使用 v0.2.x 并重新创建隧道。
限制与注意事项
- 中继域名随集群变化,严禁按文档拼接 URL,一律用 db_tunnel_url <id> 读取权威地址。
- 端口更新后需重启 host:若 host 进程已在运行,使用 devbridge port update 修改端口配置后,运行中的 host 进程不会自动感知变化,需先停止旧 host 进程(db_process_stop <pid>),再重新 db_host <tunnelId>。
- 非交互/无头环境安装脚本需传 -s(静默),否则可能因读取 /dev/tty 提示“overwrite?”而失败。
- GitCode 私有仓库安装:npx skills add 不支持 GitCode token 认证,需先 git clone 再手动复制。
- 隧道创建流程零确认,唯一例外是隧道名称冲突时需用户选择是否复用现有隧道。
- 破坏性操作(db_delete、db_delete_all、db_port_delete)直接执行,不请求确认。
- 鉴权失败时需检查 auth status、验证 API Key 是否过期/删除,并暂停执行等待用户确认凭据更新后重试。
- 文档中未提供具体收费、价格信息。