Curl 与 ipv6 默认不工作

Zip*_*pie 7 ubuntu ipv6 curl

我试图卷曲 ipv6 地址,但没有成功。

如果我尝试让我们说:

卷曲https://google.com

我等待超时并得到 network unreachable

如果我强制ipv4,一切都很好。

curl -4 https://google.com

然后,如果我强制使用 ipv6,就像这样:

curl -6 https://google.com

我得到:

curl: (7) 无法连接到 2800:3f0:4001:806::1005: Network is unreachable

我想它与解析ipv6地址有某种关系。

我看到在其他具有某些 Linux 发行版较新版本的计算机上,这些请求正常,所以我猜它必须对我使用 做一些事情Ubuntu 10.10,但这个问题没有解决。

我希望能够在不使用选项的情况下正常卷曲:-4,我必须修改什么才能正常使用带有ipv6地址的卷曲?

msw*_*msw 8

解析 IPv6 地址不是问题。该名称解析工作正常,因为 curl 报告它无法到达网络 2800:3f0:4001:806::1005;这表明名称翻译确实成功了。这与名称查找中的错误不同:

 $ curl -6 http://does.not.exist.foo.
 curl: (6) Couldn't resolve host 'does.not.exist.foo.'
Run Code Online (Sandbox Code Playgroud)

为了到达 IPv6 地址,您需要有一条到目标地址的路由,而且很少有连接具有任何 IPv6 连接。在我写这篇文章的机器上,我几乎没有 v6 路由:

$ route -A inet6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
fe80::/64                      ::                         U    256 0     0 wlan0
ff00::/8                       ::                         U    256 0     0 wlan0
Run Code Online (Sandbox Code Playgroud)

这说明你我知道如何访问我的本地网络,仅此而已。将此与我的 IPv4 路由进行对比

$ route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
…
Run Code Online (Sandbox Code Playgroud)

这表明我得到了一个非常关键的路由信息​​。我知道如何通过将数据包传递到位于 192.168.1.1 的默认路由器来到达我没有明确路由的任何地方。

您的名称解析工作正常。您确实需要一条通往目标网络的 IPv6 路由,但目前提供该功能的地方太少了。


Zip*_*pie 1

我尝试连接到其他网络并且成功。

与此同时,我将操作系统更新为 MINT v15,但问题仍然存在。

实际上,它甚至变得更奇怪,因为我可以curl一次,一切都会好起来,而不是我第二次这样做,它会出现同样的旧错误。

最后我打电话给我的 ISP,他们将我的调制解调器设置为出厂设置并更新了软件。

现在一切似乎都运行良好。