更改DNS IP的正确方法是什么?


56

我怀疑我的ADSL调制解调器/路由器提供的名称服务器有问题。每当我第一次在ubuntu中浏览网站时,解析域名至少需要15秒。

要解决该问题,我将域名服务器配置/etc/resolv.conf从192.168.1.1(我的ADSL调制解调器)更改为8.8.8.8(Google的主DNS)。这似乎可以解决问题,但是不幸的/etc/resolv.conf是,每次启动时,我对“ NetworkManager”的更改都会覆盖我的更改。

在ubuntu 10.4中配置名称服务器IP的正确方法是什么?

Answers:


51

如果您具有与网络管理器和DHCP的典型连接设置,请尝试以下操作:

  1. 右键单击面板中的网络管理器图标,然后选择“编辑连接...”
  2. 从有线或无线选项卡中选择您的连接,然后选择“编辑”
  3. (如果连接设置为“系统范围内可用”,请输入密码)
  4. 选择“ IPv4设置”选项卡
  5. 将方法切换为“仅自动(DHCP)地址”
  6. 在“其他DNS服务器”框中输入所需的名称服务器,然后按“应用”

这应该够了吧。


1
即使NetworkManager现在使用resolvconf来处理resolv.conf,它在Ubuntu 12.04及更高版本中仍可继续工作。
jdthood 2012年

4
如果您想知道配置的最终位置,请查看一下/etc/NetworkManager/system-connections/(您将需要管理特权才能访问这些配置文件)。
Lekensteyn 2014年

2
这仅更改当前连接的dns,但是还有一种方法可以 更改全局DNS
rubo77 2015年

清单对我来说是空的。默认情况下使用什么?
J. Taylor

1
在终端界面nmtui顺便说一句完全相同!
Granitosaurus

30

您可以像这样更改它们。

首先,单击菜单栏中的网络管理器图标,然后单击该Edit Connections...项目。

在此处输入图片说明

现在,根据您使用的方式切换到“有线”或“无线”选项卡-我使用的是WiFi,因此我将使用它。

选择您的网络名称,然后单击 Edit...

切换到IPv4选项卡,然后将其从自动DHCP更改为仅自动(DHCP)地址。

输入您的DNS服务器IP地址。

在此处输入图片说明

单击保存,就完成了!


虽然可以在任何PC的网络设置中更改DNS服务器,但是最好在连接到Internet的实际路由器中更改它们,以便所有连接的设备都可以从中受益。
马克·鲁尼

3
如果他本身没有路由器怎么办?还是他只想更改此计算机/用户的DNS?如果只是这一次呢?也许他实际上没有路由器访问权限,并且想要使用其他DNS服务器...我可以整夜在此列表中添加原因。好的提示和答案@jrg。
布鲁诺·佩雷拉

6
这是使用网络管理器在一台计算机上设置dns的不错的图形方法。我只想指出您可以设置多个,以逗号分隔。8.8.8.8,8.8.4.4。如果局域网足够大,我个人使用路由器或dnsmask,为局域网设置DNS也可能会有帮助。在LAN上,通常更容易在一个位置(路由器/ dnsmask / squid)维护黑名单或代理,而不是在每个客户端或每个客户端上的每个用户上维护黑名单或代理,但这超出了此处提出的问题。
Panther

29

在不使用NetworkManger的情况下通过CLI设置名称服务器的最佳方法是,使用静态地址或独立于连接:

安装resolvconf软件包。

sudo nano /etc/resolvconf/resolv.conf.d/head

(忽略可怕的警告。/etc/resolv.conf是自动生成的,因此存在警告,因此在生成/etc/resolv.conf时会将其放入/etc/resolv.conf中。)到文件末尾,加

 nameserver <ip_of_nameserver>

按下Ctrl x并回答“是”以保存文件。最后,重新生成/etc/resolv.conf,以便立即应用更改:

 sudo resolvconf -u

1
大约一个月前,由于某种原因,我每晚的Xubuntu构建都停止解析LAN主机名。我的DHCP服务器应该将自身(192.168.68.1)作为DNS服务器发布,我也已经在网络管理器和每个地方(在此答案上方提到)对其进行了硬编码。如今,以Xubuntu / NetworkMan / Whatever使用127.0.xx IP的方式,很难诊断出问题。我可以解析外部IP,因此DNS有了新的东西。无论如何,这是解决我的问题的唯一答案。谢谢
Adam Plocher

