← 返回博客列表

路由器 DNS 重绑定保护详解:内网域名解析失败、NAS 与 Plex 访问不了怎么办

2026-10-20 · 刺猬VPN

折腾家庭网络的人经常会碰到一种怪现象:给群晖或者自建服务配了一个域名,比如 nas.example.com,在公司用手机流量能访问,回到家连上 Wi-Fi 却打不开;或者 Plex 在电视上提示只能通过中转播放,画质被压得很低。查日志会看到一行「possible DNS-rebind attack detected: nas.example.com」,路由器把这条解析结果直接丢掉了。

这就是 DNS 重绑定保护在起作用。它的本意是防止恶意网页通过把公网域名解析到内网地址,借用你的浏览器去攻击路由器后台、摄像头和 NAS。路由器的做法很粗暴:上游 DNS 返回的结果只要是 192.168.x.x、10.x.x.x、172.16 到 172.31 这类私有地址,一律拦下。安全是安全了,合法的内网域名也一起被误杀。正确的做法不是整个关掉,而是给自己的域名加白名单。

常见路由器系统的设置位置

名称各不相同,原理一样:DNS 转发器检查每一条应答,发现公网域名指向私有地址就丢弃。dnsmasq 与 Unbound 是最常见的两种实现,前者用在 OpenWrt 与大部分家用固件,后者用在 pfSense 和 OPNsense。光猫一般不开放这项设置,如果家里由光猫做 DNS,最好把 DNS 改到自己能控制的路由器上。

系统设置名称所在位置白名单方式
OpenWrtRebind protection网络 → DHCP/DNS → 常规设置域名白名单 rebind_domain
pfSenseDNS Rebinding ChecksDNS Resolver 自定义选项private-domain 指定域名
OPNsenseRebind protectionUnbound DNS → 高级私有域名列表
FRITZ!BoxDNS 重绑定保护家庭网络 → 网络 → 网络设置填写例外域名
梅林固件防止 DNS 重绑定LAN → DHCP 服务器开关为主,需自定义配置
运营商光猫通常不可见多数不开放设置改用自己的路由器做 DNS

从定位到修复:分步操作

  • 第一步:先把网络线路理清楚。如果电脑上开着刺猬VPN,确认已经打开按域名或 IP 的智能分流,让局域网地址与内网域名直连,否则解析请求会走线路,结果与路由器无关;需要查阅 OpenWrt、pfSense 的英文文档或下载软件包时,再连上线路打开官网;
  • 第二步:确认是重绑定拦截。在电脑上执行 nslookup nas.example.com 192.168.1.1,如果返回空结果或者「Non-existent domain」,而换成 nslookup nas.example.com 1.1.1.1 能拿到内网地址,基本可以确定是路由器拦掉了;
  • 第三步:查看路由器日志。OpenWrt 在终端执行 logread | grep rebind,pfSense 在状态日志的 DNS Resolver 一栏搜索 rebind,能看到被拦的具体域名;
  • 第四步:OpenWrt 添加白名单。网页界面在「DHCP/DNS」的常规设置里找到「Domain whitelist」,填入 example.com;命令行写法是 uci add_list dhcp.@dnsmasq[0].rebind_domain=example.com,然后 uci commit dhcp 并重启 dnsmasq;
  • 第五步:pfSense 添加例外。在 DNS Resolver 的自定义选项里写 server: 换行 private-domain: example.com,保存后应用;如果只是网页后台提示「Potential DNS Rebind attack detected」,那是管理界面的检查,在系统高级设置里另行处理;
  • 第六步:Plex 用户添加 plex.direct。Plex 的安全直连依赖形如 192-168-1-10.xxx.plex.direct 的域名解析到内网地址,把 plex.direct 加入白名单后,客户端才能在局域网内直连服务器;
  • 第七步:清理缓存后验证。电脑执行 ipconfig /flushdns,手机关闭再打开 Wi-Fi,再次 nslookup 应当返回内网地址,浏览器访问域名能打开 NAS;
  • 第八步:确认外网访问不受影响。用手机流量访问同一个域名,应当仍然解析到公网地址或经由反向代理访问,白名单只影响局域网内的解析;
  • 第九步:记录改动。把白名单域名写进路由器备注或自己的文档,下次刷固件、重置配置时能快速恢复。

