我的/etc/resolv.conf文件在插拔USB无线网卡后会被自动修改,我从网上找到的不让修改方法如下: 打开/etc/ppp/peers/provider 文件,找到 “usepeerdns” 这一行然后在前面加上#号注释掉,执行命令如下: [yjm@debian]:/etc/ppp/peers$ sudo gedit /etc/ppp/peers/provider 找到 “usepeerdns” 这一行然后在前面加上#号注释掉 我虽然做了上述修改但是还没有验证这种方法的有效性。下面是网上的几篇文献 debian下/etc/resolv.conf修改后老是复原的问题 http://hi.baidu.com/manbuzhe2009/item/f9c0b0a32e9ced38020a4d68 debian下/etc/resolv.conf修改后老是复原的问题 本文来自 : http://blog.csdn.net/xiangshimoni/article/details/6958243 修改ubuntu的dns,嘿嘿,虽然修改完了/etc/resolve.conf,但是马上又被覆盖了,自动恢复成默认值了。 google发现可以用下面的方法禁止DNS被自动修改,保留系统的dns配置(/etc/resolv.conf),终端键入: sudo gedit /etc/ppp/peers/dsl-provider 找到userpeerdns这一行,注释掉即可禁止使用电信自动配置的dns,保留使用resolv.conf的dns,该文件位于/etc/resolv.conf。 dsl-provider内容如下: # Minimalistic default options file for DSL/PPPoE connections noipdefault defaultroute replacedefaultroute hide-password #lcp-echo-interval 30 #lcp-echo-failure 4 noauth persist #mtu 1492 #persist #maxfail 0 #holdoff 20 plugin rp-pppoe.so eth0 #usepeer DNS服务器设置(Ubuntu10.04) 1、两个免费好用的DNS服务器 googleDNS: 8.8.8.8; 8.8.8.4 openDNS : 208.67.220.220; 208.67.222.222 2、查看及修改本机DNS服务器 查看DNS server:nslookup; server 修改DNS server: sudo gedit /etc/resolv.conf, 修改 nameserver NDS服务器的修改是即时生效的,但这种修改方法在重启电脑后ubuntu系统会自动重写/etc/resolv.conf文件,恢复默认的DNS 3、永久修改DNS sudo gedit /etc/dhcp3/dhclient.conf 里面有一行注释掉的:#prepend domain-name-servers x.x.x.x; 将改行的注释去掉或者直接在文件中加上一行(后面加上想用的DNS): prepend domain-name-servers 8.8.8.8,8.8.8.4; 在rc.local里加入这个重启网络配置的命令: sudo /etc/init.d/networking restart sudo /etc/init.d/dns-clean start /etc/resolv.conf 的更改在重启后丢失的解决办法 http://blog.163.com/haizhifeng6@126/blog/static/45615427201231254052646/ 2012-04-12 17:40:52| 分类: linux 转自http://hi.baidu.com/iamcyh/blog/item/4cfa1c021e9630f208fa9300.html 解决方法: 在 /etc/sysconfig/network-scripts/ifcfg-eth文件中加入 PEERDNS 选项。可以是 0, 1, 2 等等,代表不同网卡的配置文件。例如,系统上第一张网卡是eth0的话,那它的配置文件就是 /etc/sysconfig/network-scripts/ifcfg-eth0 。 然后在文件中把 PEERDNS 改为 'no'. 例如: DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes TYPE=Ethernet PEERDNS=no这个选项可令 /etc/resolv.conf 在系统重启后不会被重写。 此法无效的话还要在eth0中添加dns信息: /etc/ resolv.conf文件中的 namesever 在重启RedHat5或重启service network restart 后丢失,我按文件的说明到/etc/sysconfig/network-scripts/ ifcfg-eth0 添加DNS后解决。但是我不知道到底是什么在重启的时候重写了/etc/ resolv.conf文件。 /etc/ resolv.conf文件如下: nameserver 59.51.78.210 nameserver 59.51.78.211 nameserver 192.168.0.1 search domain domain domain # Generated by NetworkManager # No nameservers found; try putting DNS servers into your # ifcfg files in /etc/sysconfig/network-scripts like so: # DNS1=xxx.xxx.xxx.xxx # DNS2=xxx.xxx.xxx.xxx # DOMAIN=lab.foo.com bar.foo.com =============================================== /etc/sysconfig/network-scripts/ ifcfg-eth0 的内容: # Intel Corporation 82540EM Gigabit Ethernet Controller DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=08:00:27:cc:64:86 NETMASK=255.255.255.0 IPADDR=192.168.0.155 GATEWAY=192.168.0.1 TYPE=Ethernet USERCTL=no IPV6INIT=no PEERDNS=no #我在这添加了DNS后,/etc/ resolv.conf文件内容保存下来了 DNS1=202.96.128.86 DNS2=202.96.128.166 DNS3=8.8.8.8 dns自动改变/etc/resolv.conf 方法1: 在/etc/sysconfig/network-scripts/ifc-eth0里(你使用的网卡的配置文件)添加PEERDNS=no参数 下次再启动就不会自动修改了 方法 2: sudo gedit /etc/dhcp3/dhclient.conf 在 /etc/dhcp3/dhclient.conf 中找到 #prepend domain-name-servers,去掉注释并增加如下设定: 代码: prepend domain-name-servers , ; 这里的、 是你的ISP给出来的DNS服务器地址。 最近又遇到 /etc/resolv.conf 会定时被改写掉的问题了,这回是在FreeBSD中! 在 LAN via NAT 或是 PPPoE 的环境中上Internet,我们总得在 resolv.conf 中指定 DNS server,而这里的 DNS server 是 通过 DHCP server 自动获取的,如果不能正确获得则需要手动把 ISP 给出的 DNS server 加入。可有时候一些“聪明”的程 序总是会跳出来搞些小动作,把我们自己写入的设定换掉,而且还是轮询的,你再改,没有过几分钟就又被改掉 。 之前遇到过的情况有(DNS server 抓不对,且会被改写!): 1.Ubuntu 6.10 (Edgy) 通过 ppp 拨号时,只抓到 ADSL Modem DHCP server IP. 2.Ubuntu 7.04 (Feisty) 那个可恶的network-manager程序会定时抓 ADSL Modem DHCP server IP. 3.VMWare 中的 Guest OS 以 NAT 网络获取IP的时候,只抓到NAT DHCP server IP. 于是有很多人都跳出来问一个问题:“如何避免 resolv.conf 被修改、改写和覆写等等?“ 然而对于*NIX 这样灵活的系统,解法也有很多,我们一一看来,哪个粗糙,哪个优雅! 解法一:修改 /sbin/dhclient-script,注释掉对 resolv.conf 进行操作的地方. Linux : 把 make_resolv_conf 这个函数的调用都给注释掉! FreeBSD: 把 > resolv.conf 所在的行都给注释掉! 解法二:强制修改 resolv.conf 的文件flag,设定为不可被更改. Linux: chattr +i /etc/resolv.conf FreeBSD: chflags schg /etc/resolv.conf 解法三:变更DHCP Client的配置文件,在特定的环节追加我们的设定. Linux (Ubuntu Dist.): 在 /etc/dhcp3/dhclient.conf 中增加如下设定:prepend domain-name-servers , ; FreeBSD: 在 /etc/dhclient.conf 中增加如下设定: prepend domain-name-servers , ; 就我自己看来:解法一属于粗糙,解法二属于暴力,解法三才是好办法! 解法三不会变更系统框架, 还是原来执行流程。我们只是在默认的prepend环节,多增加prepend的内容,让DHCP Client 在得到DNS server信息后,把我们所需要的配置追加在前面。 禁止Ubuntu&BT5 r3的DNS被自动修改 在虚拟机桥接环境下发现BT5 r3会把自己设置的DNS自动修改 步骤一、禁止DNS被自动修改 用下面的方法禁止DNS被自动修改,保留系统的dns配置(/etc/resolv.conf),终端键入: sudo vi /etc/ppp/peers/dsl-provider ###此为较早版本linux该配置文件路径 在BT5 r3中此处配置文件路径为/etc/ppp/peers/provider 找到userpeerdns这一行,注释掉即可禁止使用电信自动配置的dns,保留使用resolv.conf的dns,该文件位于/etc/resolv.conf。 provider内容如下: # Minimalistic default options file for DSL/PPPoE connections noipdefault defaultroute replacedefaultroute hide-password #lcp-echo-interval 30 #lcp-echo-failure 4 noauth persist #mtu 1492 #persist #maxfail 0 #holdoff 20 plugin rp-pppoe.so eth0 #usepeerdns user ps:关于resolv.conf /etc/resolv.conf 该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。resolv.conf的关键字主要有四个,分别是: nameserver #定义DNS服务器的IP地址domain #定义本地域名search #定义域名的搜索列表sortlist #对返回的域名进行排序 /etc/resolv.conf的一个示例: nameserver 8.8.8.8 #此为谷歌域名服务器 步骤二、重启网络服务 sudo /etc/init.d/networking restart 若仍不生效,重启Linux即可解决 (责任编辑:IT) |