IPv6网络不可达(操作系统错误101)

3
尝试使用IPv6地址创建TCP套接字连接时,使用绑定的本地地址fe80::850***,出现“网络不可达(操作系统错误101)”错误。可能是因为fe80***是由操作系统生成的本地IPv6地址。是否有一种方法可以为系统提供正确的配置,以通过IPv6进行调用?

你是否正确地包含了链路本地地址的区域标识符(Zone ID)? - Ron Maupin
3个回答

7

由于需要花费相当长的时间来找出问题的主要原因,因此将尝试共享解决方案/调查步骤:

  • 为了确保未正确配置ipv6,请运行“ping6 ipv6.google.com”。它应该返回一些错误消息,例如“connect: Network is unreachable”或者卡住。

  • AWS ec2实例默认未分配ipv6全局路由地址(仅分配ipv4)。像“fe80:*”这样的ipv6地址是本地路由,并且不能用于全局请求。要检查IP地址列表,请检查eth0配置/sbin/ifconfig。顺便说一句,AWS提供接口为ec2实例生成全局可路由的ipv6地址(只需检查vpc/ec2控制台页面 - https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html

  • 检查ec2实例的安全组,并确保在路由表中允许ipv6流量。具体来说,入站和出站规则应包括“::/0”用于ipv6(或根据需要选择其中一个)。

  • 再次尝试“ping6 ipv6.google.com”


截至版本s20150815,ping6二进制文件不存在了。eth0 config /sbin/ifconfig 是什么? - x-yuri

3
简短回答:
你的IPv6连接设置不正确。这很可能不是你的机器上的配置问题,而是网关路由器上的问题。
详细回答:
你会收到“网络不可达”的错误,因为你的操作系统不知道如何到达目标地址。通常它会维护一个称为路由表的表格,在其中查找哪个网络路径通向哪个ip子网。在你的情况下,似乎缺少了几件事情。
1. 你的接口可能没有配置非链路本地(fe80::/64)地址 2. 目标地址范围没有路由表条目
在IPv4世界中,这些缺失的内容通常通过DHCP服务器解决。在IPv6世界中,有两种可能的配置选项。可以使用DHCPv6或IPv6无状态地址自动配置。似乎你的网络都没有进行正确的设置。请注意,正确设置其中之一需要你对网关路由器具有管理访问权限。

2
运行以下命令检查是否启用了IPv6:
ip addr
  • 如果只显示IPv4地址,则IPv6已禁用。请参考此tutorial启用它。

  • 如果显示链路本地地址(以fe80开头),则IPv6已启用,但未启用IPv6地址的动态分配。

  • 如果显示除fe80之外的IPv6地址,则IPv6已启用并已分配IPv6地址。


谢谢你的回答。我只看到了 如果显示一个以fe80开头的本地链接地址,在检查了我的主机面板后,我发现他们没有为我的VPS服务器分配IPv6。 - Salem
是的,@Salem。我的Oracle vps也是一样的。 - Lynne
命令应该在哪里执行?我刚刚尝试在Windows命令提示符中输入了"ip addr"和"ipaddr",但它们都不是有效的命令。然而,"ipconfig"是一个有效的命令。 - Stev
@Stev 它在Linux上运行。教程中有关于Windows Server的详细信息,您可以使用ipconfig。 - Lynne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接