使用 dnsmasq 进行内网泛域名解析

使用 dnsmasq 进行内网泛域名解析

家里用的是 Netgear R6300v2 路由器,已刷成梅林固件。最近有一个需求就是希望在家中局域网内的任何电脑或手机等访问域名 *.hawu.home 的时候都指向我的客厅电脑 192.168.2.185,这样就可以很方便的访问我在客厅电脑部署的那些测试网站了。

前提条件

  1. 路由器已经安装梅林固件,梅林固件默认使用 dnsmasq 提供 DHCP 和 DNS 服务
  2. 在路由器的管理页面指定客厅电脑的静态 DHCP 地址为 192.168.2.185
  3. 开启路由器系统的 ssh 访问。(请自行百度)

dnsmasq 配置

  1. 在 /jffs/configs/dnsmasq.d 目录下新建一个文件 my.conf。(默认的配置文件 /etc/dnsmasq.conf 中指定了 conf-dir 为该目录)
  2. 在 my.conf 中新增一行:address = /hawu.home/192.168.2.185 表示将 hawu.home 域名解析到 192.168.2.185。
  3. 使用命令 service restart_dnsmasq 重启 dnsmasq 服务。
  4. 这时候在家里的其他电脑,不管访问 hawu.home 还是 www.hawu.home 或者 test.hawu.home,都会指向该 ip。(确保这个电脑没有改过网卡的默认 dns 设置,默认都是指向路由器的)

如果想配置多个域名都指向同一个 ip,可以使用 address = /hawu.home/other_domain/192.168.2.185

如果想配置多个域名分别指向不同 ip,可以在conf文件中写入多行 address 配置。

其他

dnsmasq 官方文档

http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html

为什么不直接修改路由器的 /etc/hosts?

首先如果直接修改 /etc/hosts 文件的话,也是需要重启 dnsmasq 服务才能生效的。

另外,hosts 文件不支持泛域名解析。不管是系统的 /etc/hosts 还是 dnsmasq 自己的 addn-hosts 都是不支持。

最后最重要的一点是,/etc/hosts 文件在路由器重启后会被重置,所以写这里是不合适的。 (\"▔□▔)汗

发表评论

电子邮件地址不会被公开。 必填项已用*标注