当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Ubuntu和DHCP的兼容性问题

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 Ubuntu和DHCP的兼容性问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 50 ::
收藏到网摘: n/a

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

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

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

searchdomain
nameserver192.168.1.1

然后
sudovim/etc/network/interfaces

把autoeth0部分的内容修改为:
autoeth0
ifaceeth0inetstatic
address192.168.1.110
netmask255.255.255.0
gateway192.168.1.1

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

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

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

sudochattr+i/etc/resolv.conf

但在我的机器上报错:
chattr:Inappropriateioctlfordevicewhilereadingflagson/etc/resolv.conf

我直接用
sudochmoda-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,如果是这样话,经过这么多版本还没有修正,也太过分了。但同一环境下的Fedora6确实没有这个问题。