在虚拟机上发出的命令:
$ ping -6 api6.ipify.org
ping: connect: Network is unreachable
$ ifconfig ens3
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.140.84.221 netmask 255.255.255.0 broadcast 10.140.84.255
inet6 fe80::5054:ff:fe6c:abbe prefixlen 64 scopeid 0x20<link>
ether 52:54:00:6c:ab:be txqueuelen 1000 (Ethernet)
RX packets 566497 bytes 327455872 (327.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 458879 bytes 57257695 (57.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
$ uname -a
Linux k3s 5.4.0-125-generic #141-Ubuntu SMP Wed Aug 10 13:42:03 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
在主机上,IPv6 可以正常工作。在主机上发出的命令:
$ ping -6 api6.ipify.org
PING api6.ipify.org(2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2)) 56 data bytes
64 bytes from 2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2): icmp_seq=1 ttl=55 time=253 ms
64 bytes from 2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2): icmp_seq=2 ttl=55 time=305 ms
64 bytes from 2607:f2d8:4010:8::2 (2607:f2d8:4010:8::2): icmp_seq=3 ttl=55 time=252 ms
$ uname -a
Linux ThinkPad 5.19.5-051905-generic #202208291036 SMP PREEMPT_DYNAMIC Mon Aug 29 10:47:31 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
如何让 IPv6 在 VM 上工作?我期望它能够立即使用,或者在多通道中有一些命令行选项,但我找不到。
答案1
Multipass 在客户端和主机之间使用名为 mpqemubr0 的单独网络(您可能有不同的接口名称)。此网络不通过 dhcpdv6 或 radvd(或两者)提供 IPv6 信息。您的 IPv6 路由表可以通过以下方式查看:ip -6 route show
猜测您的客户端没有 IPv6 的默认路由。
您的选择:
- 将 radvd/dhcpdv6 添加到在 Multipass 接口上提供 IPV6 信息的主机。您的主机充当 IPv6 路由器,也许您需要更多 ip6tables 规则来进行伪装,必须启用 IPv6 转发
- 将多通道接口的类型更改为桥接网络而不是路由。请参阅多通道文档
- 如果你的使用情况允许,请切换到docker,即使在这里IPv6也不能开箱即用,但它的速度要快得多