带有静态 DNS 的动态 IP

Lui*_*iga 2 dns dhcp interface ip

获取 dhcp 的 IP 没问题,但 DNS 无法解析。

2部分问题:

  1. 使用 nmcli 如何查看我正在使用的 DNS 服务器?
  2. 我在哪里可以为通过 DHCP 获取 IP 的无线接口配置静态 DNS 服务器?(/etc/network/interfaces..?)

请注意,我更愿意通过 cli 而不是 gui 执行此操作。

谢谢!

路易斯

小智 5

要回答问题的第 2 部分,您可以编辑 /etc/network/interfaces,并添加以下行:

dns-nameservers 8.8.8.8 4.2.2.2
Run Code Online (Sandbox Code Playgroud)

这样你的接口文件看起来像这样:

auto <interfacename>
iface <interfacename> inet dhcp
dns-nameservers 8.8.8.8 4.2.2.2
Run Code Online (Sandbox Code Playgroud)

确保将 < interfacename > 替换为 wlan0 或任何您调用的 wifi 接口。


Ser*_*nyy 5

要设置 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
Run Code Online (Sandbox Code Playgroud)

此外,15.04 具有nmtui命令行工具,可让您编辑已保存在计算机上的连接信息。nmtui在终端中打开,转到编辑连接,从列表中选择一个,然后点击TAB切换到侧面板以单击<Edit . . .>选项。在那里您将能够看到有关您的连接的特定设置的信息,并且在IPv4 CONFIGURATION-> 您可以设置 DNS 服务器。向下滚动到页面底部,点击 。恕我直言,最大的缺点是您必须为每个连接设置 DNS,并且它似乎没有“获取 ip 但让我使用我自己的 dns”类型的选项,该选项存在于 GUI 应用程序中。

要找出另一种设置 DNS 的方法,它可以为所有网络连接完成工作,请参阅我对另一个问题的回答。我写了一个小脚本,您可以在至少一次连接到接入点后将 DNS 更新为您想要的任何内容。

查看您使用的 DNS 服务器

14.04 及更早版本具有nm-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看到当前活动连接的名称服务器。