Skip to content

Let cloudflared choose the tunnel transport - #3

Merged
icodesign merged 1 commit into
icodesign:mainfrom
MarveleE:fix/cloudflared-auto-protocol
Sep 16, 2026
Merged

icodesign merged 1 commit into
icodesign:mainfrom
MarveleE:fix/cloudflared-auto-protocol

Conversation

@MarveleE

@MarveleE MarveleE commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Cloudflare Quick Tunnel startup currently pins cloudflared to HTTP/2. On networks that allow Cloudflare's QUIC transport but block TCP port 7844, the tunnel hostname is created but no edge connection can register, so the CLI fails after its 30 second startup timeout.

This changes the Cloudflare provider to use cloudflared's default transport selection instead of forcing HTTP/2. The default auto mode prefers QUIC and can fall back to HTTP/2 when needed.

Verification

  • cargo test --locked -- --test-threads=1
  • cargo fmt --all -- --check
  • cargo clippy --locked --all-targets -- -D warnings

All 143 unit and integration tests pass.

Reproduction

With the current code, cloudflared receives:

--protocol http2

On a network with TCP/7844 blocked and UDP/QUIC 7844 available:

  • Quick Tunnel creation succeeds
  • Edge connections repeatedly fail with TLS handshake with edge error: EOF
  • No tunnel connection becomes ready

Without the hardcoded protocol, the same network immediately registers the tunnel over QUIC.

Pinning the Quick Tunnel to HTTP/2 breaks networks that allow Cloudflare's QUIC transport but block TCP port 7844. Use cloudflared's default auto selection so it can prefer QUIC and fall back to HTTP/2 when needed.
@icodesign

Copy link
Copy Markdown
Owner

Thanks. It makes sense. I added http2 to avoid waiting too much time because my network didn't work well with quic. It's time to switch to auto mode.

@icodesign
icodesign merged commit c5051e9 into icodesign:main Sep 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants