在没有 NetworkManager 的 Ubuntu 14.04 中列出名称服务器

在没有 NetworkManager 的 Ubuntu 14.04 中列出名称服务器

在 Ubunutu 14.04 中,我想列出机器正在使用的名称服务器。通常我会用来nm-tool列出它们,但当没有用户通过 GUI 登录时,NetworkManager 似乎不会运行,我想在 SSH 会话中执行此操作。

我不能猫/etc/resolv.conf,因为它提供的只是nameserver: 127.0.1.1。我错过了什么吗?我应该使用另一个命令吗?

[编辑]

比较正在运行的进程列表给出了这个:(有和没有 gui 运行)

$ ps -eo args --sort=command | grep dbus > gui.txt #or nogui.txt
$ diff gui.txt nogui.txt
4c4
< dbus-daemon --fork --session --address=unix:abstract=/tmp/dbus-8cBzgUufwJ
---
> //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
9,10d8
< upstart-dbus-bridge --daemon --system --user --bus-name system
< upstart-dbus-bridge --daemon --session --user --bus-name session

所以也许问题是他们无法通过 dbus 进行通信......?

答案1

如果机器通过 DHCP 获取 DNS,您可以

grep domain-name-servers /var/lib/dhcp/<interface>.leases

答案2

显然,现在唯一的通信方式dnsmasq是通过 D-Bus,并且/var/run/NetworkManager/dnsmasq.conf是空的(恕我直言,设计不好),因此要么检查var/log/syslog最后一个条目,dnsmasq要么使用 D-Bus 接口。

更多信息:http://cweiske.de/tagebuch/networkmanager-dnsmasq.htm;http://www.thekelleys.org.uk/dnsmasq/docs/DBus-interface

答案3

听起来您的系统设置有问题。我有 Ubuntu 14.04,刚刚重新启动了我的系统并确保没有人通过桌面登录。然后我通过 ssh 进入系统并且可以nmcli正常使用。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

这是通过 NetworkManager 的 cli 工具获得的列表nmcli

$ nmcli dev list | grep DNS
IP4.DNS[1]:                             192.168.1.101
IP4.DNS[2]:                             8.8.8.8
IP4.DNS[3]:                             8.8.4.4
IP4.DNS[4]:                             208.67.222.222
IP4.DNS[5]:                             208.67.220.220

这些是我配置 DHCP 服务器以在系统从中租用 IP 地址时深入研究的所有 DNS 服务器。

相关内容