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


14

我的NAT后面有一个网络,其中有几台机器。

这些机器是:

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

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

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

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

我只需要ServerAlias site1.server.local,但是大多数站点的根URL都保存在构建其他URL的某个位置,所以我不能这样做。

对我来说,解决方案是告诉dnsmasq以某种方式使用服务器的IP答复* .mydomain.com。

这有可能吗?

Answers:


13

我在开发服务器上进行了完全相同的操作,因此我可以在本地和具有相同配置的异地服务器上具有rsync镜像。

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

address=/.server.mydomain.com/192.168.0.3

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


THAAAAAAAAAAAAAANKS
Prody 2010年

优秀!同样的问题和解决方案也适合我!;) 非常感谢。
mnemosyn

0

我不确定我是否理解您的问题,但在我看来,您遇到麻烦的根本原因是对路由器上的传入连接进行NAT。更具体地说,由于您说所有进入的连接都出现在带有路由器ip地址的日志中,因此您似乎在伪装所有进入的连接。

您应该做的是路由器上的DNAT入站连接和SNAT出站连接,这将保留每个连接的源IP。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.