我正在使用 Ubuntu 14.04,我必须编辑resolv.conf
文件
这就是我想做的
sudo su
vi /etc/resolv.conf
但当我尝试编辑时,它说文件是只读的
当我尝试chmod +w /etc/resolv.conf
这样做时会出现错误Operation not permitted
如何编辑。我必须进行编辑,因为这台笔记本电脑是公司给我的,他们配置了名称服务器,但当我尝试在家使用它时,我的 wifi 虽然已连接,但我无法使用互联网。
如果我 ping 8.8.8.8,则表示成功
答案1
在 CentOS8 上偶然发现了这个问题。
该文件可能被标记为不可变:
# lsattr /etc/resolv.conf
----i--------------- /etc/resolv.conf
删除不可变标志如下:
# sudo chattr -i /etc/resolv.conf
# lsattr /etc/resolv.conf
-------------------- /etc/resolv.conf
答案2
编辑 resolv.conf 的正确方法是nameserver xxx.xx.xxx.xxx
向 中的 base、head 或 tail 文件添加行/etc/resolvconf/resolv.conf.d
。它们属于 root,但您可以使用 sudo (或 gksu,如果您喜欢图形文本编辑器)编辑它们。
虽然您要求编辑 resolv.conf,但还有另一种在 ubuntu 中发送 dns 的方法,不涉及 resolv.conf。查看我的/etc/dhcp/dhclient.conf
文件的第 18 行。第 19 行也是一种实用的方法。
1 # Configuration file for /sbin/dhclient, which is included in Debian's
2 # dhcp3-client package.
3 #
4 # This is a sample configuration file for dhclient. See dhclient.conf's
5 # man page for more information about the syntax of this file
6 # and a more comprehensive list of the parameters understood by
7 # dhclient.
8 #
9 # Normally, if the DHCP server provides reasonable information and does
10 # not leave anything out (like the domain name, for example), then
11 # few changes must be made to this file, if any.
12 #
13 option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
14 #send host-name "andare.fugue.com";
15 send host-name = gethostname();
16 #send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
17 #send dhcp-lease-time 3600;
18 supersede domain-name-servers 208.67.222.222,208.67.220.220,8.8.8.8;
19 # prepend domain-name-servers 208.67.222.222,208.67.220.220;
20 request subnet-mask, broadcast-address, time-offset, routers,
21 domain-name, domain-name-servers, domain-search, host-name,
22 dhcp6.name-servers, dhcp6.domain-search,
23 netbios-name-servers, netbios-scope, interface-mtu,
24 rfc3442-classless-static-routes, ntp-servers,
这会设置我的 DNS,让我可以浏览网站(nnm-tool 命令确认所有三个 DNS 均已使用),无论我在 resolv.conf 中写入什么。所以试试这个
答案3
如果您使用的是标准 Ubuntu,那么答案是:不要编辑 /etc/resolv.conf,而是使用 resolvconf 方法来配置写入 resolv.conf 的内容。还有其他文档,AskUbuntu 中也有其他答案介绍如何执行此操作。
如果您使用的机器不是按照标准的 Ubuntu 方式配置的(例如,不使用 resolvconf 来管理 resolv.conf),那么您应该向公司 IT 支持部门寻求说明。假设这些说明确实涉及编辑 /etc/resolv.conf,您应该 (1) 确保 /etc/resolv.conf 不是符号链接,或者删除符号链接(如果存在);然后执行 (2)sudo vi /etc/resolv.conf
并编辑文件。
答案4
sudo apt-get purge resolvconf
然后重启,然后你需要再次安装
sudo apt-get install resolvconf
这对我有用