我在 Arch Linux 上使用hostsblock和dnsmasq来阻止一些网站,其中之一是facebook.com和www.facebook.com。
我知道一切正常,因为对facebook.com(或www.facebook.com)的简单 ping返回 127.0.0.1。此外,如果我从 Midori 访问这些网站,则会返回一个空白页面(这是预期的行为,因为我正在使用kwakd守护程序在本地主机上返回空白页面)。
只有 Chromium 似乎绕过了我的阻止列表。从它访问 facebook.com 让我直接进入 facebook 主页。
自时间开始清理所有内容(Ctrl+Shift+Delete)并重新启动 Chromium 后,我得到了所需的行为(= 无法访问 Facebook)。
尽管过了一段时间(我不确定是什么原因造成的),Chromium 再次忽略了我的本地 dnsmasq DNS 并成功访问了 facebook 主页。
我阅读了一些关于 Chromium 的 DNS 查询的缓存和预取的内容,但我不确定如何禁用它。
问题是:为什么 Chromium 会绕过我的本地 DNS,我该怎么做才能阻止它?
我想在我的一台家用机器上设置 MediaWiki,然后将本地网络上对“wiki.home”或“wiki.local”的所有请求都指向该框。我知道这可以通过单独编辑每个 /etc/hosts 文件来完成,但我想要一些更自动化的东西,例如,如果一个朋友或家人来到我家,他们不需要搞乱hosts 文件以查看站点。
有没有一种简单的方法可以做到这一点?我已经启动并运行了 wiki,我一直在研究 dnsmasq,但我不知道如何正确设置 DNS。由于我想要一个自动化的解决方案,我觉得我需要更改路由器上的 DNS 设置,但是如果我更改了那里的 DNS 设置,我该如何解析外部主机?
路由器:Netgear WNR2000v2。路由器为我提供了手动指定 DNS 服务器的选项,我假设如果我想启动并运行它,我将不得不指向我的 Ubuntu 框。
MediaWiki 和 dnsmasq 主机:运行 Ubuntu 12.04。我在 dnsmasq 配置方面遇到了一些困难(主要是由于我的经验不足)。例如,我不确定,但我认为在安装过程中,Ubuntu 修改了我的 DNS 设置,以便/etc/resolv.conf现在127.0.0.1成为唯一的 DNS 服务器。那时,我可以解析本地主机,但除此之外别无他法。我已经通过修改/etc/resolv.conf和添加192.168.1.1为辅助名称服务器暂时解决了这个问题,但这里的问题是192.168.1.1将使用 Ubuntu 框作为 DNS。我在这里遗漏了一些明显的东西吗?
dnsmasq 设置:取消注释以下几行:
domain-needed
bogus-priv
local=/local/
domain=local
Run Code Online (Sandbox Code Playgroud)众所周知,NetworkManager 不能很好地使用dnsmasq(参考:此处)。我已经浏览了这里冗长的讨论,但仍然不确定处理这种情况的推荐方法是什么。
所有我想要的是做的是使用dnsmasq以提供DNS和DHCP以我的本地网络。在这种情况下,推荐的方法是什么?
即使对于 Ubuntu 14.04,问题似乎仍然存在,甚至声称已修复该错误。
作为变通方法,人们禁用 NM 奴役,dnsmasq-base原因如下:
NM-enslaveddnsmasq使用提供极其有限功能的硬编码选项(在 C 中)。
--listen-address=127.0.0.1)。因此,我们不能将我们的服务器用作本地网络 PC 的 DNS 服务器,即它对 LAN 完全无用。--cache-size=0)。无缓存 ==> 无 DNS 查询加速。这对于 LAN 来说非常重要,因为有许多并发用户。但我不确定它们是否仍然有效和/或修复程序如何解决问题。此外,他们中没有一个人非常清楚他们做了什么以及他们如何解决他们的问题。即,冗长的讨论中缺少解决方案部分。请问有人可以填空吗?IE,
由于dnsmasq上述原因,Ubuntu 提供的开箱即用在服务器端不起作用。而且,在客户端,“安装在那些 Ubuntu 笔记本电脑上的 dnsmasq 无法从我的 DNS 服务器进行 LAN DNS 查询” …
我有一个运行 DD-WRT 的 Linksys 路由器(固件:DD-WRT v24-sp2 (09/08/09) mini)。我已经成功解析了我的 DHCP 分配系统的 DNS 名称,但只有当我完全限定这些域时。尽管使用了“expand-hosts”DNSMasq 附加选项,该选项应该激活此精确功能。
这是我的 dnsmasq.conf:
interface=br0
resolv-file=/tmp/resolv.dnsmasq
domain=example.com
dhcp-leasefile=/tmp/dnsmasq.leases
dhcp-lease-max=51
dhcp-option=lan,3,10.77.0.5
dhcp-authoritative
dhcp-range=lan,10.77.0.100,10.77.0.149,255.255.0.0,1440m
dhcp-host=00:1A:A0:1D:82:5A,astatichostname,10.77.1.40,infinite
expand-hosts
Run Code Online (Sandbox Code Playgroud)
(仅供参考:example.com 和 astatichostname 是我使用的真实交易名称的占位符。我的网络使用 10.77.0.0/16;我的路由器在 10.77.0.5 上。)
结果:
> nslookup astatichostname 10.77.0.5
Server: 10.77.0.5
Address: 10.77.0.5#53
** server can't find astatichostname: NXDOMAIN
> nslookup astatichostname.example.com 10.77.0.5
Server: 10.77.0.5
Address: 10.77.0.5#53
Name: astatichostname.example.com
Address: 10.77.1.40
Run Code Online (Sandbox Code Playgroud)
在 DNSMasq 中还有什么可能会导致 expand-host 的问题吗?
我有一个运行 dnsmasq 的 OpenWRT 路由器。我想创建一个文件,其中包含通过路由器请求的每个域。我的输出应该是这样的:
google.com
cnn.com
wikipedia.com
news.google.com
gmail.com
Run Code Online (Sandbox Code Playgroud)
理想情况下不会有任何重复。我可能可以设置一个 cron 作业,在必要时删除重复项。现在我正试图找出一种记录它们的好方法。我查看了 dnsmasq 的选项。我找到了以下选项:
-q, --log-queries Log DNS queries.
-8, --log-facility=<facilty>|<file> Log to this syslog facility or file. (defaults to DAEMON)
--log-dhcp Extra logging for DHCP.
--log-async[=<integer>] Enable async. logging; optionally set queue length.
Run Code Online (Sandbox Code Playgroud)
在 OpenWRT 上,这些设置似乎隐藏在 /etc/init.d/dnsmasq 文件中。我尝试设置它们但没有任何运气。:-( 有没有更简单的方法来实现我的目标?
啊! 通过一点技巧,我能够将其写入日志文件。但是,它没有创建此列表所需的数据。也许 dnsmasq 不能做我想做的事?
我有一个 DD-WRT(使用 DD-WRT v24SP2-MULTI (03/21/11) std)路由器,它设置了 DNSMasq 以将某些域解析为内部地址并通过其他所有内容。路由器本身配置为使用 Google 的公共 DNS 服务器来解析地址。
我的设置屏幕如下所示:

我的问题是,当 DHCP 客户端连接时,他们将路由器加上 Google 的两个 DNS 服务器作为分配的 DNS 服务器:

这是一个问题,因为有时无线客户端会尝试解析一个应该指向内部 IP 地址的域,但最终却获得了外部 IP,因为无论出于何种原因,它们的请求都被发送到8.8.8.8而不是路由器。
我不希望路由器除了自己的 IP 作为 DNS 服务器提供任何服务。那可能吗?
我正在运行 Debian Jessie,我正在尝试将 dnsmasq 配置为缓存 DNS 服务器。我使用指南提出了以下建议/etc/dnsmasq.conf:
listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll
Run Code Online (Sandbox Code Playgroud)
做sudo service dnsmasq restart失败,它不会开始,告诉我
Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.
Run Code Online (Sandbox Code Playgroud)
好吧,有点奇怪,直接从指南中提取的配置失败了。我将删除该no-poll选项以查看它是否有效。这次它开始得很好,但 DNS 解析显然失败了。相关文件:
/etc/resolv.conf:
nameserver 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
/etc/resolv.dnsmasq:
nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)
/var/run/dnsmasq/resolv.conf:
nameserver 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
第三个文件似乎是 dnsmasq 的实时 resolv.conf 文件,因为在 dnsmasq 已经运行时向其中添加名称服务器行会导致 DNS 解析立即开始工作。所以看起来它忽略了我的/etc/resolv.dnsmasq. 我还尝试在 my …
我刚刚安装了 Ubuntu 18.04,在我配置了我的 Web 服务器之后,我还想替换基本的 dnsmasq,因为我需要支持通配符。我安装的dnsmasq使用之后 quide的的dnsmasq无法启动,因为端口53已经被使用,所以我试图通过注释掉禁用基地的dnsmasqdns=dnsmasq从etc/NetworkManager/NetworkManager.conf但没有这样的行...所以现在我问你有关如何禁用基础 dnsmasq 的帮助。
我dnsmasq在主机中运行,我希望 docker 容器使用它,而不是默认的 Google 服务器( 8.8.8.8)
我的主机/etc/resolv.conf如下所示:
» cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search mydomain.net
Run Code Online (Sandbox Code Playgroud)
容器的/etc/resolv.conf外观如下:
root@ubuntu:/# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
search mydomain.net
nameserver 8.8.8.8
nameserver …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现三个简单的目标(在我们的 CentOS8 服务器上)......
起初我直接选择了dnsmasq,因为这似乎是大多数人在我的研究中使用的。这是一个简单的安装,我很快就能启动并运行它。 #1 - 检查
然后我继续DNSSEC并最终发现我只需要将以下内容添加到我的dnsmasq.conf...
conf-file=/usr/share/dnsmasq/trust-anchors.conf
dnssec
dnssec-check-unsigned
Run Code Online (Sandbox Code Playgroud)
一切看起来都很好,#2 - 检查
dnsforwarder最后我开始了解DNSoverTLS ,并开始了解bind. 似乎如果不在链中安装另一个链接(例如 )stubby,它就不是本机支持的东西。 #3 - 软失败
我想要尽可能简单/易于维护的解决方案,即更少的移动部件,所以我开始考虑它,BIND9因为它是事实上的标准,但在这样做的过程中,我还发现systemd-resolved它已经安装并且似乎支持我的所有三个要求。#1,2,3 - 检查
我的问题是,根据我的三个要求,为什么我不使用systemd-resolved,使用其他两种方法之一的现实世界差异或好处是什么?我看到了一些人对 的憎恨systemd-resolved,但这只是因为它由于可能存在 MITM 向量而并不真正安全,但从我所看到的情况来看,这个问题已经得到了处理。
我试图找到比较这三者的细节,但一切都是关于bind和 的dnsmasq,令人惊讶的是,除了 的参考手册之外很难找到任何东西systemd-resolved。
谢谢。
编辑:所以你对情况有了更好的了解,服务器的使用率很低,邮件服务,一些文件同步,轻量的网络任务,通常< 5个用户,也许偶尔会有机器人/白痴试图随机渗透它,唯一需要注意的是,将会有很多这样的实例,所有这些实例都作为集中编排的独立单租户系统独立运行......所以我正在寻找一个简单但功能强大的 DNS 系统,它提供现代隐私和安全功能,如 DNSSEC 和点。
我并不反对一种包含更多部件的解决方案,但我只是在寻找一种理由(如果有这样做的理由)。
也就是说,我刚刚意识到 CentOS8 被困在 systemd v239 上,并且根据文档,完全工作的 DoT 直到 …