当您向 Cloudflare Tunnel 添加已发布的应用程序路由时,您正在指示 Cloudflare 将对公共主机名的请求代理到在 cloudflared 背后私有运行的服务。
下表列出了您可以路由到公共主机名的服务类型。非 HTTP 服务需要在客户端安装 cloudflared,最终用户才能进行连接。
| 服务类型 | 描述 | service 示例值 |
|---|---|---|
| HTTP | 通过 HTTP 将传入的 HTTPS 请求代理到您的本地 Web 服务。 | http://localhost:8000 |
| HTTPS | 直接将传入的 HTTPS 请求代理到您的本地 Web 服务。您可以为自签名证书禁用 TLS 验证。 | https://localhost:8000 |
| UNIX | 与 HTTP 相同,但使用 Unix 套接字(socket)。 | unix:/home/production/echo.sock |
| UNIX + TLS | 与 HTTPS 相同,但使用 Unix 套接字(socket)。 | unix+tls:/home/production/echo.sock |
| TCP | 通过 WebSocket 连接流传输 TCP。最终用户运行 cloudflared access tcp 来进行连接。对于长连接,请改用客户端到隧道(Client-to-Tunnel)。 |
tcp://localhost:2222 |
| SSH | 通过 WebSocket 连接流传输 SSH。最终用户运行 cloudflared access ssh 来进行连接。对于长连接,请改用客户端到隧道(Client-to-Tunnel)。 |
ssh://localhost:22 |
| RDP | 通过 WebSocket 连接流传输 RDP。有关更多信息,请参阅使用客户端 cloudflared 连接到 RDP。 | rdp://localhost:3389 |
| SMB | 通过 WebSocket 连接流传输 SMB。有关更多信息,请参阅使用客户端 cloudflared 连接到 SMB。 | smb://localhost:445 |
| HTTP_STATUS | 使用固定的 HTTP 状态码响应所有请求。 | http_status:404 |
| BASTION | 允许 cloudflared 用作堡垒机(jump host),从而提供对任何本地地址的访问。 |
bastion |
| HELLO_WORLD | 用于验证您的 Cloudflare Tunnel 连接的测试服务器(仅适用于本地管理的隧道)。 | hello_world |
当服务值为 IPv6 字面量时,请按照 RFC 3986 ↗ 的定义将地址用方括号括起来。方括号是必需的,以防止地址中的 : 字符与端口分隔符混淆。
| 服务类型 | service 示例值 |
|---|---|
| HTTP | http://[2001:db8::1]:8000 |
| HTTPS | https://[2001:db8::1]:443 |
| TCP | tcp://[2001:db8::1]:2222 |
| SSH | ssh://[2001:db8::1]:22 |
| RDP | rdp://[2001:db8::1]:3389 |
主机名和 IPv4 地址不需要括号——http://localhost:8000 和 http://192.0.2.1:8000 保持原样即可。