如何使用dnsmasqconfiguration静态通配符子域

我有一个networking在NAT几台机器后面。

这些机器是:

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

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

服务器,有一个httpd运行,它基于虚拟主机服务于不同的站点。
所以我有site1.server.mydomain.com,site2 ..

问题是,所有的stream量都通过路由器,当我检查日志时,我总是看到路由器的IP地址(所以很难看到谁用while(1)来运行脚本)。

我只是ServerAlias site1.server.local,但大多数网站有一个根URL保存在其他url的顶部build立,所以我不能这样做。

对我来说,解决办法是告诉dnsmasq以某种方式回答* .mydomain.com与服务器的IP。

这是可能的吗?

    我在我的开发服务器上做了完全相同的事情,这样我就可以在本地拥有一个rsynced镜像,并在具有相同configuration的异地服务器上拥有rsynced镜像。

    假设你的networking服务器的内部接口是192.168.0.3,那么你需要在你的dnsmasq.conf里面(需要重新启动它)

    address=/.server.mydomain.com/192.168.0.3 

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

    我不确定我是否理解你的问题,但在我看来,你的麻烦的根本原因是NAT在你的路由器上的传入连接。 更具体地说,因为你说所有的传入连接都出现在具有路由器IP地址的日志中,所以你似乎正在伪装所有传入的连接。

    你应该做的是在路由器上的DNAT传入连接和SNAT传出连接,它将保留每个连接的源IP。