← Back to context

Comment by kkapelon

4 days ago

> which is typically hosted by Tailscale

Tailscale hosts relay servers as a fallback. Connections are peer-to-peer between devices.

I think it always does the initial connection via the DERP relays, doesn't it? Even if a direct initial connection in theory is possible (no NATs or anything else in the way), the connection itself is always established via the relays, then "upgraded" to a local connection. But maybe they've changed this since I looked at it?

Beyond that, even with a local connection established, all the coordination traffic will still go via the tailnet, those don't suddenly become local-first. But this might also have changed.

What I'm sure is still there today, is that all Tailscale clients automatically upload their logs to Tailscale's servers unless you opt out:

> Each Tailscale agent in your distributed network streams its logs to a central log server (at log.tailscale.com). This includes real-time events for open and close events for every inter-machine connection (TCP or UDP) on your network. - https://tailscale.com/docs/features/logging

Of course, doesn't stop a local connection from working so is only tangentially related, but worth keeping in mind that a "local tailscale connection" still has a lot of external traffic related to it, even though the data you transfer, when possible, uses more local connections.

  • It is two completely different things

    1. The co-ordination server for the initial handoff. You can self-host if you want

    2. Derp relays (for actual traffic). you can also self-host (peer relays)

    Actually if self-hosting is that important to you, there are also newer solutions like netbird and netmaker that might worth a look.

    • > It is two completely different things

      Yes, as I noted, those differences wouldn't stop you from sending data locally. But since parent originally requested how they're different (without stating what exactly is important for them), I figured it is important at least to note what actually is the difference between taildrop and Flipflop.

      It'd seem then if you wanted "local-first P2P transfer", with taildrop you'd need ~3 separate services running, unless I misunderstand you? Flipflop seems to do all those things in one package, although again, signaling (for NAT punching) is still via a central server.

      1 reply →