可以正确获取 dhcp IP,但 DNS 无法解析。
第 2 部分问题:
- 使用 nmcli 我如何才能查看我正在使用的 DNS 服务器?
- 我应该去哪里为通过 DHCP 获取 IP 的无线接口配置静态 DNS 服务器?(/etc/network/interfaces..?)
注意,我更喜欢通过 cli 而不是 gui 来执行此操作。
谢谢!
路易斯
答案1
要回答问题的第 2 部分,您可以编辑 /etc/network/interfaces,并添加以下行:
dns-nameservers 8.8.8.8 4.2.2.2
因此你的接口文件看起来如下所示:
auto <interfacename>
iface <interfacename> inet dhcp
dns-nameservers 8.8.8.8 4.2.2.2
确保将 <interfacename> 替换为 wlan0 或任何你的 wifi 接口名称。
答案2
设置 DNS 服务器:
编辑/etc/dhcp/dhclient.conf
; 取消注释行supersede domain-name-servers
(如果没有,则添加此行)并列出所需的 dns 服务器,以逗号分隔,以分号结尾。它是 的第 20 行/etc/dhcp/dhclient.conf
。例如,我的如下所示:
supersede domain-name-servers 208.67.222.222,208.67.220.220,8.8.8.8;
设置此选项后,无论我连接到哪个接入点,我都可以获取 IP,但 DNS 在任何地方都是相同的。
15.04 有一个非常有趣的功能,您可以使用 修改连接nmcli
。 这样做 nmcli connection modify id "My Connection" +ipv4.dns "" +ipv4.dns 208.67.220.220 +ipv4.ignore-auto-dns yes
相当于设置“仅自动(DHCP)地址”并在 GUI 中添加您自己的 dns 服务器。
对于多个连接,您可以运行此脚本:
#!/bin/bash
set -x
for file in /etc/NetworkManager/system-connections/*; do
file=$(echo $file | cut -d'/' -f5-)
nmcli connection modify id "$file" +ipv4.dns "" +ipv4.dns 208.67.220.220 +ipv4.ignore-auto-dns yes
done
此外,15.04 具有nmtui
命令行工具,可让您编辑已保存在计算机上的连接信息。nmtui
在终端中打开,转到编辑连接,从列表中选择一个,然后单击TAB切换到侧面板以单击<Edit . . .>
选项。在那里,您将能够看到有关连接的特定设置的信息,并且在IPv4 CONFIGURATION
-> 下您可以设置 DNS 服务器。向下滚动到页面底部,点击。在我看来,这个最大的缺点是您必须为每个连接设置 DNS,而且它似乎没有“获取 ip 但让我使用我自己的 dns”类型的选项,该选项存在于 GUI 应用程序中。
要找到另一种设置 DNS 的方法(该方法适用于所有网络连接),请参阅我的回答另一个问题。我写了一个小脚本,您可以在至少一次连接到接入点后将 DNS 更新为您想要的任何内容。
查看您正在使用的 DNS 服务器
14.04 及更早版本havenm-toool
命令将显示有关您连接的扩展信息。要仅查看 DNS,请使用nm-tool | grep -i dns
或nm-tool | awk '/DNS/'
。您也可以对特定接口执行nmcli dev list | awk '/DNS/'
或。nmcli dev list iface wlan0 | awk '/DNS/'
15.04没有nm-tool
,但是nmcli
仍然可以使用不同的语法。nmcli dev show
将显示有关接口的扩展信息,nmcli dev show wlan0
将仅显示有关无线接口的信息,并且nmcli dev show | awk '/DNS/' or
nmcli dev show | grep DNS` 将具体显示您当前正在使用的 DNS
无论发布什么版本,您都应该能够cat /run/resolvconf/resolv.conf
看到当前活动连接的名称服务器。