Exit node fooling ifconfig.co on mobile phone but not on laptop

Visit ifconfig.co to see exactly what it is, it’s basically just a “what’s my IP/where am I” service.

Have a network with an exit node, set up and running properly. Exit node is based in the US. I am physically in the UK.

When I visit ifconfig.co on my phone (Android connected to tailscale) it says, “I think you’re in the US”.

*However, when on my laptop, it still knows I’m in the UK.

Anyone ever seen this behavior?

What kind of laptop? ifconfig.co gets the right answer for me on macOS.

Does it correctly report your public-facing IP address?

MacBook Air Intel with OS X Big Sur

If by “right answer” you mean where I physically am located, then mine also gives the right answer on macOS.

Yeah, it reports my public-facing IP address and NOT the exit node one (gathered with simply curl ifconfig.co)

Perhaps some shenanigans from Big Sur?

FWIW the exit node is a Linode server, but that shouldn’t matter.

By “right answer” in this case I meant the exit node’s address when using the exit node, and my own address otherwise. It’s disconcerting if selecting an exit node in the macOS GUI is not causing the exit node to take effect. Do you have any other VPN software installed, by any chance?

I have NordVPN Installed but it’s not running.

Correct, the exit node doesn’t take effect from my Mac. But on my other Tailscale network devices, it does work (tested with my mobile, as mentioned above). It seems to be “just the mac”.

That’s what I mean, it could be that NordVPN’s “not running” might also be preventing other VPNs from running, or something like that. If you want to paste the output of netstat -rn we might be able to help more. (You can also email support@ if you’d rather not post that on a public forum).

Nah, all good. Here’s the output of netstat -rn from the macbook air.

╭─derek@s-MacBook-Air.lan ~/Documents
╰─➤  netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags        Netif Expire
default            192.168.1.1        UGSc           en0
default            link#16            UCSI         utun2
10.242/16          link#8             UC         feth407      !
10.242.228.60      d2:22:64:e1:34:e5  UHLWIi     feth407    309
10.242.255.255     ff:ff:ff:ff:ff:ff  UHLWbI     feth407      !
100.80.241.126/32  link#16            UCS          utun2
100.83.124.12      100.83.124.12      UH           utun2
100.87.87.71/32    link#16            UCS          utun2
100.90.225.61/32   link#16            UCS          utun2
100.94.116.104/32  link#16            UCS          utun2
100.96.193.22/32   link#16            UCS          utun2
100.100.100.100/32 link#16            UCS          utun2
100.101.102.103/32 link#16            UCS          utun2
100.105.43.55/32   link#16            UCS          utun2
100.117.244.119/32 link#16            UCS          utun2
127                127.0.0.1          UCS            lo0
127.0.0.1          127.0.0.1          UH             lo0
169.254            link#6             UCS            en0      !
192.168.1          link#6             UCS            en0      !
192.168.1.1/32     link#6             UCS            en0      !
192.168.1.1        7c:8f:de:ee:59:24  UHLWIir        en0   1191
192.168.1.152      4c:3b:df:85:df:fe  UHLWIi         en0     29
192.168.1.165      ca:55:54:c9:49:6b  UHLWI          en0     45
192.168.1.192      8c:c6:81:10:ff:59  UHLWI          en0   1176
192.168.1.226/32   link#6             UCS            en0      !
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI         en0      !
224.0.0/4          link#6             UmCS           en0      !
224.0.0/4          link#16            UmCSI        utun2
224.0.0.251        1:0:5e:0:0:fb      UHmLWI         en0
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI         en0
239.255.255.250    link#16            UHmW3I       utun2    250
255.255.255.255/32 link#6             UCS            en0      !
255.255.255.255/32 link#16            UCSI         utun2

