我购买了安装了 Ubuntu 18.04 的专用服务器,该服务器被赋予了 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