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

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 58 ::
收藏到网摘: 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确实没有这个问题。