如何使用 Mac OS X telnet 到 IPv6 主机?

Nat*_*ate 11 networking ipv6 mac-osx

我正在公司网络上测试 IPv6,但在使用 OS X 时遇到问题。对于大多数 IPv6 命令,例如telnet -6traceroute6,我收到错误消息:

connect: No route to host
Run Code Online (Sandbox Code Playgroud)

例如,我有一个 Web 服务器。这失败了:

$ telnet -6 fe80::… 80    # this fails
Run Code Online (Sandbox Code Playgroud)

我知道服务器是可访问的,因为它可以ping6工作(请注意,我必须使用-I参数):

$ ping6 -I en1 fe80::…    # this works
Run Code Online (Sandbox Code Playgroud)

我知道 Web 服务器正在运行,因为我可以从 Windows telnet 到它:

C:\> telnet fe80::… 80  # this works
Run Code Online (Sandbox Code Playgroud)

我怀疑我缺少一些配置标志或命令行参数。

Ger*_*mbs 11

fe80::/16 前缀用于链接本地地址,它们很特殊。尝试跑步

netstat -nr
Run Code Online (Sandbox Code Playgroud)

在 OS X 和

netsh int ipv6 show routes
Run Code Online (Sandbox Code Playgroud)

在 Windows 上。在 OS X 上,您很可能会看到每个接口的单独 fe80:: 路由,例如 lo0 和 en1。Windows(至少是 XP)似乎没有这样做。由于 OS X 有多个路由到相同的前缀,因此您必须使用区域索引将流量指向正确的方向:

$ telnet -6 fe80::…%en1 80
Run Code Online (Sandbox Code Playgroud)