按现象排查

并非所有内网域名打不开都是重绑定保护造成的,下面列出常见现象,帮你区分。每改一处设置就重新测试一次,不要一次改好几处,否则即使恢复了也不知道是哪一步起的作用。

  • 家里打不开、外面能打开,日志有 rebind 字样:典型的重绑定拦截,按上面的步骤加白名单;
  • 家里外面都打不开:域名解析本身有问题,先检查 DNS 记录与证书,不是重绑定的问题;
  • 加了白名单仍然解析失败:电脑可能用了浏览器内置的加密 DNS,绕过了路由器,在浏览器设置里关闭安全 DNS 或改为使用系统 DNS;
  • 电脑正常、手机不行:手机开了私人 DNS,Android 的「私人 DNS」或 iOS 的描述文件会绕过路由器,关掉后再试;
  • 开着线路时打不开,断开后正常:线路的分流规则没有把内网域名设为直连,在客户端里把相关域名或网段加入直连;
  • Plex 一直显示远程中转:plex.direct 没加白名单,或者路由器开启了 NAT 回流限制,两者都要检查;
  • 能解析但网页显示证书错误:解析没问题,证书不匹配,检查反向代理的证书是否覆盖该域名;
  • 改完设置不生效:dnsmasq 没有重启或者客户端缓存还在,重启服务并清除缓存。

线路与客户端的配合

排查内网 DNS 时,最常见的干扰就是电脑上同时开着代理工具。刺猬VPN的智能分流按域名或 IP 决定走向,把私有网段和自己的内网域名设为直连,解析与访问都留在局域网内,路由器的设置才看得出效果。客户端没有分应用代理,按域名规则处理即可。

对比项免费节点时长套餐流量包
适合场景查阅文档、下载软件包长期远程访问与日常上网临时下载固件与镜像
流量规则永久免费、不限流量有效期内不限流量用多少扣多少,到期未用完清零
速度规则不限速不限速不限速
内网直连可按域名或 IP 分流可按域名或 IP 分流可按域名或 IP 分流
断线保护支持 Kill Switch支持 Kill Switch支持 Kill Switch
多设备一个账号多设备在线一个账号多设备在线一个账号多设备在线

要不要直接关掉重绑定保护

很多教程会建议直接关闭这项保护,这样做确实省事,但等于放弃了一层防护。重绑定攻击的门槛并不高:恶意网页先让浏览器解析到攻击者的服务器,过几秒再把同一个域名改解析到 192.168.1.1,浏览器认为还是同源,于是网页脚本就能读写路由器后台。如果你的路由器、摄像头仍在用默认密码,这种攻击可以直接改掉 DNS 设置。

所以更好的做法是保持保护开启,只给自己拥有的域名加白名单。如果需要整个局域网的设备都用同一套内网解析,也可以在路由器上直接为这些域名写本地记录,让解析根本不经过上游,这就是所谓的分离解析,比开白名单更彻底,也更容易管理。

哪些家庭服务最容易被误伤

受影响最多的是三类服务。第一类是 NAS 与自建网盘,群晖、威联通和自己搭的 Nextcloud 都习惯用域名加证书访问,域名在内网解析到 NAS 的局域网地址,正好撞上拦截。第二类是媒体服务器,Plex 的安全直连依赖 plex.direct,Jellyfin 与 Emby 用自己的域名时情况类似,被拦后要么打不开,要么全部走中转,画质与速度都会打折扣。

第三类是智能家居与开发环境,Home Assistant、自建的 Git 服务、内网测试站点,只要用了公网域名指向内网地址,都可能被拦。还有一些动态解析服务会把子域名解析到内网地址方便局域网访问,同样需要加白名单。排查时先列出家里所有用域名访问的服务,再逐个用 nslookup 测试,一次性把需要放行的域名都加上。

