Ubuntu 18.04服务器 - 如何检查正在使用的DNS IP服务器设置

时间:2018-05-11 19:44:56

标签: ubuntu-server

使用Ubuntu 18.04 Server LTS。我试图找到一种方法来检查通过DHCP设置时实际使用的DNS IP。 resolv.conf现在只指向127.0.0.53。 / etc / systemd / network文件夹为空。 NSLOOKUP输出也始终引用内部127.0.0.53 IP。似乎所有旧技巧都不起作用。

Ubuntu文档尚未更新,因为它仍然看起来像是引用eth0的16.04的帮助,ifup和ifdown在18上都被弃用了:https://help.ubuntu.com/lts/serverguide/network-configuration.html

我已尝试通过自定义.yaml为Netplan设置静态适配器设置。设置工作正常,但我似乎无法找到我在任何地方设置的DNS IP。我希望它在DHCP和静态设置之间保持一致,但我不确定现在在哪里看。

此时我会选择C库调用或bash CLI方法。有没有人有办法在18.04服务器上检查这个?

4 个答案:

答案 0 :(得分:23)

我发现以下内容通过适配器向输出结束显示了我的DNS服务器:

systemd-resolve --status

它包含' DNS服务器'下的列表。由Link组织。我认为这与以前的Ubuntu版本有所不同。它需要一些文本解析工作,但这给了我以后的内容。

答案 1 :(得分:9)

另一种方法是:

cat /run/systemd/resolve/resolv.conf

该文件由systemd-resolved动态生成,但包含实际的DNS服务器,而不是127.0.0.53。

实际上,如果要将/etc/resolv.conf设置为默认值,则只需为其创建符号链接。 (/etc/resolv.conf是一个符号链接,默认指向/run/systemd/resolve/stub-resolv.conf

sudo mv /etc/resolv.conf /etc/resolv.conf.orig
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

示例/run/systemd/resolve/resolv.conf

# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients directly to
# all known uplink DNS servers. This file lists all configured search domains.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 10.1.2.3
search host.domain.com

有关更多信息:

http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html

答案 2 :(得分:0)

您还可以使用:

nmcli dev show eth0

用您的网络接口替换eth0以查看其配置。如果您通过DHCP获得了DNS地址,则应该在此处看到它。

答案 3 :(得分:-1)

我也对此感到惊讶。我正在运行Ubuntu 16.04 LTS并看到类似的内容。

如果您发出

dig www.google.ca +trace | grep 'Received'

响应中的第一个主机是执行服务器查找的主机。

$ dig www.google.ca +trace | grep 'Received'
;; Received 525 bytes from 127.0.1.1#53(127.0.1.1) in 19 ms
;; Received 42 bytes from 199.7.91.13#53(d.root-servers.net) in 32 ms

这意味着此框正在直接对根服务器进行自己的dns查找,并以递归方式跟踪路径以获取我的dns查找。

发现问题是启用了dnsmasq。要禁用它,请执行以下操作。

编辑NetworkManager.conf文件

sudo gedit /etc/NetworkManager/NetworkManager.conf

注释掉dnsmasq行

#dns=dnsmasq

重新启动网络管理员服务

sudo /etc/init.d/network-manager restart

然后验证它是否正在使用通过dhcp

分配的dns-server
$ dig www.google.ca +trace | grep 'Received'
;; Received 525 bytes from 192.168.30.1#53(192.168.30.1) in 18 ms
;; Received 42 bytes from 198.41.0.4#53(a.root-servers.net) in 32 ms