v4 通,v6 死活不通

按教程配好端口转发,浏览器用 IPv4 地址访问正常,换成 IPv6 地址就超时。查了转发规则,看不出毛病。

后来一层层对,才发现服务只监听了 0.0.0.0,安全组也只加了 IPv4 规则。转发没配错,是请求根本没走到转发那一步。

三层都要配,缺一层就断

云上的安全组,IPv4 和 IPv6 规则是分开的。只加了 v4 规则,v6 默认就是拒绝。

系统防火墙也一样。iptables 管 v4,ip6tables 管 v6;nftables 虽然能写在一起,但也要确认规则真的覆盖了两个协议。

服务本身还得监听 IPv6 地址。0.0.0.0 只表示所有 IPv4 地址,不包括 IPv6。

排查顺序我一般反着来:先确认从外部能不能连到这个端口,再去改配置。不然很容易在错误的那一层反复调。

IPv6 网站测速:单独验证 v6 入口

IPv6 网站测速:单独验证 v6 入口

监听地址是高频坑

Nginx 里只写 listen 80,就只监听 v4。要加一条 listen [::]:80,才算开了 v6。有些版本在 [::] 上默认带 ipv6only,写的时候要注意会不会和 v4 那条冲突。

应用层同理。Node、Python、Java 的监听参数里,绑 0.0.0.0 还是绑 ::,结果完全不一样。

后端只有 v4 怎么办

常见架构是前端有 v6,后端应用只跑在 v4 上。这种要靠反向代理或中继把请求转过去,不是开个端口转发就能解决。

NAT66 或者 NAT64 要看环境支持,不是所有云都提供。搞不清楚就问服务商,别自己拍脑袋配。

家用宽带的场景也一样:路由器上的端口映射通常分 v4 和 v6 两套界面,只配了一边,另一边照样不通。

配完怎么验

用宝塔拨测的 IPv6 网站测速跑一轮,它跑在纯 IPv6 环境里,不会偷偷回退到 v4。重点看 HTTP 状态码、响应耗时,以及各地节点的结果。

再跑一次普通的 IPv4 测速做对照。两边状态码一致、耗时接近,才算真的双栈可用。

如果 v6 只有部分运营商能通,按分组看,问题多半在某条链路的 v6 互联上,不是你的配置。

复测和判断边界

改完配置用同一批节点复测,确认原来超时的节点变成 200,而且稳定。连续测两三次,排除刚好赶上生效的巧合。

该警惕的信号:v6 全部节点超时、解析出 AAAA 但完全不可达、证书在 v6 上报错。最后一种常见于 SNI 没配对,跟转发无关,但表现很像「不通」。

配 IPv6 转发,配的是三层,验的是两条路。少验一条,就等于没配完。