Fritzbox 7590无法解析本地IPv6主机,导致Android设备无法访问内网Raspberry Pi IPv6服务器的问题求助
大家好,我最近碰到个头疼的问题,折腾了好几天都没搞定,想请教下各位大佬:
背景情况
我花10欧元/年注册了域名 mydomain.nl,在内网用树莓派搭了两个IPv6 Web服务器:www.mydomain.nl 和 meter.mydomain.nl。靠着IPv6的特性,这些服务器不用NAT就能被外网或者家里的笔记本正常访问——只要把DNS改成8.8.8.8这类公共DNS就行,一切都顺得很。
遇到的问题
但我的Android手机死活访问不了这些服务器:
- 用T-Mobile移动网络时,因为运营商本身不支持IPv6,访问不了我能理解;
- 但连家里支持IPv6的Xs4all/KPN Wifi时,同样访问失败,这就太奇怪了。
另外提一句,我没给树莓派配置IPv4,因为我就是想用IPv6来实现内网主机对外暴露,IPv4在没有公网IP的情况下根本做不到这点。
排查过程
我用ping、nslookup、host还有dig这些工具一步步排查,最后把问题锁定在我的Fritzbox 7590路由器上:
- 路由器的内网IP是
192.168.3.27,同时也有对应的IPv6地址; - 路由器本身配置了4个DNS服务器,包括
195.121.97.202和两个IPv6地址的DNS; - 直接用路由器配置的DNS服务器查询我的树莓派域名,结果完全正常:
nslookup meter.mydomain.nl 195.121.97.202 # 能正常返回IPv6地址 - 但用路由器自身的IP作为DNS服务器查询时,却找不到我的树莓派域名:
nslookup meter.mydomain.nl 192.168.3.27 # 报错:找不到地址 - 更诡异的是,用路由器的DNS查询外部IPv6站点(比如
ipv6.google.com)却完全没问题:nslookup ipv6.google.com 192.168.3.27 # 能正常返回IPv6地址
手机端的现状
我的Android手机(测试了8、11、12、13四个版本)都是通过DHCP获取DNS设置,默认用的就是Fritzbox的IP192.168.3.27(还有对应的IPv6地址,本质还是同一个路由器)。所以用Firefox访问meter.mydomain.nl时,会直接提示“地址未找到”,但访问ipv6.google.com这类外部IPv6站点却完全正常。
已找到的临时 workaround
我发现可以在Android的「设置-网络-私有DNS」里添加公共DNS的域名,比如dns.google(对应8.8.8.8)或者1dot1dot1dot1.cloudflare-dns.com(对应1.1.1.1),这样手机就能正常访问我的树莓派服务器了。但我总觉得这是个临时方案:把所有DNS请求都交给谷歌或者Cloudflare,隐私方面有点顾虑,而且我更想从路由器层面彻底解决这个问题,而不是绕开它。
有没有大佬知道该怎么调整Fritzbox的配置,让它能正确解析我自己的本地IPv6主机域名呀?实在是没头绪了...
备注:内容来源于stack exchange,提问作者Roland Kwee