Internet6:
Destination                             Gateway                         Flags         Netif Expire
default                                 fe80::%utun0                    UGcI          utun0
default                                 fe80::%utun1                    UGcI          utun1
::1                                     ::1                             UHL             lo0
fd7a:115c:a1e0:ab12:4843:cd96:6253:7c0c link#16                         UHL             lo0
fe80::%lo0/64                           fe80::1%lo0                     UcI             lo0
fe80::1%lo0                             link#1                          UHLI            lo0
fe80::%en3/64                           link#4                          UCI             en3
fe80::aede:48ff:fe00:1122%en3           ac:de:48:0:11:22                UHLI            lo0
fe80::aede:48ff:fe33:4455%en3           ac:de:48:33:44:55               UHLWIi          en3
fe80::%awdl0/64                         link#12                         UCI           awdl0
fe80::ccc9:bfff:fedc:dd7f%awdl0         ce:c9:bf:dc:dd:7f               UHLI            lo0
fe80::%llw0/64                          link#13                         UCI            llw0
fe80::ccc9:bfff:fedc:dd7f%llw0          ce:c9:bf:dc:dd:7f               UHLI            lo0
fe80::%utun0/64                         fe80::61cf:b6b5:a615:4e00%utun0 UcI           utun0
fe80::61cf:b6b5:a615:4e00%utun0         link#14                         UHLI            lo0
fe80::%utun1/64                         fe80::6d11:31aa:a4a2:249d%utun1 UcI           utun1
fe80::6d11:31aa:a4a2:249d%utun1         link#15                         UHLI            lo0
fe80::%utun2/64                         fe80::aede:48ff:fe00:1122%utun2 UcI           utun2
fe80::aede:48ff:fe00:1122%utun2         link#16                         UHLI            lo0
ff00::/8                                ::1                             UmCI            lo0
ff00::/8                                link#4                          UmCI            en3
ff00::/8                                link#12                         UmCI          awdl0
ff00::/8                                link#13                         UmCI           llw0
ff00::/8                                fe80::61cf:b6b5:a615:4e00%utun0 UmCI          utun0
ff00::/8                                fe80::6d11:31aa:a4a2:249d%utun1 UmCI          utun1
ff00::/8                                fe80::aede:48ff:fe00:1122%utun2 UmCI          utun2
ff01::%lo0/32                           ::1                             UmCI            lo0
ff01::%en3/32                           link#4                          UmCI            en3
ff01::%awdl0/32                         link#12                         UmCI          awdl0
ff01::%llw0/32                          link#13                         UmCI           llw0
ff01::%utun0/32                         fe80::61cf:b6b5:a615:4e00%utun0 UmCI          utun0
ff01::%utun1/32                         fe80::6d11:31aa:a4a2:249d%utun1 UmCI          utun1
ff01::%utun2/32                         fe80::aede:48ff:fe00:1122%utun2 UmCI          utun2
ff02::%lo0/32                           ::1                             UmCI            lo0
ff02::%en3/32                           link#4                          UmCI            en3
ff02::%awdl0/32                         link#12                         UmCI          awdl0
ff02::%llw0/32                          link#13                         UmCI           llw0
ff02::%utun0/32                         fe80::61cf:b6b5:a615:4e00%utun0 UmCI          utun0
ff02::%utun1/32                         fe80::6d11:31aa:a4a2:249d%utun1 UmCI          utun1
ff02::%utun2/32                         fe80::aede:48ff:fe00:1122%utun2 UmCI          utun2

I would like to point out that I just tried curling ifconfig.co on another computer on my network (Ubuntu) and it also, does not work (it doesn’t think I’m in the location of my exit node). It seems my android phone is the only one that’s properly getting routed throgh my exit node.

Thanks for all the help, by the way.

Well, certainly this is your problem:

Destination        Gateway            Flags        Netif Expire
default            192.168.1.1        UGSc           en0
default            link#16            UCSI         utun2

The utun2 route should have a higher precedence than the en0 route, or it won’t go through tailscale.

The “I” in UCSI means “interface-specific route”, which basically means it’s not even trying to take precedence. For me, when exit node is disabled on my mac, the flags are UCSI. When I have an exit node selected, the flags are UCS and the utun2 interface is on top.

If you toggle the exit mode setting off, do the flags change? What if you toggle it back on after that? If that fixes it, does turning wifi off and on then break it again?

If you toggle the exit mode setting off, do the flags change?
No. I toggled exit node off (on the web UI only) and get the same.

Destination        Gateway            Flags        Netif Expire
default            192.168.1.1        UGSc           en0
default            link#16            UCSI         utun2

What if you toggle it back on after that?
Nothing.

Destination        Gateway            Flags        Netif Expire
default            192.168.1.1        UGSc           en0
default            link#16            UCSI         utun2

If that fixes it, does turning wifi off and on then break it again?
(I assume you mean turning WiFi off and on with my Mac) It did not fix it however I turned wifi off and on and still have the same:

Destination        Gateway            Flags        Netif Expire
default            192.168.1.1        UGSc           en0
default            link#16            UCSI         utun2

It seems no matter what, the UCSI flags persist despite my exit node toggle and having just reset WiFi. Nor does the utun2 ever get above en0.

I guess it is worth trying again with v1.10, which will be rolling out from the Mac App Store over the next ~24 hours.

I have an exit node in Germany, and ifconfig.co sees the Macbook as being in Germany.

I am now on version 1.12 on all involved machines and still, curl ifconfig.co/city gives my real city.
I am really keen to sort this out, can anybody point me to learning resources aside from the tailscale docs/source code?

When you enable the exitnode, you should see ifconfig. co as per the location of exitnode once you select exitnode from the Tailscale tray menu. Email snip fo ifconfig.co , Tailscale IP of your node and check the IP location from the browser when you connected your node pointing to exitnode as default traffic gateway. Please send this information to support@tailscale.com.