It appears like Apple has fully supported IPv6 tethering on iOS devices years ago, including proper, native IPv6 addresses on each tethered device.

What about Android? It seems like Android 6.0.1 is still totally missing IPv6 on the tethering side. Not only that, but tethering explicitly doesn't even work at all when you're on an IPv6-only network, unless your phone has IPv4 connectivity, too (which with DNS64 and NAT64, is often not the case -- T-Mobile US is especially well-known for not being keen on providing native IPv4 to IPv6-capable devices).

Has IPv6 tethering support been added since then? Are there any plans to add support in later versions? It's 2017, there are basically no more IPv4 addresses, what's up with this disappearing tethering support?!

2 Answers 2


It should be available since Android 7. https://android.googlesource.com/platform/frameworks/base/+/7747fd4/services/core/java/com/android/server/connectivity/tethering/IPv6TetheringCoordinator.java

It's working on my Android 8.1.


It didn't work on Android 6.0.1; however, with Android 7.1.1 on the same device, and with T-Mobile US as the carrier in early 2018, the following is the configuration that gets assigned to an OS X box:

% ifconfig en0
    ether 8c:29:XX:XX:XX:XX 
    inet6 fe80::8e29:XXff:feXX:XXXX%en0 prefixlen 64 scopeid 0x4 
    inet netmask 0xffffff00 broadcast
    inet6 2607:fb90:4bYY:YYYY:8e29:XXff:feXX:XXXX prefixlen 64 autoconf 
    inet6 2607:fb90:4bYY:YYYY:d427:13ba:ZZZZ:ZZZZ prefixlen 64 autoconf temporary 
    nd6 options=1<PERFORMNUD>
    media: autoselect
    status: active

Note that this includes both a temporary random IPv6 address (used ZZ to anonymise), as well as the permanent IPv6 address that's deterministic based on the prefix (YY) and the MAC address (XX).

P.S. Yes, it does appear that T-Mobile US might as well be delegating the whole /64 prefix to its ME, however, doing a traceroute6(8) may indicate that the prefix is not actually fully dedicated to the Mobile Equipment, as the first use of the prefix appears to be at the PGW level, followed by ME, followed by OS X, when doing a traceroute6 to the permanent IPv6 address of the OS X box:

 3  lag-109.ear2.Paris1.Level3.net (2001:1900:5:2:2::4a09)  1.145 ms  1.416 ms  1.696 ms
 4  2001:1900:1a::19 (2001:1900:1a::19)  147.601 ms  147.609 ms  147.596 ms
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  2607:fb90:4bYY:YYYY:0:45:WWWW:WWWW (2607:fb90:4bYY:YYYY:0:45:WWWW:WWWW)  156.866 ms  157.103 ms  157.097 ms
10  2607:fb90:4bYY:YYYY:7136:9b4c:VVV:VVVV (2607:fb90:4bYY:YYYY:7136:9b4c:VVV:VVVV)  189.333 ms  201.174 ms  192.226 ms
11  2607:fb90:4bYY:YYYY:8e29:XXff:feXX:XXXX (2607:fb90:4bYY:YYYY:8e29:XXff:feXX:XXXX)  200.185 ms  300.332 ms  267.247 ms

Still pretty cool to be getting not just one but even two public routable IP addresses on a laptop whilst tethered to an average Android device with default everything; like the internet was meant to be, p2p.

  • Hm, but I guess this doesn't work for USB-tethering? Or only not on Wifi-to-USB?
    – TJJ
    Mar 6, 2020 at 3:59
  • 1
    I'm on Android 9 and have native IPv6 from my carrier but tethering only uses IPv4. I can't find any settings to control this. Could this be a build option that my handset manufacturer hasn't included?
    – Rodney
    Sep 24, 2020 at 8:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .