Answers:
如果您具有与网络管理器和DHCP的典型连接设置,请尝试以下操作:
这应该够了吧。
/etc/NetworkManager/system-connections/
(您将需要管理特权才能访问这些配置文件)。
nmtui
顺便说一句完全相同!
您可以像这样更改它们。
首先,单击菜单栏中的网络管理器图标,然后单击该Edit Connections...
项目。
现在,根据您使用的方式切换到“有线”或“无线”选项卡-我使用的是WiFi,因此我将使用它。
选择您的网络名称,然后单击 Edit...
切换到IPv4选项卡,然后将其从自动DHCP更改为仅自动(DHCP)地址。
输入您的DNS服务器IP地址。
单击保存,就完成了!
8.8.8.8,8.8.4.4
。如果局域网足够大,我个人使用路由器或dnsmask,为局域网设置DNS也可能会有帮助。在LAN上,通常更容易在一个位置(路由器/ dnsmask / squid)维护黑名单或代理,而不是在每个客户端或每个客户端上的每个用户上维护黑名单或代理,但这超出了此处提出的问题。
在不使用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
完成此操作的另一种方法是进行编辑/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。
另一个解决方案是将路由器的配置更改为使用其他DNS服务器。只需登录其管理员,只要不是引起问题的路由器,您的所有客户端计算机都将获得更好的DNS。
我相信,如果您在网络管理器自身下更改它,更改将持续存在。
以使用eth0为例
网络管理器->有线->自动eth0-> ipv4设置。
将您的DNS服务器设置为8.8.8.8并应用。
您需要编辑/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/
/etc/resolv.conf
则会被覆盖。因此,此方法仅适用于具有手动网络配置的计算机。从技术上讲,你可以做chattr +i /etc/resolv.conf
,以防止被修改的文件(我这样做是年前),但对于大多数机器的最佳方式将JRG的做法,他的回答:askubuntu.com/a/90263/13398。
ForwardX11=yes
。
对于没有X且无须通过ssh或其他方式进行管理的无头服务器,则需要命令行解决方案。如果未覆盖resolv.conf,则这是更改名称服务器的正确位置。
如果resolv.conf 确实被覆盖,则至少在14.04LTS上,要编辑的文件为:
我强烈建议将注释字符串放入此类文件中,以使它们出现在生成的文件(/etc/resolve.conf)中,以后您可以找到它们。我使用以下形式的单行注释开始和结束每个文件:
并在它们之间放入相关指令。
您可以按此处回答的图形方式更改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已经在接受答案的评论中指出了这一点。