Skip to content
Cloudflare Docs

Protocols for published applications

When you add a published application route to a Cloudflare Tunnel, you are instructing Cloudflare to proxy requests for your public hostname to a service running privately behind cloudflared.

The table below lists the service types you can route to a public hostname. Non-HTTP services require installing cloudflared on the client for end users to connect.

Service typeDescriptionExample service value
HTTPProxies incoming HTTPS requests to your local web service over HTTP.http://localhost:8000
HTTPSProxies incoming HTTPS requests directly to your local web service. You can disable TLS verification for self-signed certificates.https://localhost:8000
UNIXSame as HTTP, but uses a Unix socket.unix:/home/production/echo.sock
UNIX + TLSSame as HTTPS, but uses a Unix socket.unix+tls:/home/production/echo.sock
TCPStreams TCP over a WebSocket connection. End users run cloudflared access tcp to connect. For long-lived connections, use WARP-to-Tunnel instead.tcp://localhost:2222
SSHStreams SSH over a WebSocket connection. End users run cloudflared access ssh to connect. For long-lived connections, use WARP-to-Tunnel instead.ssh://localhost:22
RDPStreams RDP over a WebSocket connection. For more information, refer to Connect to RDP with client-side cloudflared.rdp://localhost:3389
SMBStreams SMB over a WebSocket connection. For more information, refer to Connect to SMB with client-side cloudflared.smb://localhost:445
HTTP_STATUSResponds to all requests with a fixed HTTP status code.http_status:404
BASTIONAllows cloudflared to act as a jump host, providing access to any local address.bastion
HELLO_WORLDTest server for validating your Cloudflare Tunnel connection (for locally managed tunnels only).hello_world