阅读内容

Ubuntu和DHCP的兼容性问题解决办法

[日期:2008-09-01] 来源:Linux社区  作者:左轻侯


我在vmware上使过Ubuntu 6、7和8,它们都存在这样一个问题:通过DHCP,能够取到DNS服务器地址,但是不起作用。结果就是导致域名不能解析,除非直接使用IP,否则无法访问互联网。

解决办法就是,不要用DHCP,直接指定静态IP。具体操作:

sudo sim /etc/resolv.conf
可以看到这个文件存放了取回的DNS服务器地址。把前几个地址删掉,只剩下最后一个,也就是当前网络的网关的地址,在我的机器上是:

search domain
nameserver 192.168.1.1

然后
sudo vim /etc/network/interfaces

把auto eth0部分的内容修改为:
auto eth0
iface eth0 inet static
address 192.168.1.110
netmask 255.255.255.0
gateway 192.168.1.1

最后重启网络:
sudo /etc/init.d/networking restart

再ping一下外网,就没问题了。

但是,过一段时间以后又会连接不上,这时候再查看/etc/resolv.conf,发现又被修改回去了。这时候,只能把/etc/resolv.conf设成只读,让别的程序改不了。从网上找到的办法是:

sudo chattr +i /etc/resolv.conf

但在我的机器上报错:
chattr: Inappropriate ioctl for device while reading flags on /etc/resolv.conf

我直接用
sudo chmod a-w /etc/resolv.conf

也没有问题。

防止/etc/resolv.conf被改写,有几种不同的办法,见
http://blog.csdn.-net/xport/archive/2007/05/03/ -1595769.aspx

至于导致这个问题的原因,我开始以为是vmware和Ubuntu的兼容性问题,后来在网上一找,无数人遇到过同样的问题,不运行在vm上的也有,甚至在FreeBSD上也有。有人说这是nat环境下的问题,但我的vm没有使用nat,而是直接通过bridge连接到家庭局域网。有人归结为Ubuntu的bug,如果是这样话,经过这么多版本还没有修正,也太过分了。但同一环境下的Fedora 6确实没有这个问题。 




相关资讯       Ubuntu 
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:

L
I
N
U
X


GOOGLE搜索
Google