resolv.conf不断被某些东西重置
我需要帮助搞清楚为什么我的resolv.conf
不断改变这一点,导致我无法访问外部互联网,只能访问本地网络:
$ cat /etc/resolv.conf nameserver 192.168.16.1 domain localdomain search localdomain
我想我通过摆脱loopback接口并在/etc/network/interfaces
中的eth0接口添加jontsai的后期博客中的指令来修复它 。
我尝试过这样的事情:
$ sudo ifconfig eth0 down $ sudo ifconfig eth0 up $ sudo /etc/init.d/networking restart $ sudo dhclient
事情会暂时起作用,最终resolv.conf中的名称服务器会再次被恢复。
PS我也在ubuntuforums上发布了这个。
编辑:除了NetworkManager之外,还有至少一个其他程序正在写入resolv.conf
,我知道这一点,因为当我刷新NetworkManager时,生成的resolv.conf
文件有一个注释,显示# Generated by NetworkManager
,以及它不断改变。
所以我想这个:
while true; do echo listening; lsof | grep /etc/resolv.conf; echo sleeping; sleep 1; done
编辑2:
添加文件输出:
$ cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
没有/etc/NetworkManager/NetworkManager.conf
这样的文件
$ sudo cat /etc/NetworkManager/system-connections/Auto\ Ethernet [connection] id=Auto Ethernet uuid=#######omitted####### type=802-3-ethernet autoconnect=true timestamp=1314377063 [ipv4] method=auto ignore-auto-routes=false ignore-auto-dns=false dhcp-send-hostname=false never-default=false [802-3-ethernet] speed=0 duplex=full auto-negotiate=true mtu=0 [ipv6] method=ignore ignore-auto-routes=false ignore-auto-dns=false never-default=false
您可以对/etc/resolv.conf
进行静态添加。 这些添加可以覆盖自动添加的内容。
首先,安装resolvconf
包。
然后,按Alt + F2并运行gksudo nautilus
。 如果要添加到文件的开头,请打开/etc/resolvconf/resolv.conf.d/head
; 如果要添加到最后,请打开/etc/resolvconf/resolv.conf.d/tail
。 进行更改,保存/关闭文件,然后运行sudo resolvconf -u
以应用更改。
(很抱歉,我不记得文件开头或结尾的设置是否具有最高优先级。)
我有完全相同的问题 – 每次重新启动服务器时都会重写resolv.conf。
它是由DHCP引起的。 要将resolv.conf设置为我想要的,我编辑了/etc/dhcp/dhclient.conf
并添加了以下内容:
supersede domain-name "my.domain.com"; prepend domain-search "my.domain.com";
您可以通过对此更改来实际控制resolv.conf文件。
希望能帮助到你。
(这个答案包含调查正在发生的事情的方法。如果您使用这些方法收集并提供更多信息,我可以提供实际的解决方案。)
对于/etc/resolv.conf
看似自发更新的可能触发器是续订DHCP租约。 检查你获得DHCP租约的时间(这应该出现在系统日志中,我想在/var/log/syslog
)。
你可以使用auditd 找出修改文件的内容。 启动守护进程( sudo service auditd start
)并告诉它监视对该文件的修改:
sudo auditctl -w /etc/resolv.conf -pw
审核日志位于/var/log/audit/audit.log
。 您将看到文件被修改的时间以及修改它的程序的名称。
如果安装了resolvconf
软件包,网络管理器可能会踩到它的脚趾。 尝试关闭所有网络接口,然后停止网络管理器( sudo service network-manager stop
),然后重新启动它。
打开终端并输入
sudo chattr +i /etc/resolv.conf
+ i注意文件即使是root也不会在启动时重置。
撤消上述内容
sudo chattr -i /etc/resolv.conf
更多
man chattr
我通过在/etc/dhcp3/dhclient-enter-hooks.d
创建一个名为disable_make_resolv_conf
的文件来禁用resolv.conf
的更新
#!/bin/sh make_resolv_conf(){ }
它用与resolv.conf
刷新相同的名称替换标准函数。
我运气好的另一个选择是使用resolvconf
。
将任何条目添加到此文件:
/etc/resolvconf/resolv.conf.d/base
它们将被添加到/etc/resolv.conf
。
感谢Ask Ubuntu的post: 如何在resolv.conf中包含不会在重启时丢失的行?
迟到了,但我会发布我的案例,因为它与上述所有内容不同。
在我的例子中,/ /etc/resolv.conf
是/var/run/NetworkManager/resolv.conf
的符号链接,由于某种原因cat /etc/resolv.conf
给我错误没有这样的文件或目录(也许是因为它是空的? )
如果我用vi打开它并添加nameserver xxxx
它可以工作,但在重启时会被清除。
我尝试编辑/etc/network/interfaces
并添加dns-nameservers xxxx
,更改了/etc/dhcp/dhclient.conf
并删除了request
domain-name-servers
,也编辑了prepend domain-name-servers xxxx
。
未安装Resolvconf二进制文件, NetworkManager.conf
没有任何相关内容。 但每次我重新启动机器时,都没有域服务器。
我不知道原因是什么,但它似乎与这是一个由GNS3启动的VBox机器这一事实有关,因为在VBox设置中,我不得不在没有创建界面的情况下离开它。 显然,当我启动机器时,GNS3会动态创建一个“UDP接口”,前提是我从GNS3启动它。
所以,为了让我无休止地搜索,我只是将echo nameserver xxxx> /etc/resolv.conf
添加到/etc/profile
,问题解决了(没有解决,但解决了hehe)。 但如果有人遇到这种情况,知道这种情况会发生什么可能会很有趣。
只需在ifcfg-ethX文件中输入条目即可
DNS1 = 192.168.XX
DNS2 = 192.168.XX
DOMAIN = yourdomain.com
然后,在重新启动服务或重新启动框后,网络管理器会将这些记录发布到resolv.conf文件中。
- 让openconnect vpn通过网络管理器工作
- resolv.conf中的nameserver 127.0.1.1不会消失!
- 如何在wicd中指定DNS IP?
- Resolvconf -u给出错误“resolvconf:错误:/etc/resolv.conf必须是符号链接”
- 在/ etc / network / interfaces中编辑dns-nameservers而不重启
- 在12.10安装时无法解析dns
- 16.10无法解析DNS
- systemd-resolved,resolvconf.service,resolvconf和openresolv。 为什么,哪个以及如何?
- 为什么我的resolv.conf文件每次都会重新生成?