如何使用 IPv6 地址卷曲?

And*_*rew 13 linux shell curl

我有一个分配了 /64 IPv6 的 VPS。当我尝试使用块中的一个 IP 卷曲时,这是我得到的错误:

curl --interface '2a02:c207:2010:1077::2' http://example.com
curl: (45) bind failed with errno 99: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)

我到底需要做什么来解决这个问题?以 root 身份登录时,我不应该能够在机器上使用任何 IP 吗?

基本上我只需要能够使用分配给 VPS 的任何 IPv6 进行卷曲。

Vin*_*ent 14

经过一些测试,我发现以下命令有效:

$ curl -g -6 'http://[fe80::3ad1:35ff:fe08:cd%eth0]:80/'

接口 'eth0' 是启用了 ipv6 的接口,因此您可能需要将其替换为其他内容。

以防万一,测试ipv6的telnet命令:

$ telnet -6 fe80::3ad1:35ff:fe08:cd%eth0 80


Ale*_*che 9

man curl

--interface 指定接口,例如 eth0:1

curl --interface eth0 -g -6 'http://[2606:2800:220:1:248:1893:25c8:1946]:80/index.html' -H 'Host: www.example.com'
Run Code Online (Sandbox Code Playgroud)

感觉就像您期望curl 操纵机器的接口来添加然后使用特定的 /128 ?如果您愿意,您可能必须编写自己的 shell 包装器。

  • 是的。我解释说他们正在查看错误的 ISO OSI 层。curl 只是让您指定哪个接口。如果您想设置 IPv6 源地址,您需要*不是*curl 的东西来设置它。 (2认同)