动态 IP 与静态 DNS

动态 IP 与静态 DNS

可以正确获取 dhcp IP,但 DNS 无法解析。

第 2 部分问题:

  1. 使用 nmcli 我如何才能查看我正在使用的 DNS 服务器?
  2. 我应该去哪里为通过 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 dnsnm-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/' ornmcli dev show | grep DNS` 将具体显示您当前正在使用的 DNS

无论发布什么版本,您都应该能够cat /run/resolvconf/resolv.conf看到当前活动连接的名称服务器。

相关内容