路由器开启IPv6后网站局域网访问异常的处理经验

2025.6.23 杂七杂八 1752
33BLOG智能摘要
启用IPv6后,作者发现局域网内无法访问NAS中的个人博客,但外网访问无异常。经排查,发现设备优先通过IPv6连接,而内网DNS服务(dnsmasq)也生成了IPv6的AAAA记录。最终通过在dnsmasq配置中添加`filter-aaaalocal-ttl=300`参数,使域名优先返回IPv4地址,问题得以解决。作者指出,IPv4向IPv6过渡期间可能出现类似连接与兼容问题,建议启用IPv6时注意检查内网服务的响应。并分享使用命令`curl -4 -v http://内网域名`测试IPv4解析效果。
— 此摘要由33BLOG基于AI分析文章内容生成,仅供参考。

当IPv6遇上内网访问:一次路由器配置引发的血案

路由器开启IPv6后网站局域网访问异常的处理经验

上周给家里网络升级IPv6时,突然发现NAS上的个人博客在局域网里打不开了,但外网访问却一切正常。这个诡异的故障让我折腾了大半天,今天就把这个典型的”IPv6优先”导致的内网访问故障排查过程记录下来。

故障现象:熟悉的404变得陌生

那天给华硕AX86U刷了最新固件后,兴冲冲地在路由器后台勾选了”启用IPv6″选项。测试外网访问一切正常,ping6也能通,正觉得自己网络水平见长,结果用手机连WiFi访问内网NAS时,熟悉的个人博客突然报404。

最诡异的是:

  • 同一手机用4G网络访问完全正常
  • PC浏览器直接输入NAS的IPv4地址能访问
  • 但通过域名访问就会失败

排查过程:DNS的罗生门

首先用nslookup检查域名解析,发现返回的是IPv6地址:

nslookup myblog.local
Server:         192.168.50.1
Address:        192.168.50.1#53

Non-authoritative answer:
Name:   myblog.local
Address: 2408:8207:7890:abcd::123

这才意识到问题所在——当设备同时支持IPv4/IPv6时,系统会优先尝试IPv6连接。而我的内网DNS服务(dnsmasq)在开启IPv6后,自动为局域网主机名添加了AAAA记录。

解决方案:给DNS加点”偏好”

尝试了三种解决方案,最终选择了最优雅的第三种:

方案一:简单粗暴法

直接在路由器禁用IPv6——这相当于把问题藏起来,显然不是技术人的作风。

方案二:本地hosts强推

在所有设备hosts文件里强制指定IPv4地址,但维护成本太高,新设备接入又要配置。

方案三:DNS配置优化(推荐)

在dnsmasq配置中添加以下参数,让局域网域名优先返回IPv4记录:

# 华硕路由器自定义配置
dnsmasq.conf.add=
filter-aaaa
local-ttl=300

这个配置的精妙之处在于:

  1. filter-aaaa过滤掉AAAA(IPv6)记录
  2. local-ttl缩短缓存时间方便调试
  3. 不影响外网IPv6的正常使用

更深层的思考:IPv6过渡期的阵痛

这次踩坑让我意识到,在IPv4向IPv6过渡的阶段,很多我们习以为常的网络行为都可能出现意外。特别是:

  • 双栈环境下应用的连接策略
  • DNS解析的优先级问题
  • 局域网服务的兼容性设计

建议大家在启用IPv6时,特别注意检查这些场景:内网文件共享、打印机访问、智能家居控制等,都可能遇到类似的”水土不服”。

后记:一个命令的救赎

最后分享个实用命令,可以快速测试禁用IPv6后的解析情况:

curl -4 -v http://内网域名

那个深夜,当这个命令终于返回熟悉的HTML时,我知道今晚能睡个好觉了。技术人的快乐,有时候就是这么简单。

评论

  • 这个问题我也遇到过,IPv6开启后打印机都用不了,最后也是改DNS解决的

  • 技术贴好评!收藏了,说不定哪天就能用上

  • 刚升级完IPv6就看到这篇,太及时了,正愁内网NAS访问不了 🤔

  • 原来filter-aaaa还有这种用法,学到了!