首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
Google
首页 入门 Linux编程 系统管理 网络管理 Linux认证 Unix/BSD Linux数据库 Linux集群 Linux手册 Linux下载 Ubuntu 论坛 专题 RSS
您现在的位置: 中国IT实验室 >> Linux >> 网络管理 >> Linux服务器 >> 正文

Ubuntu和DHCP的兼容性问题

    我在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确实没有这个问题。

【责编:Zenghui】
中国IT教育
相关产品和培训
文章评论
 友情推荐链接
 专题推荐

 ·防范Linux病毒 打造没有病毒的乐土…
 ·Linux Shell编程实用指南…
 ·Linux日志分析与管理
 ·揭密Linux内存管理
 ·邮件服务Sendmail应用配置
 ·Linux 安全管理…
 ·Linux 下DNS服务器架设攻略…
 ·Linux 下的路由的配置与应用…
 ·专题:Apache实用手册
 ·全面剖析Linux文件系统
 今日更新
 认证培训
 频道精选
 Windows频道导航