如何使用 dnsmasq 配置静态通配符子域

Pro*_*ody 15 linux nat dnsmasq

我在 NAT 后面有一个网络,有几台机器。

这些机器是:

  • 路由器 - NAT、dnsmasq、转发 - 直接连接到 inet
  • 服务器 - 运行 ssh、www 和其他一些东西
  • 客户端 - 在服务器上做事

我也有 mydomain.com。
server.mydomain.com 指向我的连接的 IP(单一 IP),它是路由器,它将端口转发到服务器。

服务器,有一个 httpd 运行,它基于 vhosts 为不同的站点提供服务。
所以我有site1.server.mydomain.com,site2..

问题是所有流量都通过路由器,当我检查日志时,我总是看到路由器的所有 IP(因此很难看出谁在使用 while(1) 运行脚本)。

我只想使用 ServerAlias site1.server.local,但大多数站点都有一个根 URL 保存在其他 URL 之上,所以我不能这样做。

我的解决方案是告诉 dnsmasq 以某种方式用服务器的 IP 回答 *.mydomain.com。

这有可能吗?

gra*_*ace 14

我在我的开发服务器上做完全相同的事情,这样我就可以在本地和异地服务器上使用相同的配置有一个 rsynced 镜像。

假设您的网络服务器的内部接口是 192.168.0.3,这是您在 dnsmasq.conf 中需要的内容(确保重新启动它):

address=/.server.mydomain.com/192.168.0.3
Run Code Online (Sandbox Code Playgroud)

这将为 *.server.mydomain.com 创建一个通配符条目,只要您的客户端使用 DNSMasq 作为其 DNS(并且您的服务器在内部接口中侦听),您就设置好了。