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 that can route to a public hostname. Non-HTTP services will require installing cloudflared on the client for end users to connect.

Service typeDescriptionExample service value
HTTPIncoming requests to Cloudflare over HTTPS are proxied to the local web service via HTTP.http://localhost:8000
HTTPSIncoming requests to Cloudflare over HTTPS are proxied directly to the local web service. You can disable TLS verification if your origin uses self-signed certificates.https://localhost:8000
UNIXJust like HTTP, but using a Unix socket instead.unix:/home/production/echo.sock
TCPEnables TCP streams over a Websocket connection. cloudflared will take the packets received from the Websocket and reach out to the origin using TCP. To connect to the public hostname over arbitrary TCP, the user needs to run cloudflared access tcp, and there are no guarantees on how long the TCP tunnel will live. For long-lived connections, we recommend using WARP-to-Tunnel instead.tcp://localhost:2222
SSHEnables SSH streams over a Websocket connection. cloudflared will take the packets received from the Websocket and reach out to the origin using SSH. To connect to the public hostname over SSH, the client needs to run cloudflared access ssh, and there are no guarantees on how long the SSH connection will last. For long-lived connections, we recommend using WARP-to-Tunnel instead.ssh://localhost:22
RDPSimilar to TCP but for RDP streams only. For more information, refer to Connect to RDP with client-side cloudflared.rdp://localhost:3389
UNIX + TLSJust like HTTPS, but using a Unix socket instead.unix+tls:/home/production/echo.sock
SMBSimilar to TCP but for SMB streams only. For more information, refer to Connect to SMB with client-side cloudflared.smb://localhost:445
HTTP_STATUSResponds to all requests with the given HTTP status.http_status:404
BASTIONcloudflared will act like a jumphost, allowing access to any local address.bastion
HELLO_WORLDTest server for validating your Cloudflare Tunnel connection (for locally managed tunnels only).hello_world