18

完成此操作的另一种方法是进行编辑/etc/dhcp3/dhclient.conf,方法是在“运行”对话框中键入此内容(按Alt+ 出现F2

gksudo gedit /etc/dhcp3/dhclient.conf

然后找到以下行

#prepend domain-name-servers 127.0.0.1;

并将其更改为

prepend domain-name-servers 8.8.8.8;

这将使dhclient(NetworkManager使用的DHCP客户端)在此之前添加到您的dns服务器,因此resolve.conf最终看起来像这样

nameserver 8.8.8.8
nameserver 192.168.1.1

此解决方案将在任何地方都可以使用,并且您将始终获得已选择作为主要DNS的DNS。


4
在我看来,网络管理员在不咨询dhclient.conf的情况下编写了resolv.conf
daithib8 2011年

2
在ubuntu 11.10上,您需要修改/etc/dhcp/dhclient.conf而不是/etc/dhcp3/dhclient.conf
Pawel Barcik 2012年

1
可以放多个吗?
PyRulez 2014年

1
@PyRulez是的,以逗号分隔,末尾用分号分隔
Sergiy Kolodyazhnyy

2
我在14.10中尝试过,但是没有效果
rubo77

7

另一个解决方案是将路由器的配置更改为使用其他DNS服务器。只需登录其管理员,只要不是引起问题的路由器,您的所有客户端计算机都将获得更好的DNS。


+1同意如果此问题不太可能很快解决,最好将其修复在路由器上,然后将其修复给网络上的所有计算机。我发现最好使用Google DNS或OpenDNS。
马克戴维森

1
我已经做完了,但是路由器仍然充当客户端和配置的名称服务器之间的中间名称服务器,而且速度仍然很慢。
Wim Coenen

1
许多ISP都锁定了其路由器,因此您无法更改这些设置,也不必为此付费。
LassePoulsen

@Wim如果您的路由器在合理的时间内无法提供DNS解析,例如在良好的连接上说50毫秒,则说明它存在严重问题。错了,可能是无法有效地处理其他流量。可能是时候进行30美元/ 20英镑的升级了。
奥利(Oli)

1
@Oli:DNS问题仅在从Linux机器上使用路由器时才出现:我在debian上也遇到了同样的问题,但Windows没有问题。我确定这只是一些细微的兼容性问题。否则路由器工作正常。
Wim Coenen 2010年

6

单击屏幕右上方的网络指示器,然后选择Edit Connections...。选择您要修改的连接(可能从WiredWireless选项卡中,然后单击Edit...按钮。

切换到IPv4 Settings连接窗口的选项卡,并将方法从更改Automatic (DHCP)Automatic (DHCP) addresses only。现在,您应该能够指定DNS服务器IP地址。

保存连接,您应该一切顺利。更改设置后,您可能必须通过在指示器的菜单中选择连接来重置连接。


1

我相信,如果您在网络管理器自身下更改它,更改将持续存在。

以使用eth0为例

网络管理器->有线->自动eth0-> ipv4设置。

将您的DNS服务器设置为8.8.8.8并应用。


我很难找到所谓的“网络管理员”。有一个“系统-管理-网络工具”,但无济于事。最终,我发现我需要“系统-首选项-网络连接”。
Wim Coenen

1
面板中有一个网络管理器图标(该图标显示您的网络状态),您可以右键单击以编辑连接。
Marcel Stimberg 2010年

这不起作用
user568021

0

使用终端

您需要编辑/etc/resolv.conf文件来设置解析器应查询的名称服务器IP地址。最多可以定义3个名称服务器的Internet IP地址。如果有多个服务器,则解析程序库按列出的顺序查询它们。

首先输入

sudoedit /etc/resolv.conf

如下添加您的首选DNS服务器IP地址:

nameserver <preferred-ip1>
nameserver <preferred-ip2>
nameserver <preferred-ip3>

摘自: http : //www.cyberciti.biz/faq/ubuntu-linux-configure-dns-nameserver-ip-address/


6
请注意,如果名称服务器是通过DHCP设置的,/etc/resolv.conf则会被覆盖。因此,此方法仅适用于具有手动网络配置的计算机。从技术上讲,你可以chattr +i /etc/resolv.conf,以防止被修改的文件(我这样做是年前),但对于大多数机器的最佳方式将JRG的做法,他的回答:askubuntu.com/a/90263/13398
Scott Severance

@ScottSeverance系统没有X的东西
Amith KK 2011年

在这种情况下,它可能是具有手动配置的网络的服务器,在这种情况下,您的答案非常合适。但是大多数Ubuntu计算机都运行X,并且可以轻松处理其他方法。如果计算机未运行X,但安装了合适的GUI,则还可以使用来通过SSH运行图形工具ForwardX11=yes
Scott Severance

6
如果要尝试手动编辑/etc/resolv.conf文件,则正确的方法(因此它不会被覆盖)是安装“ resolvconf”软件包,然后编辑/ etc / resolvconf / resolv。 conf.d / head或/etc/resolvconf/resolv.conf.d/tail。
Azendale 2011年

0

对于没有X且无须通过ssh或其他方式进行管理的无头服务器,则需要命令行解决方案。如果未覆盖resolv.conf,则这是更改名称服务器的正确位置。

如果resolv.conf 确实被覆盖,则至少在14.04LTS上,要编辑的文件为:

  • /etc/resolvconf/resolv.conf.d/head
  • /etc/resolvconf/resolv.conf.d/tail

我强烈建议将注释字符串放入此类文件中,以使它们出现在生成的文件(/etc/resolve.conf)中,以后您可以找到它们。我使用以下形式的单行注释开始和结束每个文件:

  • #======开始/etc/resolveconf/resolv.d/tail ======
  • #======结束/etc/resolveconf/resolv.d/tail ======

并在它们之间放入相关指令。


0

我发现将线路添加dns-nameserver ip到interfaces文件中,将有线连接ipv4 设置仅设置为“ 自动(DHCP)”设置,然后输入DNS服务器IP和域名。另外,将本地DNS IP添加到DSL路由器的静态DNS部分会使NetworkManager将该本地地址包括在resolv.conf其覆盖的文件中,以及从路由器检索到的其他信息中。所有这些似乎使本地DNS名称解析具有持久性-这似乎是一项令人惊讶的艰巨任务。我对本地DNS的需求是使用mount.cifsDHCP服务的网络将Linux客户端安装到Samba共享。


0

如果Network-Manager已停止并/etc/resolvconf/resolv.conf.d/base已配置。

也许resolvconf --enable-updates有用。


0

您可以按此处回答的图形方式更改IPv4 DNS设置

但是,如果您想知道如何使用命令行执行相同的操作,则必须使用以下命令列出/etc/NetworkManager/system-connections目录中的文件ls

ls /etc/NetworkManager/system-connections

必须有一个名称为您的连接的文件,我的名为Wired Connection 1

因此,我们需要编辑文件并在其中添加DNS服务器:

Sudo nano "/etc/NetworkManager/system-connections/Wired connection 1"

在本[ipv4]节下添加;任意数量的DNS服务器,并用分号分隔它们,并;在最后一个DNS服务器的末尾添加一个,如下所示:

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;

如果您不想分配任何DNS,则可以删除此行。

另外,您还必须添加以下行ignore-auto-dns=true忽略DHCP提供的DNS服务器(例如,路由器配置中设置的DNS服务器):

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;
ignore-auto-dns=true

这个答案的一些背景:我试图找出在GUI的DNS设置中添加DNS服务器时要编辑的文件,所以我运行了16个小时以上的命令:sudo grep -rs "1.1.1.1" /它正在扫描Ubuntu虚拟机上的所有文件但是即使运行了这么长时间也没有完成,但是我知道文件可能存在,/etc/NetworkManager所以我grep再次指向该目录并找到了这个:/etc/NetworkManager/system-connections/Wired connection 1:dns=1.1.1.1;所以我回到这里写一个答案,只是发现Lekensteyn已经在接受答案的评论中指出了这一点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.