标签: dnsmasq

使用 dnsmasq 将所有主机解析为同一个地址

我在用作无线 AP 的计算机上运行 Ubuntu 服务器,但此 AP 应将所有 DNS 请求解析为内部 IP 地址,而不是实际执行查找。

我想做与付费公共 WiFi 热点相同的事情 - 您可以连接,但如果您尝试加载任何网站,它们会显示默认页面。我注意到他们通过将所有域解析为内部 IP 地址来做到这一点。

我已将这些行添加到/etc/dnsmasq.conf:

# Add domains which you want to force to an IP address here.
# The example below send any host in double-click.net to a local
# web-server.
address=/com/192.168.2.1
address=/uk/192.168.2.1
address=/org/192.168.2.1
address=/gov/192.168.2.1
address=/net/192.168.2.1
address=/us/192.168.2.1
Run Code Online (Sandbox Code Playgroud)

这对那些 TLD 来说效果很好,但我希望能够对所有域都这样做,这样我就可以晚上睡觉了。

networking domain-name-system dnsmasq

31
推荐指数
1
解决办法
4万
查看次数

如何让 dnsmasq 指定备用 DNS 服务器?

我正在使用大约 10 个 kubuntu 桌面(以及众多服务器和 IP 电话)的网络上工作,并试图让 dnsmasq 将另一个 dns 服务器指定为故障转移。我尝试使用

server=192.168.0.90
Run Code Online (Sandbox Code Playgroud)

但这只是将单个 dhcp/dns 服务器添加到我的测试机器上的 /etc/resolv.conf(动态 IP 并且在没有租约的情况下重新启动)。

domain-name-system dhcp linux dnsmasq

26
推荐指数
2
解决办法
8万
查看次数

如何强制 dnsmasq 仅对某些指定的域名使用上游 dns 服务器?

