使用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服务器上检查这个?
答案 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