FreeBSD/Linux 中避免 /etc/resolv.conf 被改写
2012-06-08 18:43
260 查看
最近又遇到 /etc/resolv.conf 会定时被改写掉的问题了,这回是在FreeBSD中!
在 LAN via NAT 或是 PPPoE 的环境中上Internet,我们总得在 resolv.conf 中指定 DNS server,而这里的 DNS server 是
通过 DHCP server 自动获取的,如果不能正确获得则需要手动把 ISP 给出的 DNS server 加入。可有时候一些“聪明”的程
序总是会跳出来搞些小动作,把我们自己写入的设定换掉,而且还是轮询的,你再改,没有过几分钟就又被改掉。
之前遇到过的情况有(DNS server 抓不对,且会被改写!):
Ubuntu 6.10 (Edgy) 通过 ppp 拨号时,只抓到 ADSL Modem DHCP server IP.
Ubuntu 7.04 (Feisty) 那个可恶的network-manager程序会定时抓 ADSL Modem DHCP server IP.
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 <ip1>, <ip2>;
FreeBSD:
在 /etc/dhclient.conf 中增加如下设定:prepend
domain-name-servers <ip1>, <ip2>;
解法四 以暴制暴
文件拷贝
在/etc/init.d/rc.d/rc.local 末尾添加一句
cp /etc/resolv.conf.bak /etc/resolv.conf
/etc/resolv.conf.bak 是你自己的DNS设置文件;
解法一属于粗糙,解法二属于暴力,解法三才是好办法,解法四以暴制暴
解法三不会变更系统框架,还是原来执行流程。我们只是在默认的prepend环节,多增加prepend的内容,让DHCP
Client
在得到DNS server信息后,把我们所需要的配置追加在前面。
---------------------------------------------
转至 http://hi.baidu.com/searchsprit/item/3bc5678137d0a65d27ebd977
在 LAN via NAT 或是 PPPoE 的环境中上Internet,我们总得在 resolv.conf 中指定 DNS server,而这里的 DNS server 是
通过 DHCP server 自动获取的,如果不能正确获得则需要手动把 ISP 给出的 DNS server 加入。可有时候一些“聪明”的程
序总是会跳出来搞些小动作,把我们自己写入的设定换掉,而且还是轮询的,你再改,没有过几分钟就又被改掉。
之前遇到过的情况有(DNS server 抓不对,且会被改写!):
Ubuntu 6.10 (Edgy) 通过 ppp 拨号时,只抓到 ADSL Modem DHCP server IP.
Ubuntu 7.04 (Feisty) 那个可恶的network-manager程序会定时抓 ADSL Modem DHCP server IP.
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 <ip1>, <ip2>;
FreeBSD:
在 /etc/dhclient.conf 中增加如下设定:prepend
domain-name-servers <ip1>, <ip2>;
解法四 以暴制暴
文件拷贝
在/etc/init.d/rc.d/rc.local 末尾添加一句
cp /etc/resolv.conf.bak /etc/resolv.conf
/etc/resolv.conf.bak 是你自己的DNS设置文件;
解法一属于粗糙,解法二属于暴力,解法三才是好办法,解法四以暴制暴
解法三不会变更系统框架,还是原来执行流程。我们只是在默认的prepend环节,多增加prepend的内容,让DHCP
Client
在得到DNS server信息后,把我们所需要的配置追加在前面。
---------------------------------------------
转至 http://hi.baidu.com/searchsprit/item/3bc5678137d0a65d27ebd977
相关文章推荐
- FreeBSD/Linux 中避免 /etc/resolv.conf 被改写 + 几种解决办法的比较 !
- FreeBSD/Linux 中避免/etc/resolv.conf 被改写的几种解决办法的比较
- FreeBSD/Linux 中避免 /etc/resolv.conf 被改写 + 几种解决办法的比较 !
- FreeBSD/Linux 中避免 /etc/resolv.conf 被改写 + 几种解决办法的比较 !
- FreeBSD/Linux 中避免 /etc/resolv.conf 被改写 + 几种解决办法的比较 !
- 《Linux》/etc/hosts,/etc/host.conf,/etc/resolv.conf
- linux下etc下resolv.conf文件的作用
- linux下etc下resolv.conf文件的作用
- linux下的/etc/resolv.conf和/etc/hosts
- 【Linux网络配置】linux中修改/etc/resolv.conf又恢复到原来的状态
- linux 在/etc/resolv.conf配置dns,重启网卡之后消失问题
- Linux 网络配置 修改DNS配置文件/etc/resolv.conf后,重启网络,DNS配置丢失
- 解决Linux中/etc/resolv.conf文件总是自动改回的问题
- Linux /etc/resolv.conf 配置DNS
- Linux 网络配置 修改DNS配置文件/etc/resolv.conf后,重启网络,DNS配置丢失
- Linux下/etc/resolv.conf 会被重新写入
- /etc/make.conf in freebsd ,2010,05,03
- linux /etc/resolv.conf的硬连接报错的解决方法!
- Linux /etc/resolv.conf 配置DNS
- Linux中/etc/resolv.conf文件简析