一直奉行「生命在于折腾」的博主在VPS购买后没多久便将系统换成了Archlinux,配置时为了省事就用了dhcpcd自动配置了IP地址。
自动配置的IPv4是完美的,可自动配置的IPv6就出事了。。。之前一直没有用过IPv6做过网站,直到最近脑抽突然想用Cloudflare的IPv6网关时才将问题暴露出来。
服务器可以ping外界IPv6主机,但外界IPv6主机却没法ping服务器。用systemctl status dhcpcd
查看dhcpcd的日志后发现,这玩意自动获取的IPv6地址和Vultr给的固定IPv6地址不是一个地址。。。
用man DHCPCD.CONF
查询,得到dhcpcd的静态地址配置方法。在/etc/dhcpcd.conf
的尾部加入如下内容
interface eth0 #网卡名
static ip6_address= #你的静态IPv6地址
然后sudo systemctl restart dhcpcd
重启dhcpcd后就OK了。
然而博主在配置Nginx时并没有监听IPv6地址,因此想要使用Cloudflare的IPv6网关还得要在配置文件中的server块中有
listen [::]:80;
或者是
listen [::]:443 ssl http2;