我的 ISP 要求我使用自定义nameserver
设置。我已将这些放入/etc/resolv.conf
.不幸的是,每次我重新启动计算机时,该文件的内容都会更改。要连接到互联网,我必须首先编辑该文件。如何确保该文件不被更改?
答案1
罪魁祸首很可能是网络管理器-- 它会/etc/resolv.conf
在启动/关闭时以及每当您的托管网络连接发生变化时进行重建。
除非您想从系统中删除部分安装,否则最好的选择是将您的用户添加到该netdev
组中(sudo adduser myuser netdev
就可以了),然后使用network-manager-gnome
或network-manager-kde
根据您的首选风格来管理设置并指定您的 DNS 服务器。可以找到有用的教程这里。
或者,您可以深入研究/etc/network/interfaces
并指定用于连接互联网的网络连接是不是要由 NetworkManager 管理,然后将关键字添加dns-nameservers
到该接口的节中。
答案2
看一下这个resolvconf
包——它的目的是拦截 resolv.conf 的更改(例如通过 DHCP 客户端)。当发生这种情况时,它可以运行小脚本,并且可以预先添加、追加或覆盖写入 resolv.conf 的设置
Resolvconf is a framework for keeping up to date the system's
information about name servers. It sets itself up as the intermediary
between programs that supply this information (such as ifup and
ifdown, DHCP clients, the PPP daemon and local name servers) and
programs that use this information (such as DNS caches and resolver
libraries).
答案3
如果您使用 ppp 连接到您的 isp,则将在连接后、启动网络接口之前pppd
运行。/etc/ppp/ip-pre-up
大多数系统还有一个/etc/ip-up
在网络接口启动后运行的脚本,通常是一个运行目录中所有内容的脚本/etc/ip-up.d/
。此外,大多数系统已经有一个脚本来/etc/ip-up.d/
负责设置/etc/resolv.conf
.您可以使用这些脚本中的任何一个来确保名称服务器已设置。
答案4
对于任何可能偶然发现这个问题的人:我在路由器中修复了它。
我的计算机连接到我的路由器,路由器连接到我的调制解调器,最终连接到我的提供商。
在resolv.conf
我找到我的路由器的地址作为第一个名称服务器,然后是我的调制解调器的地址。由于我的路由器没有任何名称服务器表,因此不会给出任何有用的响应,但它花了相当长的时间才给出响应,因此每次我执行解析请求时,它都会首先尝试我的路由器,这需要花费一段时间很多时间,然后它会转到我的调制解调器。
因此,我需要某种方法将我的调制解调器地址作为resolv.conf
.现在我刚刚在 Debian 中使用 DHCP,所以我认为我的路由器一定给了我这个错误的名称服务器。所以我查看了我的路由器配置,发现我可以指定静态 DNS 服务器(我有一个 Linksys 路由器)。我在那里设置了调制解调器的地址,现在每次重新启动后 Debian 都会将我的调制解调器地址作为第一个名称服务器resolv.conf
!
希望对任何人都有帮助。