430 words
2 minutes
dnsmasq

前言#

  • 设备变多了用ip地址来管理很难记住是用来做什么的。用域名来管理就很直观,好记。
  • 设备少的话可以直接在路由器或者相关主机的hosts文件上直接加入更加方便。
  • openwrt上通过配置dnsmasq来实现。

Install#

  • dnsmasq一般在openwrt系统上有自带可以直接使用。

Config#

  • 启用自定义配置目录
Terminal window
vi /etc/config/dhcp
# 在dnsmasq选项下加入
list confdir '/etc/dnsmasq.d'
option cachesize '1000'
  • 确保公网访问正常
    编辑/etc/config/network文件
    Terminal window
    'wan'选项下加入
    list dns '223.5.5.5'
    list dns '1.1.1.1'
    option peerdns '0' # 禁止使用ISP下发的DNS
  • 配置/etc/dnsmasq.d/local.conf
Terminal window
mkdir /etc/dnsmasq.d/
Terminal window
vi /etc/dnsmasq.d/local.conf
# 正向解析
address=/.myapp.lan/192.168.22.3 # 尽量不要使用公网已有的顶级域名,比如.com, .net, .org这些域名
# 在局域网中一般可以使用 .lan, .home.arpa, .local, .internal, .intra
# 如果一个ip上有多个服务,推荐在域名前面加上一个 (.)点
# 反向解析
ptr-record=3.22.168.192.in-addr.arpa,myapp.lan
#如果正向和反向都一致
host-record=myapp.lan,192.168.22.3 # 会同时生成A记录和PTR记录
  • 重启
Terminal window
/etc/init.d/dnsmasq restart
/etc/inid.d/network restart
  • Test
Terminal window
nslookup myapp.lan # 如果正常解析,就可以用域名来访问
# 也可以直接 ping myapp.lan

Finaly#

  • dnsmasqopenwrt上配置的方法有很多种,这只是其中一例。
  • 主机的ip地址建议设置为静态ip地址。
  • 使用的时候要确保主机的DNS指向的是配置了dnsmasq的,否则会跑到公网去。
  • 第一次用浏览器访问要使用完整的URL,否则也会跑到公网上去。
  • 使用使用代理的情况下在代理规则里排除内网域名。
  • 还是不能访问可以清除系统和浏览器的缓存。
dnsmasq
https://infini.cv/posts/dnsmasq/
Author
infini
Published at
2025-11-04
License
CC BY-SA 4.0

Some information may be outdated