如何在 Ubuntu 18.04 上使用 netplan 设置 IPv6?

如何在 Ubuntu 18.04 上使用 netplan 设置 IPv6?

我购买了安装了 Ubuntu 18.04 的专用服务器,该服务器被赋予了 IPv6 块。

IPv6 阻止图像

我使用了指南如何在 Ubuntu 16.04 上设置 IPv6之前。由于 Ubuntu 18.04 使用 netplan 而不是/etc/network/interfaces,上面的链接不再有效。

昨天,我设置/etc/netplan/01-netcfg.yaml如下:

network:                                                                       
version: 2
renderer: networkd
ethernets:
  eno1:
    dhcp4: yes
    dhcp6: no
    addresses: ['2001:bc8:xxx:100::/56']

一切进展顺利,但今天我无法再 ping 任何 IPv6 地址。尝试了很多方法,但到目前为止,我还没有得到好的结果。

我想知道这种情况下实现IPv6的具体方式,该怎么办?

答案1

我还有一个来自 Online.net 的 Dedibox 服务器。

在网上搜索后我发现在推特上

请尝试以下操作:

network:                                                                       
version: 2
renderer: networkd
ethernets:
  eno1:
    dhcp4: yes
    dhcp6: no
    addresses:
    - 2001:bc8:xxx:100::/56

这对我有用,现在我可以 ping 6 了!

答案2

我在另一个 VPS(Vultr)上遇到了同样的问题,他们建议我使用“路由器发现”来设置 IPv6 网关地址。

花了一些时间弄清楚发生了什么之后,我意识到我的问题是因为我已经放弃 ufw 并设置了我自己的 iptables 和 ip6tables 防火墙,但没有注意到 IPv4 ICMP 和 IPv6 ICMP 之间的区别。因此只需启用它:

sudo ip6tables -A INPUT -p ipv6-icmp -j ACCEPT

然后重启。之后我就可以ping6 www.google.com从我的 VPS 服务器获得不错的结果了。

只需记住在重启后保留防火墙设置即可。例如,如果您使用iptables-persistent,则可以使用ip6tables-save来保存它们,如下所示:

sudo ip6tables-save | sudo tee /etc/iptables/rules.v6

相关内容