Skip to content

Tailscale

Docs

Install

Arch:

sudo pacman -S tailscale

Raspberry Pi

Install Tailscale on Rasperry Pi

sudo apt-get install apt-transport-https
curl -fsSL https://pkgs.tailscale.com/stable/raspbian/$(lsb_release  -cs).noarmor.gpg \
  | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg > /dev/null
curl -fsSL https://pkgs.tailscale.com/stable/raspbian/$(lsb_release  -cs).tailscale-keyring.list \
  | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update
sudo apt-get install tailscale

DNS

Usage

  • State file: /var/lib/tailscale/tailscaled.state

Parse state file content:

sudo jq -r ._profiles /var/lib/tailscale/tailscaled.state  | base64 -d | jq
sudo jq -r '."profile-e35a"' /var/lib/tailscale/tailscaled.state | base64 -d | jq

Further usage

tailscale status
tailscale ip casita

Issues

Captive portals

How to fix Tailscale with captive portals

  • Problem: No DNS resolution works because Tailscale is the default resolver (configured for DNS Domains: ~.)
  • Solution: Add ~. to the Additional search domains of the configured Wifi connection in the Network Manager UI. This will route all DNS queries directly over the wifi interface, circumventing the catch-all DNS resolution of Tailscale. Beware: This might have other side-effects !

Ansible role

see headscale.md

Tailscale on Kubernetes

nftables

This commit adds nftable rule injection for tailscaled. If tailscaled is started with envknob TS_DEBUG_USE_NETLINK_NFTABLES = true, the router will use nftables to manage firewall rules.

Subnet router