命令行对照:不同系统怎样验证解析

排查 DNS 问题时,同一条命令在不同系统上的写法略有差异。Windows 用 nslookup 域名 路由器地址,看「Addresses」一行是否是内网地址;清缓存用 ipconfig /flushdns。macOS 与 Linux 推荐用 dig @路由器地址 域名,看 ANSWER SECTION 是否有记录,状态一栏是 NOERROR 还是 NXDOMAIN;macOS 清缓存用 sudo dscacheutil -flushcache,再执行 sudo killall -HUP mDNSResponder。

路由器本身也可以测试:OpenWrt 终端里执行 nslookup 域名 127.0.0.1,直接问本机的 dnsmasq,如果这里就返回空结果,说明拦截发生在路由器上;如果这里正常而电脑上不正常,问题就在电脑到路由器之间,比如电脑没有用路由器做 DNS,或者被浏览器的加密 DNS 绕开了。把三处的结果放在一起对比,问题出在哪一层就一目了然。

和其他内网方案的分工

白名单只是让路由器放行上游返回的内网地址,更系统的办法是让同一个域名在内网和外网解析到不同地址,具体做法见 分离解析(Split-horizon DNS)配置指南,适合内网服务较多的家庭和小办公室。

如果你的最终目的是在外面访问家里的 NAS,还要解决公网地址、端口映射、反向代理与证书等问题,完整方案对比见 NAS 远程访问指南。重绑定保护只决定局域网内能不能用域名访问,外网访问是另一条链路,两者分开排查最清楚。

常见报错速查表

现象原因解决办法
possible DNS-rebind attack detecteddnsmasq 拦截私有地址应答添加 rebind_domain 白名单
Potential DNS Rebind attack detectedpfSense 后台访问检查用 IP 访问或在高级设置调整
Non-existent domain解析结果被丢弃对比路由器与公共 DNS 的结果
Plex 只能远程中转plex.direct 被拦截把 plex.direct 加入白名单
白名单不生效客户端用了加密 DNS关闭浏览器或手机的私人 DNS
开线路后打不开内网域名未设为直连在分流规则中加入直连

高频问答

  • 问:DNS 重绑定保护有必要开吗?答:有必要,它能防止恶意网页借浏览器攻击内网设备,建议保持开启并配置白名单;
  • 问:白名单写子域名还是主域名?答:写主域名即可,例如 example.com 会同时放行它的所有子域名;
  • 问:为什么外网访问不受影响?答:外网解析拿到的是公网地址,不会触发私有地址的检查;
  • 问:用公共 DNS 能绕过吗?答:能,但会失去路由器的本地解析与过滤功能,不如加白名单;
  • 问:光猫上找不到这个设置怎么办?答:把 DHCP 分配的 DNS 改成自己的路由器,由路由器负责解析;
  • 问:开着刺猬VPN会影响吗?答:会,如果没把内网地址设为直连,解析会走线路,需要在分流里设置直连。

既安全又能用的内网解析

路由器 DNS 重绑定保护拦下内网域名,是安全机制与合法需求的冲突。用 nslookup 对比路由器与公共 DNS 的结果先定位,再看日志确认被拦的域名,最后只给自己的域名加白名单,必要时改用分离解析。浏览器和手机的加密 DNS、电脑上的代理工具都可能绕过路由器,排查时要一并检查。

刺猬VPN采用 HTTPS+AES 加密传输,支持自定义用户名和密码匿名注册,不需要邮箱和手机号;免费节点永久免费、不限流量、不限速,适合查阅文档与下载软件包;时长套餐有效期内不限流量、不限速,客户端的智能分流可以让内网地址保持直连,带断线保护,一个账号支持多设备同时在线。各家路由器的设置位置以官方文档为准,实际可用性取决于当前网络环境。

开始使用刺猬VPN:免费节点即刻体验,全球会员线路

刺猬VPN提供永久免费节点,不限流量;无需邮箱,自定义用户名即可匿名注册。一个账号支持多设备同时在线,实际可用性取决于当前网络环境。