歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu和DHCP的兼容性問題解決辦法

Ubuntu和DHCP的兼容性問題解決辦法

日期:2017/2/28 16:57:13   编辑: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確實沒有這個問題。

Copyright © Linux教程網 All Rights Reserved