轉自:http://www.centoscn.com/CentosBug/osbug/2014/0424/2860.htmlhtml
現象:centos
ping內網正常
ping外網IP,域名均沒法正常,返回錯誤:connect: Network is unreachable服務器
後面在無心中看到Linux網絡配置有添加網關的命令:網絡
route add default gw 192.168.128.2 dev eth0 dom
按上面操做,添加了默認的網關以後。再次訪問外網一切正常。spa
有這個現象來看,應該是配置文件中沒有配置網關,可是通過確認/etc/sysconfig/network 中是配置了GATEWAY地址的,並且GATEWAY的地址也是正確的,在屢次重啓network以後,只要不手動添加網關,就不能訪問外網。rest
屢次仔細確認各個網絡配置文件以後,發如今網卡配置文件中(ifcfg-eth0)有一個NETWORK配置項,對於這個配置項,自己做用不是很清楚,所以到官網查看了一下說明:server
NETWORK=<address> htm
where <address> is the network address. This directive is deprecated, as the value is calculated automatically with ifcalc.
這節奏是告訴咱們這個參數不要設置嘛(deprecate),這個值將會由ifcalc自動計算。既然不用設置,天然去掉。dns
去掉以後,重啓network服務以後,外網居然神奇的可以訪問了。使用route查看路由表,發現可以自動添加default這條信息了,原來但是一直沒有的:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.128.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 192.168.128.2 0.0.0.0 UG 0 0 0 eth0
看來問題正是這個NETWORK參數設置引發的。至於具體爲何會這樣,這個設置會產生什麼樣的影響還不是很清楚。
TIPs:爲了簡單,你也能夠將IPADDR,GATEWAY等設置到ifcfg-eth*的文件中,不用將GATEWAY單獨設置在network中。
+++++++Centos中修改/etc/resolv.conf又恢復到原來的狀態+++++++++
運行route命令時,若是遇到長時間運行,一直沒有出現default那一行,能夠檢查eth0文件中的DNS是否配置錯誤。
機器系統爲CentOS6,ip地址已經設好了。使用setup更改了一下外地公網的dns,保存退出。重啓service network restart後發現不能解析了。用ip地址能夠連,可是不能ping www.sina.com.cn
老是這樣,設置一次能夠,過一會或者重啓一下服務器,重啓一下network都不能解析了。發現/etc/resolv.conf又恢復到原來的狀態,裏面什麼都沒有了。手動加入nameserver也不行。
後來到網上查找,發現有人與我一樣的問題。原來在CentOS5.4下面直接修改/etc/resolv.conf不行。必需要在/etc /sysconfig/network-scripts/ifcfg-eth0裏面最後加上dns的設置。要否則,重啓後,確定使用eth0設置中沒有設 dns的相關信息,使/etc/resolv.conf恢復到原來的狀態。
打開/etc/sysconfig/network-scripts/ifcfg-eth0,爲了保險起見,能夠一樣修改eth1的設置
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:xx:19:xx:xx:xx
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
NETMASK=255.255.255.0
IPADDR=xxx.xxx.xxx.xxx
GATEWAY=xxx.xxx.xxx.xxx
DNS1=202.96.209.5
DNS2=202.96.209.133 這樣設置後,/etc/resolv.conf裏面根本就不須要設置。service network restart 後,能夠發現/etc/resolv.conf裏面就有兩個dns的解析ip了。配置好之後重啓網絡,cat /etc/resolv.conf,能夠看到以下參數:
# Generated by NetworkManager
nameserver 202.96.209.5
nameserver 202.96.209.133
search localdomain
DNS解析設置成功。
在此要強調一點的是,直接修改/etc/resolv.conf這個文件是沒用的,網絡服務重啓之後會根據/etc/sysconfig /network-scripts/ifcfg-eth0來重載配置,若是ifcfg-eth0沒有配置DNS,那麼resolv.conf會被沖掉,重 新變成空值。
不過對於其餘的CentOS系統是否也是這樣的,要是遇到一樣的問題。就這樣設一下試試