This is an issue I have been noticing for many months now. I can usually reproduce it as follows:
- Startup Tailscale when on my home WiFi.
- Go to work. Tailscale is still active when I connect to my work WiFi.
- Access a Tailscale device at home. The Tailscale status shows its using a Relay. It stays like this even if leave the connection active for hours.
- If I restart Tailscale, and then access the Tailscale home device again, Status immediately shows a direct connection.
One other observation is that even though in point 3 a relay is being used (and I can confirm this by doing a normal system ping - the latency proves it is going through a relay), if I use the Tailscale ping command, it shows a direct ping with a very low latency.
ping uartpi PING uartpi.ankgt11.gmail.com.beta.tailscale.net (100.99.171.126): 56 data bytes 64 bytes from 100.99.171.126: icmp_seq=0 ttl=64 time=60.269 ms 64 bytes from 100.99.171.126: icmp_seq=1 ttl=64 time=34.191 ms 64 bytes from 100.99.171.126: icmp_seq=2 ttl=64 time=33.934 ms 64 bytes from 100.99.171.126: icmp_seq=3 ttl=64 time=34.311 ms
/Applications/Tailscale.app/Contents/MacOS/Tailscale status 100.99.171.126 uartpi xxxxxx@ linux active; offers exit node; relay "blr", tx 120627860 rx 10766092
/Applications/Tailscale.app/Contents/MacOS/Tailscale ping uartpi pong from uartpi (100.99.171.126) via 18.104.22.168:41641 in 12ms
Is there anything I can do here to prevent having to restart Tailscale everytime the network changes?
I am currently on version 1.28.0, but have observed this ever since 1.14 when I started using Tailscale.