获取 DNSmasq 将本地网络请求重定向到网络上的服务器

获取 DNSmasq 将本地网络请求重定向到网络上的服务器

我的网络上有一台服务器。通过域名从网络外的设备访问它非常方便。但是有些设备(比如我的手机)通过 wifi 连接到网络,当它们这样做时,它们无法查找域名是否应该指向特定的内部 IP 地址。(这是因为我的 ISP 提供的路由器缺乏发夹功能)。

虽然可以在服务器上编辑 /etc/hosts,但我无法在通过 wifi 连接的设备上编辑 /etc/hosts。

为了尝试解决这个问题,我尝试用服务器上的 DNSmasq 替换路由器的默认 DNS 服务器。

我希望 DNSmasq 将对我的域名的所有请求转发到其自身,并将任何其他域名转发到公共 DNS 查找服务(例如 openDNS)。

本质上,我希望连接到我的 WiFi 的手机等设备仍然能够连接到我的域,尽管我的路由器上没有发夹弯,并且无法编辑手机的 /etc/hosts 文件。

目前,我唯一改变的是:

  1. 路由器的 DNS 服务器 IP 指向我的服务器的静态内部 IP。
  2. 该服务器的域名指向 /etc/hosts 中它自己的静态内部 IP
  3. 我已经打开了端口 52-54,并将它们指向我的服务器(尽管它目前也是 DMZ 的,因此不应该事情)
  4. /etc/host、/etc/resolv.conf 和 /etc/dnsmasq.conf 仍为默认设置。

目前,网络上任何设备对我的任何域的所有请求都会超时,而我尚未修改 /etc/hosts 文件。

有什么建议么?

顺便说一下,我在 Bell Smartstream 2000 调制解调器上运行带有 Nginx 的 Debian 8。

答案1

域名系统,使用该address选项。

-A, --address=/<domain>[/<domain>...]/[<ipaddr>]

指定要返回给定域中任何主机的 IP 地址。域中的查询永远不会被转发,并且始终使用指定的 IP 地址(可能是 IPv4 或 IPv6)进行回复。要为域提供 IPv4 和 IPv6 地址,请使用重复的 -A 标志。

例如:

address=/example.com/www.example.com/192.168.1.42

未绑定,使用local-zonelocal-data选项。例如:

server:
    local-data: "example.com. A 192.168.1.42"
    local-data: "www.example.com. A 192.168.1.42"

相关内容