Tailscale is pretty useful
Fatih Altinok discusses using Tailscale for remote access to his Raspberry Pi, highlighting its VPN capabilities, features like Taildrop, and privacy partnership with Mullvad, while mentioning an open-source alternative, Headscale.
Read original articleFatih Altinok shares his experience with Tailscale, a tool he recently started using to access his Raspberry Pi server remotely. Previously reliant on Dynamic DNS, he faced challenges due to Carrier-grade NAT, which made port forwarding impossible. Tailscale creates a virtual private network (VPN) that allows users to connect to their devices from anywhere using simple domain names. Although his Raspberry Pi struggled to run Tailscale, he found it effective for remote access. He highlights additional features such as exposing ports for web application testing, file transfer through Taildrop, and the ability to set up exit nodes for VPN-like functionality. Tailscale's partnership with Mullvad offers enhanced privacy, allowing users to exit through various countries without compromising anonymity. While he has only used Tailscale for personal projects on the free tier, he notes that enterprise plans are available. He encourages others to share their use cases and mentions an open-source alternative, Headscale, for those who prefer not to use Tailscale.
- Tailscale allows remote access to devices via a virtual private network.
- It offers features like Taildrop for file transfers and exit nodes for VPN functionality.
- The service has a partnership with Mullvad for enhanced privacy.
- Users can start with a free tier, with enterprise options available.
- An open-source alternative called Headscale is available for those who prefer it.
Related
How to Use Tailscale VPN to Embrace Remote Work and Explore the World
The rise of remote work has led to increased interest in digital nomadism, with Tailscale recommended for secure, flexible internet access through a self-hosted VPN, enhancing privacy while traveling.
Tailscale SSH
Tailscale SSH manages SSH authentication on a tailnet, encrypts connections, supports re-authentication for high-risk connections, maintains existing configurations, and uses ACLs for user and device access control.
Taildrop lets you send files between your personal devices on Tailscale network
Tailscale's Taildrop, in public alpha, enables secure file transfers between personal devices on a Tailscale network, supporting multiple operating systems and allowing resumption of interrupted transfers.
How Tailscale's infra team stays small
Tailscale's three-engineer infrastructure team uses its product to simplify network management and security, employing ACLs for access control and an in-house tool for efficient secret management, allowing focus on complex challenges.
Tailscale Is Pretty Useful
Fatih Altinok discusses using Tailscale for remote access to his Raspberry Pi, highlighting its VPN capabilities, features like Taildrop, privacy partnership with Mullvad, and availability of an open-source alternative, Headscale.
- Many users appreciate Tailscale for its ease of setup and ability to bypass complex network configurations like CGNAT.
- Concerns about security and trust in Tailscale's infrastructure are prevalent, with some users questioning the implications of relying on a non-self-hosted service.
- Several users compare Tailscale to alternatives like WireGuard and ZeroTier, discussing their respective advantages and limitations.
- Performance issues, particularly related to file transfer speeds and mobile device reliability, are noted by multiple commenters.
- Users share various practical use cases, from remote access to home networks to facilitating work across distributed teams.
IMO the main outstanding questions/concerns are:
* Is the VPN model really the way to go? If someone gets their hands on one of your Tailscale nodes, they can access every service on your tailnet, which are likely running with reduced security since that's a huge part of the appeal. This is exactly the situation BeyondCorps/Zero Trust was created to avoid. Tunneling services[0] are more of a Zero Trust approach, but they can't match the seamlessness of Tailscale once a node is connected to the tailnet.
* Can it expand into the layman market? I wonder if the average person will ever be willing to install a VPN app on all their devices. On the flipside, I could see TS partnering with someone like Google to integrate TS tightly with Android and set up a private network between all your Google-signed-in devices.
* The relay system - DERP is nice, but it's primarily intended for signaling/fallback. It feels like CGNAT adoption is growing faster than IPv6 is, and I wouldn't be surprised if fewer and fewer p2p connections succeed over time[1]. DERP forces everything over a single TCP connection (HOL blocking), and I'm not sure it even has any flow control.
* Use in web browsers - They got a demo of this working, but it's pretty involved. You have to compile the entire Tailscale Golang library to WebAssembly which is a large artifact, and it's DERP-exclusive.
* Portability in general - Depending on WireGuard, as awesome as it is, is fairly limiting. You either need admin privileges to create the TUN device, or you need to run an entire TCP stack in userspace alongside your own WireGuard implementation. I'd be interested to see something like Tailscale implemented on top of WebTransport.
Their golink project [2] is a good example (and useful itself), but I've used it to build "peer to peer" comms for one application, and to host an API and Svelte SPA to control some other things in a tailnet.
What Tailscale does is difficult to do with Wireguard: Easy VPN, SSO with MFA, key distribution, static private IP for each node, peer to peer direct connectivity, split tunneling, fine grained access control rules down to per port and application, Wireguard over TCP, NAT transversal for devices behind firewall, central management, sharing nodes with others, DNS, file sending, routing rules (with exit nodes, subnet routers, “via”), key rotation, …
Wireguard connects peer A to peer B, and its simplicity stops there.
I found Tailscale to be a very good tool, that I extensively use.
My only concern is: what happens if their infrastructure is compromised at some point, like Okta’s? Assuming I have tail lock enabled.
My main gripe, though, is DNS. It’s great to be able to reach prod-db-1, prod-db-2, and prod-db-3, tag them as „db“ and create a rule to allow TCP on db:5432. however, it’s annoying that all of this is supported, but not the obvious extension - DNS records for the tags, so I can point apps to a group of servers belonging to the same tag.
* It's not reliant on port forwarding at your firewall
* It can get around bad ISP habits, like CGNAT or a lack of IPv6 (or IPv4)
* As the OP points out, it's broadly compatible with various forms of exit nodes
Straightforward and to-the-point. Great writeup.
The Tailscale k8s operator is also great.
I have a bluetooth gateway (Cassia X1000) in my workshop where I normally develop. I was at home doing some Android work at one point rather than at the workshop and needed to test some new Cassia functionality.
Tailscale exit node in the workshop.
Tailscale client on my linux dev laptop at home.
Started up the android emulator via Android Studio, connected to the Cassia via the app being debugged, debugged what I needed to, shipped it.
At the time it seemed like actual magic had happened.
Does Tailscale have features that set it apart now that other VPNs have gotten the private mesh thing down pretty well?
Last week I noticed McDonalds guest wifi is blocking new connections over the tailscale control ports. It will pass wireguard mesh traffic for established sessions, but their firewall rules prevent you from establishing new ones.
Pretty damn useful to connect to services in my internal network wherever I go. I have it set up on my router, so I don't need to install it on every single server in the house :D
I wonder if they can figure out a way to distribute compute eventually via their network (not just clunky ssh): 'my' storage is already shared with 'my' nodes, why not 'my' compute? :)
Seems like a great company/business.
In a way I think all these solutions just keep enabling IPv4 to continue and that sucks. Does Tailscale offer anything in an IPv6 world? Are they another company with an interest in stopping IPv6 progress?
If you have more complex cases, the IPTables/Netfilter rules make it vastly more difficult to manage, particularly if you're running docker-compose (or anything using IPTables rules) on the same box and trying to troubleshoot the packets coming out of docker and going into tailscale.
And then trying to figure out what tailscale is doing with your packets is not great as well. They've also broken features I relied upon with a minor release.
Their nat traversal doesn't always work, as sometimes I get connected to a DERP server, so that limits the network speeds across the internet.
I blame CG-NAT quite a bit -- it's really why we can't have nice things these days -- and I get tailscale is trying to fix a bunch of that. But the reality is, I just want an interface just like eth0 or wl0, not an IT infrastructure to move my packets across.
I can open a stream manually through http://192.168.1.189:5004/auto/v600 while connected to tailscale (w/ my apple tv in-home as an exit node) on my laptop outside of the house, but when I open the HDHR/Channels apps, they can't detect the HDHR tuner itself.
Apparently this "just works" with openvpn, so I've been thinking about just switching back to that.
[0]: https://github.com/tailscale/tailscale/issues/1013
[1]: https://old.reddit.com/r/HDHR/comments/z8byns/watching_remot...
Tools for the job, should be our watchword ... phrase 8)
IPSEC is somewhat old school but very solid - if you can do opportunistic IPSEC via DNS etc it can be rather nifty. You can also use FRRRRRRRRRRRR to do it routed. IPSEC with BINAT can be used to avoid issues involving duplicate network addressing.
I default to IPSEC for site to site links.
OpenVPN is more TCP/IP related compared to IPSEC - that's very simplified. You can easily set an IP address for a client and other niceties.
OpenVPN is superb for massive client deployment. If you have a central CA and can deploy certs on all devices eg via MS AD CA then you can use a single config file for all clients, which is a doddle to deploy via GPO.
Tailscale is the new kid on the block. As with all new kids you need to examine what works for you and you could be one person or an entire multi national.
The real world is rather messy. For example your home/office/corp network will almost certainly have a MTU of 1500 bytes. When you hit the internets it gets really messy. Some British Telecom links (for example) will support mini jumbo frames and some won't and the real world continues to get more and more complicated.
https://github.com/freebsd/freebsd-ports/blob/ec981e26cd3128...
That said, what messed with me greatly was the fact that Tailscale seems to have an MTU of 1280 whereas Docker by default had 1500 which lead to inexplicably dropped overlay traffic with nonsensical log messages in my reverse proxy web server.
Basically, I had to delete docker_gwbridge and recreate it with some specific options: https://docs.docker.com/engine/swarm/networking/#customize-t...
It was quite the mess. I have no idea why Docker couldn’t just figure out that it needs the smaller MTU by itself, cause it listens for the Swarm on an interface that’s related to Tailscale and it can see what MTU that has.
Still, Tailscale in of itself is pretty nice.
I ran into a corporate network recently that blocked the Tailscale DERP servers.
My sense is that tailscale makes sense for a more locked-down service that is not accessible to the general public (although they do have a way to open up access to the world [4], it felt like more of a temporary thing than a permanent solution when I was looking into it).
And Cloudflare is more for exposing a service to the world, with support for a custom domain name, DDoS protection and other IP blocking feaures, etc. Cloudflare does have a "Zero Trust Network Access" product that I think might offer similar functionality to Tailscale, but honestly pretty hard to tell what it does from their website or how hard it would be to set up.
They both have free tiers that are pretty generous for "homelab" use cases. [2][3]
Does that sound pretty much correct? Are Tailscale and Cloudflare competitors with a lot of overlapping functionality? Or are they mostly distinct products serving different use cases/markets?
[1] https://developers.cloudflare.com/cloudflare-one/connections...
[2] https://tailscale.com/pricing
That's my experience. I wish it was better.
- My home PC, my laptop, and my phone are the participants.
- My home PC is connected to a GPU, and runs a colab runtime, SSHD, as well as a simple http file server in $HOME (actually, C:/Users/username, its windows)
- My laptop doesn't have an NVIDIA GPU, so it just runs SSHD and a file server.
- My phone serves nothing, but has an SSH client, and a http client obviously.
There is simple hostname based DNS setup by tailscale automatically, so I can just go to http://laptop:8000 to access all my files, or just ssh to username@computer
Accessing everything from everywhere is absolutely great. And this is all on their free tier.
Unrelated to tailscale, I use parsec for a similar solution for remote desktop, their "machine level user" feature allows me to initiate remote desktop from certain client devices directly.
Too smooth.
If your Internet provider and your mobile provider is the same company, they could put all your connected devices in the same IP block within the CGNAT IP range.
Now, not only you can access your device at home while away using your cellphone, you can also connect to your partner's phone with the same IP address at (or away from) home.
Some Internet providers in China very recently started providing this service, e.g. https://www.chiphell.com/thread-2666772-1-1.html (in Chinese). In addition to the convenience of accessing your home server while on the go, they also make the traffic within the CGNAT free.
The only thing I need is to simply connect to the home network and I dont want to need to open and forward ports etc in routers and firewalls for it to work, just something simple plug and play and is secure.
As long as you trust them this really give you a lot of security at a very low cost.
- Boom, everything works
- Internet? feels like local-net
This is just brilliant tech. Thank you so much for building this guys and the amazing effort that goes behind it everyday
I'm sick and tired of the way ISPs treat us. It's literally written into my lease what company I will pay for internet, and how much I will pay them. It is not, however, written in my lease how fast the connection will be. Not only am I unable to forward ports, I can't even change my own WiFi password! Sure, I could make a fuss and probably obtain access to my router, but it isn't worth the hassle.
But why is there a hassle to begin with? How in the hell is it in anyone's interest to keep me from configuring my own router? I can come up with plenty of authoritative bullshit answers to this question, but they are all authoritative bullshit. I think that's the real answer: we have systemically built our society to operate on authoritative bullshit. sigh
Tailscale is a usable workaround, but it shouldn't exist. It shouldn't need to exit. I just want to be able to host a server. Is that really so much to ask?
I was a doubter a bit as to how it would work at a bigger org but so far rock solid, easy to setup and great user experience.
Or is there more to it that I’m missing?
I was even able to stream my games through the tunnel with a (decent enough) latency of 27ms with variance of 2ms.
Admittedly, I could buy a gaming laptop, but I don't want to carry a heavy laptop 4 times a month :P
I never understood this problem. I just create a Tor hidden service when I want to ssh into a machine behind a firewall.
Does anybody know of any good materials on the enterprise use cases and configs? e.g. blogs, screencasts, etc.
Samba transfers take a 15 megabyte per second hit over tailscale even with a fairly fast CPU on both ends (Ryzen 3600 and Ryzen 7900X3D) on my local network
as someone who does publicly expose services that have auth, why does CGNAT make exposing ports publicly bad?
I used to run a WireGuard server on a raspberry pi with ddns to update dns record on an as needed basis.
Eventually replaced it with my gateways built in WireGuard server which also has ddns enabled
The use cases described by the author are taken care of with a simple wg server. Sure you don’t get the distributed peer network of tailscale but I can live without that.
It’s incredible how shitty modern software is that a raspberry pi couldn’t run a basic VPN.
If any tailscale devs see this you should try to reproduce this issue and use it as an opportunity to clean up a bunch of dumb assumptions that likely hurt real users as well, just through less direct means like battery consumption and slower overall performance.
https://nebula.defined.net/docs/
https://nebula.defined.net/docs/guides/quick-start/
...I believe 100% open source. You can basically hub between different devices (including iOS/Android) that are identified via certs. Recommended to have one or more public "lighthouses" so anything that can reach a lighthouse can reach any of your other servers (maybe kindof "syncthing for vpn/overlay-network?").
I've dorked around with it a little bit, but it's rare enough that I need access to my home network while out that I haven't doubled down on proper cert, key management, rotation, etc.
Related
How to Use Tailscale VPN to Embrace Remote Work and Explore the World
The rise of remote work has led to increased interest in digital nomadism, with Tailscale recommended for secure, flexible internet access through a self-hosted VPN, enhancing privacy while traveling.
Tailscale SSH
Tailscale SSH manages SSH authentication on a tailnet, encrypts connections, supports re-authentication for high-risk connections, maintains existing configurations, and uses ACLs for user and device access control.
Taildrop lets you send files between your personal devices on Tailscale network
Tailscale's Taildrop, in public alpha, enables secure file transfers between personal devices on a Tailscale network, supporting multiple operating systems and allowing resumption of interrupted transfers.
How Tailscale's infra team stays small
Tailscale's three-engineer infrastructure team uses its product to simplify network management and security, employing ACLs for access control and an in-house tool for efficient secret management, allowing focus on complex challenges.
Tailscale Is Pretty Useful
Fatih Altinok discusses using Tailscale for remote access to his Raspberry Pi, highlighting its VPN capabilities, features like Taildrop, privacy partnership with Mullvad, and availability of an open-source alternative, Headscale.