在linux服務器上有時出現ping命令錯誤,今天來總結一下
如果某台Linux服務器ping不通域名, 如下提示:
[root@localhost ~]# ping www.pythontab.com
ping: unknown host www.pythontab.com
首先確定已經連接上路由器,並且路由器能夠訪問外網,可以通過訪問網關進行確定
[root@localhost ~]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.96 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.75 ms
如果確定網絡沒問題的情況下, 可以通過如下步驟尋找解決辦法:
1) 確定設置了域名服務器, 沒有的話, 建議設置Google的公共DNS服務, 它應該不會出問題的
[root@localhost ~]# cat /etc/resolv.conf
search localdomain
因為我的DNS沒有設置所以導致了ping外網ping不通。將dns添加到該文件中
[root@localhost ~]# vi /etc/resolv.conf
search localdomain
nameserver 202.98.96.68
nameserver 61.139.2.69
~
2) 確保網關已設置
# grep GATEWAY /etc/sysconfig/network-scripts/ifcfg*
-------------------------------------------------------------------
/etc/sysconfig/network-scripts/ifcfg-eth0:GATEWAY=192.168.40.1
-------------------------------------------------------------------
如果未設置, 則通過如下方式增加網關:
# route add default gw 192.168.40.1
或者手工編寫/etc/sysconfig/network-scripts/ifcfg*文件後, 重啟network服務:
# service network restart
3) 確保可用dns解析
# grep hosts /etc/nsswitch.conf
-------------------------------------------------------------------
hosts: files dns
-------------------------------------------------------------------
如果以上哪個有問題, 修正後, 再測試, 應該就沒問題了: