Another month brings with it another set of Tailscale client updates and features. Here’s what we’ve been working on:
Tailscale v0.99 & Shields Up
About a week ago we released Tailscale v0.99 (full release notes). v0.99 includes more bug fixes and a new feature we’ve been calling “shields up.”
Tailscale can be used many ways, but it’s commonly used to connect to web servers, Raspberry Pis, build servers, or other headless “utility” devices.
You want to connect to these devices, but just because they’re on your network doesn’t mean you don’t want to let these devices connect to you.
This new feature lets any device put its “shields up” and reject all incoming connections over Tailscale. Outgoing connections will still work fine, so your personal computer can continue to SSH to your servers who don’t have their shields up, but all incoming connections will be blocked.
You can enable this feature from Tailscale’s menu bar icon, or by using
--shields-up flag on Linux.
(Network admins can enforce network-wide connection restriction, including blocking specific ports or allowing particular user groups with our ACL features)
iOS App Updates
We’ve also released the most important update to our iOS app yet.
For a while now, our iOS app would lose its connection after a few hours. iOS automatically closes background applications using too much memory, and the Tailscale iOS client was going over the limit and being silently closed.
Tailscale team member @bradfitz went on an odyssey to fix this: he built tools to dig into Go binary sizes, modified our fork of the Go compiler to minimize memory, and produced all manner of diagnostic charts, reducing our memory usage significantly. But no luck, the connection loss remained. After more intensive profiling, he located the issue: the problem wasn’t in the majority Go portion of our app, but in our small Swift wrapper layer, which was slowly leaking memory. Several
autoreleaseblock calls later, our team felt a wave of relief: the iOS app is now slimmer than ever before, and should stay connected as long as needed.
As promised in our last newsletter, we’ve officially launched our Android beta!
If you’d prefer to hold out until most of the bugs have been found, you can also pre-register to be notified when the production version is ready.
Welcome to our Interns
At the beginning of May we welcomed our first ever class of interns students to the team. Hailing from Waterloo University, Zijie, Wendi, and Dmytro have been hard at work on several exciting new Tailscale features.
From large companies to individuals, people are continuing to explore how Tailscale can make their networks simpler. This month, we have a few new articles from the community:
- For our Japanese users: 日本語を喋る人ために、@masa_iwasakiさんは Tailscale で簡単に自宅開発サーバーを実現する記事を書きました。 記事中で How Tailscale Works の便利な大筋もあります。@masa_iwasaki さん、書いてくれてありがとうございます！
- @nativeclouddev wrote Scale Out Your Raspberry Pi Kubernetes Cluster to the Cloud, which, like @mrkaran_’s article last month, explores the details of running Tailscale inside Kubernetes. Complete with network diagrams like How Tailscale Works, and a feature request :)