我有一台虚拟机,只能通过 IPv6 访问(没有可用的 IPv4)。它是 Ubuntu 16.04 LTS 服务器。我以前从未使用过仅使用 IPv6 的机器,因此我一定错过了一些琐碎的事情。
我的配置:
- 是否配置
eth0 Link encap:Ethernet HWaddr aa:00:08:d0:f9:b2 inet6 addr: myIPv6Address/64 Scope:Link inet6 addr: myIPv6Address/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:206 errors:0 dropped:0 overruns:0 frame:0 TX packets:187 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:27034 (27.0 KB) TX bytes:44976 (44.9 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:82 errors:0 dropped:0 overruns:0 frame:0 TX packets:82 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:34008 (34.0 KB) TX bytes:34008 (34.0 KB)
- 等/网络
source /etc/network/interfaces.d/* iface eth0 inet6 static address myIPv6Address netmask 64 dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888
我的问题是,虽然我可以 ping 通谷歌,但我似乎无法访问互联网的其余部分。我无法从谷歌以外的任何地方 ping 或 wget(!!!)
ping6 ipv6.google.com PING ipv6.google.com(fra16s14-in-x0e.1e100.net)56 data bytes 64 bytes from fra16s14-in-x0e.1e100.net: icmp_seq=1 ttl=54 time=61.2 ms 64 bytes from fra16s14-in-x0e.1e100.net: icmp_seq=2 ttl=54 time=61.3 ms 64 bytes from fra16s14-in-x0e.1e100.net: icmp_seq=3 ttl=54 time=61.3 ms
例如,虽然我可以使用 wgethttp://www.google.com我无法从 github 获取任何东西:
wget -6 https://github.com/somefile --2017-01-02 13:43:54-- https://github.com/somefile Resolving github.com (github.com)... failed: Name or service not known. wget: unable to resolve host address ‘github.com’
我遗漏了什么?不应该能够使用 wget 吗?看来我的 DNS nopt 工作正常。我的配置有错误吗?
答案1
您所看到的内容与预期完全一致。您的机器只有 IPv6。Google 有 IPv4 和 IPv6 两种协议,因此您可以通过 IPv6 访问它们。但 GitHub 只有 IPv4。IPv4 和 IPv6 是不同的协议,因此它们之间无法通信。
基本上,您的服务器和 GitHub 使用不同的语言,并且您没有使用翻译服务。
允许 IPv6 客户端与 IPv4 服务器通信的转换协议称为 NAT64 + DNS64。理想情况下,托管您服务器的 ISP 应该提供这样的服务。如果他们不提供,那么您可以尝试我的一位好朋友 (Jan Žorž) 在他的实验室中托管的实验性服务。您可以在以下位置找到说明https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/。
请注意,NAT64 仅允许 IPv6 客户端访问 IPv4 服务器,而不能反过来。因此,只有 IPv4 的客户端无法访问您的 IPv6 服务器。为此,您需要 SIIT-DC 服务,但我不知道有谁提供这样的服务。