歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 解決linux不能上外網的問題

解決linux不能上外網的問題

日期:2017/3/3 12:42:50   编辑:Linux技術
最近用VMware 9.0虛擬機裝了一個linux系統,但奇怪的是:linux能ping通網關、能ping通局域網內的所有windows機器,但就是ping不同DNS地址、不能ping通任何外網,例如:執行如下命令時
ping www.baidu.com
則始終彈出:
unknown host www.baidu.com
從網上搜到如下解決方案,並按其操作,依然不行,如下紅色字體為網上提供的解決方案(轉自:/content/9678308.html):
解決linux ping: unknown host www.baidu.com
ping: unknown host www.baidu.com"
解決方案:
如果某台Linux服務器ping不通域名, 如下提示:
[root@localhost ~]# ping www.baidu.com
ping: unknown host www.baidu.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
-------------------------------------------------------------------
如果以上哪個有問題, 修正後, 再測試, 應該就沒問題了:
#ping -c 3 www.baidu.com
PING www.a.shifen.com (220.181.6.175) 56(84) bytes of data.
64 bytes from 220.181.6.175: icmp_seq=0 ttl=50 time=9.51 ms
64 bytes from 220.181.6.175: icmp_seq=1 ttl=50 time=8.45 ms
64 bytes from 220.181.6.175: icmp_seq=2 ttl=50 time=8.97 ms
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.450/8.977/9.511/0.446 ms, pipe 2
--End--
按照上述紅色字體一步一步操作完成後依然ping不通外網,經過艱苦排查,最後發現是/etc/sysconfig/network-scripts/ifcfg-eth0中GATEWAY中的地址和/etc/sysconfig/network中GATEWAY中的地址不一致導致,/etc/sysconfig/network-scripts/ifcfg-eth0中GATEWAY中的地址為網關的IP,但/etc/sysconfig/network中GATEWAY中的地址則不是網關的IP,將
/etc/sysconfig/network-scripts/ifcfg-eth0中GATEWAY中的地址和/etc/sysconfig/network中GATEWAY中的地址都設置為網關的IP,重啟Linux或執行service network restart命令後再執行 ping www.baidu.com,此時發現才能聯通外網了
Copyright © Linux教程網 All Rights Reserved