openwrt 内网域名 解析错误

本文介绍了解决因DNSMasq的“PreventDNS-rebindattacks”配置导致无法解析内网地址的问题。提供了两种解决方案:一是直接关闭安全配置;二是保留安全配置的同时,将需要响应的域名加入白名单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

具体问题和资料看前面两篇博客啦。主要引起原因为 DNSMASQ 的 “Prevent DNS-rebind attacks” 的安全配置,拒绝解析内网地址包。

解决方法
方法一,直接关闭该安全配置
打开路由后台 -> 网络 ->DHCP/DNS-> 一般设置 -> 重绑定保护(丢弃 RFC1918 上行响应数据)
把这个的勾去掉,就关闭了该安全设置

方法二,按照上面的设置不关闭安全设置,直接在下面 “域名白名单” 中输入需要响应的域名就可以了。

注意:刚才测试了一下,把域名的 A 记录设置成内网地址,就会产生这样的问题。



系统版本 OpenWrt Chaos Calmer 15.05.1,网络连接为:WAN 口连接内网 10.x.x.x 网段,WAN 口设置为静态 IP。设置 L2TP 接口,通过 L2TP 访问外网。问题出现于,所有外网域名均可解析和访问,telnet 或 ssh 登入 OpenWRT,在 OpenWRT 上可以 ping 通外网,WAN 口网段内网域名不能 ping 通,通过 LAN 口也只能 ping 通外网,WAN 网段无法 ping 通。

    问题解决:确定为 DNSMasq 设置问题。1. 登入 OpenWRT,创建软连接 / etc/resolv.conf -> /tmp/resolv.conf.auto。该文件配置了不同 interface 的 nameserver,经过设置,在 OpenWRT 上可以 ping 通 WAN 口内网和外网,问题只有 LAN 口无法 ping 通 WAN 口连接的内网服务器。2. 修改 DNSMasq 设置,如下图:


我昨天想查一下自己的 DNS,然后使用 cat 了一下 / etc/resolv.conf,却发现 DNS 指向自己:127.0.0.1,后来发现我自己电脑上面开了 dns 服务器,然后 netstate 查了一下 53 端口,果然是 dnsmasq 开启的。
接着我想查 dnsmasq 获取的学校的 DNS,我想她没法解析的应该会转发到这个 DNS 的吧,可是我发现我的 dnsmasq 是 ubuntu12.04 的 network manage 嵌入的,那我怎么才能获得那个我想要的 DNS 呢?后来发现 / run/nm-dns-dnsmasq.conf 这个文件里面记录了我学校分配的 DNS,不过现在又发现一个问题,nslookup 不能进行反向解析了。。。


<think>我们之前讨论的是在LAN内通过域名访问Home Assistant,现在用户问:域名解析结果是否是路由器的WAN IP? 回答要点: 1. 正常情况下,在LAN内通过域名访问,如果配置了正确的内部DNS(如路由器上的hosts或dnsmasq),解析结果应该是Home Assistant的LAN IP(如192.168.x.x)。 2. 如果解析结果变成了路由器的WAN IP,说明内部DNS没有正确配置,导致请求被转发到外部DNS,而外部DNS返回的是公网IP(即路由器的WAN IP)。这会导致“回环NAT”问题,即内网设备通过公网IP访问内网服务,可能被路由器防火墙阻止或效率低下。 因此,我们需要解释两种情况: - 正确配置:解析内网IP - 错误配置:解析为WAN IP,并说明原因和解决方法。 同时,根据问题提出3-5个相关问题。</think>### LAN内设备通过域名访问Home Assistant的解析原理 #### 一、核心解析机制 **域名解析结果取决于DNS配置策略**: ```mermaid graph LR A[客户端请求域名] --> B{路由器DNS处理策略} B -->|正确配置| C[返回LAN IP<br>192.168.x.x] B -->|错误配置| D[返回WAN IP<br>公网地址] ``` #### 二、解析结果类型分析 | **配置场景** | **解析结果** | **访问路径** | **问题风险** | |---------------------------|-------------------|----------------------------|------------------------------| | **正确配置本地DNS** | LAN IP (192.168.x) | 直连HA服务 | 无 | | **未配置本地DNS** | WAN IP (公网地址) | 流量绕行公网回传 | 防火墙拦截/NAT回环限制 | | **混合DNS环境** | 随机返回IP | 时快时慢/间歇失败 | 服务不稳定 | | **公共DNS服务(如8.8.8.8)** | 必然返回WAN IP | 完全走公网路径 | 高延迟/带宽浪费 | #### 三、WAN IP解析的根本原因 1. **路由器DNS未配置本地覆盖** ```bash # 错误配置示例(dnsmasq未覆盖公网域名) address=/hass.example.com/ # 缺少LAN IP参数 ``` 2. **DNS劫持功能开启** ```router-config # 某些路由器的"安全DNS"功能 dns-redirect = enable # 强制所有查询返回WAN IP ``` 3. **客户端使用外部DNS** ```powershell # Windows查看DNS服务器 Get-DnsClientServerAddress -AddressFamily IPv4 ``` #### 四、解决方案(强制返回LAN IP) ##### 1. 路由器DNS覆写(通用方案) ```router-config # 主流固件配置示例 address=/yourdomain.com/192.168.1.100 # OpenWrt static-host=hass.local,192.168.1.100 # DD-WRT ip host hass.local 192.168.1.100 # Cisco ``` ##### 2. 客户端本地hosts文件(临时方案) ```powershell # Windows管理员权限执行 Add-Content -Path $env:windir\System32\drivers\etc\hosts -Value "192.168.1.100 hass.local" ``` ##### 3. 禁用DNS重绑定保护(高风险) > 仅当路由器无本地DNS配置功能时使用 ```router-ui 高级设置 → 安全 → DNS重绑定保护 → 关闭 ``` #### 五、验证命令 ```bash # Linux/macOS dig hass.local @路由器IP +short # 应返回LAN IP # Windows nslookup hass.local 路由器IP # 查看返回的Addresses ``` > **关键指标**:当TTL值显示`0`(零)时,表明结果来自本地DNS缓存或hosts文件,而非公网查询。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值