Here’s some commands I’ve tried running.
From the remote server (atlas), which is able to accept direct connections on port 31253
. The port is open on the firewall.
user@atlas$ tailscale netcheck
Report:
* UDP: true
* IPv4: yes, X.X.X.X:32842
* IPv6: no
* MappingVariesByDestIP: false
* HairPinning: false
* PortMapping:
* Nearest DERP: Frankfurt
* DERP latency:
- fra: 22.1ms (Frankfurt)
- lhr: 31.8ms (London)
- nyc: 107.9ms (New York City)
- ord: 126.2ms (Chicago)
- dfw: 137.8ms (Dallas)
- sfo: 167.7ms (San Francisco)
- sin: 169.2ms (Singapore)
- sea: 172.1ms (Seattle)
- tok: 225ms (Tokyo)
- sao: 233.5ms (São Paulo)
- blr: 262.5ms (Bangalore)
- syd: 283.7ms (Sydney)
user@atlas:~$ tailscale status
100.1.0.1 atlas user@ linux -
100.2.0.1 accesspi user@ linux active; direct <public_ip_X>:29679
100.2.0.2 macbook-pro user@ macOS active; direct <public_ip_X>:42676, tx 1378736 rx 566980
100.2.0.3 truffle user@ linux active; relay "sin", tx 22612 rx 13564
In the LAN, I have 3 nodes currently connected to Tailscale, as you can see above:
- “accesspi” is a Raspberry Pi, running Rasperry Pi OS “bullseye”.
- “macbook-pro” is my laptop, running macOS
- “truffle” is the server on the local LAN, running Debian 11
All the 3 nodes above have the same external public IP (<public_ip_X>
is the same).
The remote server, atlas, can connect to all 3 of them, but for some reason connections to truffle seem to always go through a relay (usually “fra” or “sea”, this time “sin”!)
The LAN I’m in right now is a “difficult network”, with double NAT. The “inner” firewall is a pfSense box, and then my ISP is putting me behind another NAT (sadly, my only option here is T-Mobile Home Internet).
To make things easier, I configured truffle to use Tailscale on a fixed port, and then I opened that port in the pfSense firewall, creating a 1:1 NAT. I’m still behind one NAT, but at least it shouldn’t be double-NAT’d. Yet, I’m stuck with using a relay.
This is really odd and at this point I can’t explain it. If the remote node has no firewall at all, why am I not able to establish a direct connection to that from all nodes in my LAN?