So, my problem is that I just can't get IPv6 to work. Ping6 just tells me connect: Network is unreachable when I try to ping ipv6.google.com for example.

ifconfig looks like (a tad censored):

eth0      Link encap:Ethernet  HWaddr **:**:e9:b6:35:7e  
          inet addr:***.*.65.177  Bcast:***.*.65.191  Mask:
          inet6 addr: fe80::16da:e9ff:feb6:357e/64 Scope:Link
          RX packets:* errors:0 dropped:0 overruns:0 frame:0
          TX packets:* errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:*  TX bytes:*
          Interrupt:28 Base address:0xc000 
lo        ...

route -6 returns:

Destination                    Next Hop                   Flag Met Ref Use If
fe80::/64                      ::                         U    256 0     0 eth0
fe80::/64                      ::                         U    256 0     0 tap0
::/0                           ::                         !n   -1  1  5400 lo
::1/128                        ::                         Un   0   4269387 lo
fe80::16da:e9ff:feb6:357e/128  ::                         Un   0   1   391 lo
fe80::4c7b:2bff:fef4:9db/128   ::                         Un   0   1     0 lo
ff00::/8                       ::                         U    256 0     0 eth0
ff00::/8                       ::                         U    256 0     0 tap0
::/0                           ::                         !n   -1  1  5400 lo

Another strange thing is, pinging my own IPv6 address only works if I tell ping6 to specifically use the eth0 interface with -I eth0 otherwise that'll return unknown host.

One thing I've read is that I need to specify my router in the routing table somehow, but I don't even know the router's address and I have no idea about how to find it out either (because I'm nothing like a networking expert and IPv6 seems even more confusing than IPv4 to me).

Any ideas or solutions?

  • I feel bad for asking this, but does your ISP definitely support IPv6? Your router will then need to be set up for IPv6, too. Also, is this a home question, because those are off-topic here? Check out our FAQ
    – Dan
    Sep 6, 2012 at 12:28
  • @Chloe Yes definitely. The machine is a server in a proper datacenter. No home stuff going on here...
    – Cobra_Fast
    Sep 6, 2012 at 12:30
  • Fair enough, in that case you need to have a chat with whoever is in charge with the router / networking before you can proceed much further.
    – Dan
    Sep 6, 2012 at 12:33
  • And what specifically would I ask and look for?
    – Cobra_Fast
    Sep 6, 2012 at 12:33
  • You need a public ipv6 address, you can get form you isp provider. But some isp providers not have ipv6 service. For configuration ipv6 refer my post here. askubuntu.com/a/894840/582516
    – LF00
    Mar 20, 2017 at 8:51

2 Answers 2

     inet6 addr: fe80::16da:e9ff:feb6:357e/64 Scope:Link

fe80::/10 as the "Scope" behind it states is a Link-Local address.

To connect to the rest of the internet you need a Global address (thus out of 2000::/3 at least for the next several years) and of course you need at least a default (::/0) or defaultish (2000::/3) route to a router that will actually forward your packets.

As such you have two options: 1) ask your ISP to provide you with native IPv6 2) get a tunnel (google for 'wikipedia ipv6 tunnel broker' to get a good list).


You don't have a public IPv6 address set up on your host (public addresses start with 2xxx or 3xxx). You only have a link-local (fe80::) address set up, so you can only ping other hosts in your lan.

You have to set "-I eth0" when pinging, because you're pinging a link-local address (fe80::/64), which is set up on all your interfaces, and ping doesn't know which interface to use.

You need to contact your network admin about the network settings (IP address,, gateway, dns), and set it up. Since router advertisment is enabled by default on most machines, there is probably no router sending them out, or you would have had an autoconfigured and IPv6 address.

  • +1 for clue about set option, now ping is working... But only works as "self ping", when I in the ssh, eg. ping6 -I eth0 2604:a880:2:d0::20c7:c001 is public (!) but not ping in other machines. Jul 14, 2018 at 9:21

You must log in to answer this question.

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