在 Bash 脚本中将主机名解析为 IP 地址的最简洁方法是什么?我正在使用Arch Linux。
如何检查我使用的是哪个 DNS 服务器(在 Linux 中)?我正在使用网络管理器和到我大学 LAN 的有线连接。(我试图找出为什么我的域没有得到解析)
我在网上看到的大部分信息都说要编辑/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.1.1
Run Code Online (Sandbox Code Playgroud)
似乎 127.0.1.1 是dnsmasq
. 该dnsmasq
文件说来编辑/etc/resolv.conf
。我试图把自定义的域名服务器中/etc/resolv.conf.d/base
,但在变化没露面/etc/resolv.conf
后运行sudo resolvconf -u
。
仅供参考,我不想在每个连接的基础上更改 DNS,我想设置默认 DNS 设置以在未另行指定时用于所有连接。
更新:
我自己回答了这个问题:https : //unix.stackexchange.com/a/163506/67024
我认为这是最好的解决方案,因为:
多年来(自 2005 年以来),我在我维护的多个 DNS / BIND 服务器上看到了奇怪的随机 DNS 请求的日志。
May 7 12:13:50 1.1.1.1 named[63742]: client 1.1.1.2#24123 (verxkgiicjmcnxg): view internal: query: verxkgiicjmcnxg IN A + (1.1.1.1)
May 7 12:13:50 1.1.1.1 named[63742]: client 1.1.1.2#29159 (epqoaqsayo): view internal: query: epqoaqsayo IN A + (1.1.1.1)
May 7 12:13:50 1.1.1.1 named[63742]: client 1.1.1.2#27411 (qlllglwcjglu): view internal: query: qlllglwcjglu IN A + (1.1.1.1)
Run Code Online (Sandbox Code Playgroud)
我通常把它归结为一些 Windows 恶意软件。但是,我开始注意到它最近也来自 Linux 和 Mac 客户端。我再次认为这可能是由于某些恶意浏览器插件造成的。
但是,在调试 Google Chrome 浏览器问题时,在我新安装的 Macbook Pro/Chrome 中,使用 URL chrome://net-internals/#dns,我在 Chrome DNS 统计页面中发现了类似的请求。
我的 Chrome 浏览器安装了相当无害的插件,也没有明显的恶意软件迹象 …
我知道它的作用,但我不知道为什么。它可以防止什么攻击?
它与所有类型的身份验证方法相关吗?(基于主机、密码、公钥、键盘交互...)
systemd-resolved
出于故障排除目的,您将如何查找 使用的 DNS 服务器?
通常我可以使用dig
和测试/etc/resolv.conf
. (或窗口 - ipconfig /all
+ nslookup
)。但是当 resolv.conf 仅指向环回地址上的本地解析器守护程序时,这种方法不起作用。systemd-resolved下用什么方法,显示它使用的DNS服务器?
(unbound
有我可以查看的配置文件。 dnsmasq
也可以,但我不确定是否可以在没有配置文件的情况下动态添加服务器。即使是 NetworkManager,现在也有nmcli
,我看到您可以查询nmcli d show wlan0
以显示接口的 DNS 配置。 )
我已连接到局域网,并通过网关访问 Internet。本地网络中有 DNS 服务器,它能够从本地网络解析计算机的主机名。
我想配置systemd-resolved和systemd-networkd,以便本地主机名的查找请求将专门定向(路由)到本地 DNS 服务器,而所有其他主机名的查找请求将专门定向到另一个远程 DNS 服务器。
假设我不知道配置文件在哪里,或者我是否应该添加更多文件并要求在答案中指定它们的路径。
我想设置一个我的浏览器将使用的 dns 记录,但我没有 root 访问权限,所以我无法修改/etc/hosts
. 我需要这样做以使用 apache 测试虚拟主机,其 dns 尚未设置。我可以访问 Firefox 和 chrome,所以如果有一个插件可以促进它;或其他选项有帮助。
更新:覆盖 dns 的替代方法可能是修改 HTTP 标头,如果将正确的标头发送到 apache,则应返回正确的内容。
~$ dig facebook.com
; <<>> DiG 9.9.2-P1 <<>> facebook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6625
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;facebook.com. IN A
;; ANSWER SECTION:
facebook.com. 205 IN A 173.252.110.27
;; Query time: 291 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Oct 6 17:55:52 …
Run Code Online (Sandbox Code Playgroud) 我知道在 Windows 上我可以发出ipconfig /displaydns
并看到本地 DNS 的缓存内容。
如何在 Linux 中列出 DNS 的缓存内容?
我想获得尽可能多的跨发行版解决方案。