Answers:
该信息由网络管理器在内部进行管理。您可以使用附带的nmcli
工具在命令行上获取此信息。
您可以使用以下命令检索特定网络接口的网络管理器信息:
nmcli dev list iface eth0
(替换eth0
为您要连接的接口)。输出将包含有关接口和该接口上当前活动连接的信息:
GENERAL.DEVICE: eth0
GENERAL.TYPE: 802-3-ethernet
...
IP4.DNS[1]: 192.168.0.1
...
从此输出中提取您想要的信息应该不会太困难。
如果您需要一种不依赖的输出来访问此数据的编程方法,那么nmcli
该信息也应该可以从Network Manager的D-Bus界面中获得。
127.0.0.1
是dnsmasq
Network Manager启动的实例(请参阅的输出sudo netstat -tlnp
)。但是最好将其视为实现细节,并向网络管理器询问所需的信息,因为这是在此处做出决定的信息。
nmcli dev list iface
不适用于我,但nmcli dev show
可以[ubuntu 15.04]
Ubuntu开发人员应该在中记录这些更改/etc/resolv.conf
,但没有。
这是帮助您入门的快速命令列表。
显示当前的DNS服务器
nm-tool | grep DNS
在中定义静态DNS服务器/etc/dhcp/dhclient.conf
。添加以下行,然后重新启动本地解析器:
supersede domain-search "sub.mydomain.com", "domain.com";
prepend domain-name-servers 192.168.0.1;
在命令提示符下:
invoke-rc.d network-manager restart
请注意,使用nmcli可能并不总是能为您提供完整的答案。例如,如果您使用openconnect(或vpnc,大概是)启动VPN,并且安装了resolvconf软件包(以照顾自动管理/etc/resolv.conf的工作),您会发现它仍然可以自动插入在127.0.0.1之前,VPN的DNS设置进入/etc/resolv.conf。在这种情况下,仅检查(例如)“ nmcli -f IP4开发人员列表”将不会为您提供真实的当前DNS列表。不知道这种情况是否会影响您,但认为值得一提。
nmcli
命令列出各种有趣的参数来创建一个简单的shell脚本应该很容易。也许我可以鞭打一些有用的东西并分享一些地方。我并不是真的认为Network Manager是必需的,并且我想也许有人可以通过其他方法来做到这一点,但这对我来说确实有效。