现在我在 dnsmasq.conf 中有以下行,它可以很好地处理所有请求(/#/匹配任何域;这是必需的):

address=/#/127.0.0.1
Run Code Online (Sandbox Code Playgroud)

但是,有些域需要解析为 .ip 以外的 IP 地址127.0.0.1。

作为临时解决方案,它们已添加到/etc/hosts:

209.85.148.95   ajax.googleapis.com
207.97.227.245  underscorejs.org
72.21.194.31    s3.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是一个非常临时的解决方案:一旦任何目标域的 IP 地址发生变化,它就会停止工作。

我的问题是:如何强制 dnsmasq 使用上游 dns 服务器来解析某些(指定的)域名的 IP 地址?

domain-name-system linux dnsmasq

23
推荐指数
1
解决办法
4万
查看次数

为本地网络设置 dnsmasq

我和一小群开发人员刚搬到一个新办公室,我想在我们的开发服务器上设置 dnsmasq,所以当我们在那里部署 Web 应用程序时,我们不必编辑我们自己的主机文件。我们在 192.168.3.1 有一个我们无法访问的路由器。我想我会在开发盒上安装一个 DNS 服务器,我们都将它的 IP 记录为辅助 DNS 服务器。不幸的是,我正在努力完成这项工作。

开发服务器名称为devbox,IP为192.168.3.99,运行的是最新的Ubuntu Server(Karmic)

我的电脑正在运行 Ubuntu Desktop (Karmic)

我想要达到的目标

假设我在开发箱上运行了三个网站,网站 1、网站 2、网站 3。我想通过 URL 访问它们:

http://website1.devbox
http://website2.devbox
http://website3.devbox
Run Code Online (Sandbox Code Playgroud)

所以我已经在开发盒上配置了Apache,安装了dnsmasq,并将以下几行放入其hosts文件中:

192.168.3.99 website1.devbox
192.168.3.99 website2.devbox
192.168.3.99 website3.devbox
Run Code Online (Sandbox Code Playgroud)

并编辑了我自己的 resolv.conf 文件以将开发框包含为名称服务器:

nameserver 192.168.3.99 
Run Code Online (Sandbox Code Playgroud)

它工作正常,我可以访问这些网站。问题是它不能很好地扩展。我希望所有以 .devbox 结尾的域名都转发到开发箱,这就是我正在努力解决的问题。

我试过把

192.168.3.99 devbox
Run Code Online (Sandbox Code Playgroud)

进入主机文件,并编辑 dnsmasq.conf 中的行:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/devbox/
Run Code Online (Sandbox Code Playgroud)

但我无法让它工作。如果我尝试任何未明确存在于开发箱的主机文件中的 URL,DNS 查找将失败。

本地指令是否用于其他用途?我看错地方了吗?

domain-name-system dnsmasq

21
推荐指数
2
解决办法
5万
查看次数

如何使用 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。

这有可能吗?

linux nat dnsmasq

15
推荐指数
1
解决办法
2万
查看次数

在 dnsmasq 中禁用 dhcp 服务

我只想使用 dnsmasq 将所有 dns 请求转发到 google 的 dns 服务器并禁用 dhcp ...

我怎样才能达到这个结果?

dnsmasq

15
推荐指数
2
解决办法
3万
查看次数

带有 DNSMasq 的每客户端 DNS 服务器

我正在运行带有 DNSMasq 的 TomatoUSB 来为我的本地网络提供 DHCP 和 DNS 服务。

我想要实现的是根据 IP 或 MAC 为网络上的一两个特定客户端提供替代 DNS 服务器(这些客户端不接受 DNS 服务器的手动配置)。

这是否是 DNS Masq 为这些 IP 使用不同的 DNS 服务器或是否通过 DHCP 提供不同的 DNS 服务器都没有关系。

domain-name-system dhcp tomato dnsmasq

15
推荐指数
1
解决办法
1万
查看次数

将 dnsmasq 的 DHCP 服务器限制在一个接口

我如何配置dnsmasq只分配地址eth0,而不是wlan0?

dnsmasq

13
推荐指数
3
解决办法
3万
查看次数

使用 dnsmasq 在本地将域名解析为 CNAME 别名

我想将域名解析为somedomain.comCNAME(AWS 负载均衡器,例如some-balancer-1213231237.ap-southeast-2.elb.amazonaws.com),但仅限于本地。

我的意思是要实现的是,每当我尝试访问时somedomain.com,我都希望得到上述负载均衡器的服务——这应该仅限于我自己的计算机。

这是不可能通过编辑来实现的,/etc/hosts因为在那里只能映射 A 记录(IP 地址)。我在某处读到dnsmasq了实现这一目标的最强大的解决方案。但是,文档对于如何实现这一点非常不清楚。我很感激你的建议,也许还有一个带例子的配置。谢谢!

domain-name-system cname-record dnsmasq

12
推荐指数
1
解决办法
2万
查看次数

找出哪个 DNS 服务器回答了您的查询

我有一个看似简单的问题,但经过一番搜索却找不到确切的答案:
我知道,如果我想查找某个域名的 IP 地址,请键入,例如:

nslookup google.de
Run Code Online (Sandbox Code Playgroud)

并得到

Server:     127.0.1.1
Address:    127.0.1.1#53

Non-authoritative answer:
Name:   google.de
Address: 172.217.18.3
Run Code Online (Sandbox Code Playgroud)

但是,我不知道我从哪里得到这个答案。据我所知,一开始我的解析器试图询问我的本地 DNS 服务器(在 Ubuntu dnsmasq 上),如果那个服务器没有答案,它会询问下一个服务器等等。但是我想知道到底是哪个服务器给出了答案。那可能吗?
我也试过

dig +trace www.google.com
Run Code Online (Sandbox Code Playgroud)

它提供有关已发布服务器的所有信息,但执行完全迭代查找。我基本上喜欢这样的答案,但需要正常查找。

domain-name-system nslookup dnsmasq dns-zone dns-lookup

12
推荐指数
2
解决办法
4万
查看次数