IPv4 的端口开着,IPv6 却连不上,十有八九是放行规则只配了一半。

为什么是两套

iptables 管 IPv4,ip6tables 管 IPv6。这是两个独立的规则表,互不影响。

云厂商的安全组也一样。入方向规则里,IPv4 和 IPv6 是分开的条目,源地址写成 0.0.0.0/0 只覆盖 IPv4,IPv6 要写 ::/0。

只在 IPv4 侧放行,IPv6 请求会被直接丢弃,表现就是 TCPing 全部超时。

云平台怎么配

进安全组,添加入方向规则,协议选 TCP,端口填 443,源地址填 ::/0。

如果需要限制来源,就填具体的 IPv6 网段。不要图省事直接全开,尤其是数据库和 SSH 端口。

配完记得确认规则生效顺序。有些云平台默认拒绝所有,规则要放在允许列表里才生效。

服务器上怎么配

ip6tables -L -n 看当前规则。

要放行 443:ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT。要放行 ICMPv6(Ping 用):ip6tables -A INPUT -p ipv6-icmp -j ACCEPT。

规则要持久化,否则重启就没了。不同发行版的保存方式不一样,改完记得验证一次。

只放行 TCP 不放行 ICMP 会怎样

网站能访问,Ping 全超时。

这不是故障,是策略选择。很多生产环境就是这么配的,减少暴露面。

判断端口通不通,用 IPv6 TCPing 就够了,不需要为了 Ping 通而放开 ICMPv6。

排查顺序

先确认服务在监听 ::,再确认服务器防火墙放行,最后确认云安全组放行。

三层任何一层没配,结果都是连不上,但表现略有不同:服务没监听是拒绝,防火墙丢包是超时。

用 TCPing 的失败类型反推是哪一层,比一层层翻配置快得多。全部节点超时,优先查安全组。