什么是开发隧道?
开发人员隧道允许开发人员跨 Internet 安全地共享本地 Web 服务。 使你能够将本地开发环境与云服务连接,与同事共享正在进行的工作或帮助构建 Webhook。 开发隧道适用于临时测试和开发,不适用于生产工作负荷。
好处
- 默认情况下安全 - 默认情况下,创建开发隧道只能使用 Microsoft、Microsoft Entra ID 或 GitHub 帐户访问。
- 持久 URL - 根据需要保留相同的开发隧道 URL。
- 支持多个同时端口 - 同时在单个开发隧道上托管多个端口。
- 全局服务可用性 - 开发隧道服务全局可用。 开发隧道会自动在最近的可用区域中创建。
- 隧道检查 - 检查熟悉的接口、浏览器 DevTools 中的开发隧道流量。
术语
在使用 CLI 之前,最好了解在整个过程中引用的以下术语:
- 隧道 - 通过中继服务提供对一台主机的安全远程访问。 开发隧道具有唯一的 DNS 名称、多个端口、访问控制和其他关联的元数据。
- 隧道中继服务 - 通过云服务促进开发隧道主机和客户端之间的安全连接,即使主机可能位于防火墙后面且无法直接接受传入连接。
- 隧道主机 - 接受通过开发隧道中继服务与开发隧道的客户端连接,并将这些连接转发到本地端口。
- 隧道端口 - 允许通过开发隧道的 IP 端口号(1-65535)。 开发隧道仅允许在已添加的端口上建立连接。 一个开发隧道可以支持多个端口,而开发隧道中的不同端口可能使用不同的协议(HTTP、HTTPS 等),并且可能有不同的访问控制。
- 隧道连接 - 开发隧道客户端与开发隧道主机之间的数据包双工流,通过开发隧道端口。 开发隧道连接通常链接到任一端的 TCP 连接,但也可能支持基于 UDP 的协议。 一个隧道端口可以支持多个同时连接。
- 隧道客户端 - 通过开发隧道启动到主机的远程连接。 (虽然主机可能与开发隧道服务有“客户端”关系,但在该上下文中避免术语以减少混淆。
快速入门
安装
Windows
winget install Microsoft.devtunnel
winget upgrade Microsoft.devtunnel
Invoke-WebRequest -Uri https://aka.ms/TunnelsCliDownload/win-x64 -OutFile devtunnel.exe
.\devtunnel.exe -h
直接下载链接:
x64-https://tunnelsassetsprod.blob.core.windows.net/cli/devtunnel.exe
使用以下命令运行命令devtunnel,./devtunnel而不是:
- 按 Windows 键并键入“环境变量”。
- 选择“编辑系统环境变量”选项。
- 选择“环境变量...”按钮。
- 在“系统变量”表中可以看到两个表,找到并选择“PATH”变量。
- 选择“编辑...”按钮。
- 此时应弹出一个窗口。 选择“新建”按钮。
- 键入 devtunnel.exe 文件的目录路径(目录意味着从路径中排除文件名。
- 若要查找目录字符串,可以导航到 PowerShell 或终端中的目录,然后键入“pwd”)
- 在所有打开的窗口中选择“确定”,然后重启命令提示符。
Macos
brew install --cask devtunnel
curl -sL https://aka.ms/DevTunnelCliInstall | bash
直接下载链接:
arm-https://tunnelsassetsprod.blob.core.windows.net/cli/osx-arm64-devtunnel-zip
x64-https://tunnelsassetsprod.blob.core.windows.net/cli/osx-x64-devtunnel-zip
Linux
curl -sL https://aka.ms/DevTunnelCliInstall | bash
直接下载链接:
x64-https://tunnelsassetsprod.blob.core.windows.net/cli/linux-x64-devtunnel
登录
若要启动开发隧道,首先需要使用 Microsoft Entra ID、Microsoft 或 GitHub 帐户登录。 开发隧道不支持匿名托管隧道,有关详细信息,请参阅 CLI 命令参考文档。
devtunnel user login
主机
登录后,可以使用命令开始托管开发隧道host 。 在以下示例中,开发隧道将:
- 在响应发送到它的请求的端口8080上运行本地服务器。
- 为 Internet 可访问的本地端口8080托管开发隧道。
# Start a http server on port 8080
devtunnel echo http -p 8080
# Tunnel port 8080
devtunnel host -p 8080
成功的host命令将类似于以下示例的内容输出到控制台。
Connecting to host tunnel relay wss://usw2-data.rel.tunnels.api.visualstudio.com/api/v1/Host/Connect/<tunnel_id>
Hosting port 8080 at https://<tunnel_id>.usw2.devtunnels.ms:8080/, https://<tunnel_id>-8080.usw2.devtunnels.ms/ and inspect it at https:/<tunnel_id>-8080-inspect.usw2.devtunnels.ms/
Ready to accept connections for tunnel: <tunnel_id>
打印的文本包含:
- tunnel_id- 开发隧道的 ID。
- 公共 URL - 此示例中可用于访问开发隧道https://<tunnel_id>.usw2.devtunnels.ms:8080/的 URL。
- 检查 URL - 在此示例中,可用于检查通过开发隧道https:/<tunnel_id>-8080-inspect.usw2.devtunnels.ms/发送的流量的 URL。
连接
若要连接到开发隧道,需要:
- 在 Web 浏览器中访问此 URL。
- 使用用于托管开发隧道的同一帐户登录。 默认情况下,开发隧道只能访问你。
祝贺你! 现在可以通过 Internet 访问本地服务。
官网地址(https://learn.microsoft.com/zh-cn/azure/developer/dev-tunnels/)