Dns特定域的服务器


0

有没有办法为特定域定义DNS服务器? 我正在设置一个带有放大器堆栈的开发机器,我想将具有特定域(即project.dev)的所有URL重定向到127.0.0.1。 我已经在OSX上用dnsmasq以这种方式配置了这个:

# /etc/dnsmasq.conf

address=/.dev/127.0.0.1
listen-address=127.0.0.1
port=35353

并使用此内容在/ etc / resolver中添加dev文件

# /etc/resolver/dev

nameserver 127.0.0.1
port 35353

但这在使用dhcp的arch linux中不起作用。

我用dnsmasq测试过 dig test.dev@127.0.0.1 -p 35353 它工作(返回的地址是127.0.0.1)所以问题是解析器。

我也试过把这个放入/etc/resolv.conf.head:

# /etc/resolv.conf.head
nameserver 127.0.0.1
port 35353

并使用默认的53端口配置dnsmasq,没有运气。

这是我的/etc/resolv.conf

# /etc/resolv.conf
nameserver 127.0.0.1
nameserver 192.168.0.1

如果你问你是否可以使用一个DNS服务器进行基于名称xyz.com的查询和另一个基于名称abc.com的服务器,那么在任何我曾经使用过的操作系统中都没有。 DNS服务器与接口绑定,与IP地址和默认网关定义的级别相同,因此为此,您需要一个额外的接口。
Frank Thomas

2
请注意,您可以运行本地DNS服务器,并转发NX响应以供其他DNS服务器查找,就像使用DNSMasq一样。
Frank Thomas

好的,我如何配置arch以首先使用我的本地主机进行DNS查询,然后转发查询,如果它不以.dev结尾?
Gigitsu

多数民众赞成你不能做的事。它没有选择性。
Frank Thomas

Answers:


1

你有两个选择;要么需要在192.168.0.1配置DNS服务器以将“.dev”解析为127.0.0.1,要么运行dnsmasq和route 所有 你的请求,就像你之前使用OSX一样。

多个名称服务器 resolv.conf 尝试过 为了 - 也就是说,如果顶部的一个无法到达,则使用第二个。 从顶级服务器获取NXDOMAIN或SRVFAIL响应并不算作此情况的失败

我在这里设置了相同的配置,但现在我已经控制了远程DNS服务器(使用未绑定)我能够将“.local”转换为127.0.0.1。以前我用dnsmasq做过 - 你真正需要做的就是告诉dnsmasq三件事;

无RESOLV :不要在中寻找上游名称服务器 resolv.conf 文件。因为那只是要包含 127.0.0.1那会给你一个递归头痛的问题。

服务器= 192.168.0.1 或者远程DNS服务器在哪里 - 如果dnsmasq无法在本地配置中找到问题的答案,那么dnsmasq应该在哪里查看?你也可以在这里使用类似'8.8.8.8'的东西(谷歌的公共DNS服务)。

地址/ .dev / 127.0.0.1 - 将对“* .dev”的任何请求与“127.0.0.1”匹配。

有了这个,和 nameserver=127.0.0.1 指令 resolv.conf.head,你应该被设定。


1
在192.168.0.1配置DNS服务器的想法很棒,但在我的情况下并不合适,因为我通过多个网络。最后我使用dnsmasq来响应每个dns查询并转发所有非.dev查询。通过这种方式我也获得了一个dns缓存。问题是港口的财产 /etc/resov.conf.head 这不是标准的,仅适用于osx。非常感谢您的回答!
Gigitsu

是的 - 这对每个人都不可能,因为当然有些人也无法在工作中配置他们的DNS服务器,或者它可能只是一个路由器或某些无法轻松配置的东西。我之所以提到这只是因为它 可能 以这种方式实现这一点,并且在某些情况下,它是一个更简单的解决方案,特别是如果在我们的情况下,您希望将该别名提供给多个用户,或者在不同的平台上(例如,也适用于Windows)。无论什么都有效!
Xyon
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.