因停电Linux机器重启,重启后远程连接正常,就没有在意。今儿有人报告连不上网。我本机测试了下网络显示是正常的,浏览器也能上网。打开终端尝试 ping baidu.com ,结果半天没反应。
心理犯嘀咕: “浏览器能上网,终端连不上网?”
做了以下尝试:
ping 是Windows、Unix和Linux系统下的一个命令。ping 也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通。
如果ping不同可以通过以下方式查找故障原因:
127.0.0.1 是本机IP循环地址,如果本地址无法ping通,则表明本机TCP/IP协议不能正常工作。
用ifconfig查看本机IP,然后ping <本机IP>,通则表明网络适配器(网卡或MODEM )正常工作,不通则是网络适配器出现故障。
ping <同网段其他IP>,不通则表示网络线路出现故障;若网络中还包含有路由器,则应先ping 路由器在本网段端口IP,不通则此段线路有问题;通则再ping路由器所连目标计算机所在网段的端口IP,不通则是路由器出现故障;通则再ping目的计算机IP地址。
ping <网址>,比如ping baidu.com。若本机设置了DNS服务,则会显示该网址指向的IP,表明本机的DNS设置正确而且DNS解析正常,反之就可能是其中之一出现了故障。
以上前三项都通过没问题。最后连外网网址时DNS解析也正确,但是丢包。 Why?
是否是机器处于联网状态,但是屏蔽了ping命令?
因为有些服务器从网络安全的角度出发,会屏蔽ping命令,即屏蔽ICMP协议(我也不清楚这是啥)。
如何检查是否屏蔽?
Linux服务器中有一个文件 /proc/sys/net/ipv4/icmp_echo_ignore_all ,查看文件内容 cat /proc/sys/net/ipv4/icmp_echo_ignore_all
(1)当这个文件的内容为1时,为屏蔽ICMP协议;
(2)当为0时,为启用ICMP协议
两者是可以变换的,
那么我的问题是:上述所有配置都通过了,网卡、网关、icmp设置都正常,能ping通内网、网关,能解析外网,但但但但是丢包。
排除了自己机器的配置方式禁止ping,因为如果配置禁用了ping,则内部ping也将失效。怀疑是外网出口设置了防火墙、或者路由器里设置了wan口禁ping,禁止ping连通外网,但可以ping自己内部网络。
一把鼻涕一把泪,排查了一通问题还是没解决,但不影响使用,就这样吧。。。。。。
参考:1. Linux普通用户无法ping,linux无法ping的几种原因
ping命令是Linux操作系统中经常会用到的一个网络命令,也是一个通信协议,主要用来测试与目标主机的连通性,可以检查网络是否连通。那么Linux系统中无法ping的原因是什么?老男孩IT教育小编教你几种方法,通过这些方式寻找故障原因。Ping是Windows、Unix和Linux系统下的一个命令Ping也属于一个通信协议,是TCP/IP协议的一部分利用Ping命令可以检查网络是否连通。
如果Ping不通,可以通过以下方式寻找故障原因:
1、ping 127.0.0.1
127.0.0.1是本地循环地址,如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。
2、Ping 本地的IP地址
用IPConfig查看本机IP,然后Ping该IP,通则表明网络适配器工作正常,不通则是网络适配器出现故障。
3、Ping同网段计算机的IP
Ping一台同网段计算机的IP,不通则表明网络线路出现故障若网络中还包含有路由器,则应先Ping路由器在本网段端口的IP,不通则此段线路有问题通则再Ping路由器在目标计算机所在网段的端口IP,不通则是路由出现故障通则再Ping目的机IP地址。
4、Ping 网址
若要检测一个带DNS服务的网络,在上一步Ping通了目标计算机的IP地址后,仍无法连接到该机,则可Ping该机的网络名,比如Ping sina.COM.CN,正常情况下会出现该网址所指向的IP,这表明本地的DNS设置正确而且DNS服务器工作正常,反之就可能是其中之一出现了故障同样也可通过Ping计算机名检测WINS解析的故障。
一、仔细查看确定虚拟机的网卡模式是否选对,物理环境使用路由器选择桥接模式,单机或拨号上网选择NAT模式,不想用虚拟机上网则选主机模式(问题虽小,却至关重要)
二、查看网关是否配置正确
1.先进行dhclient,自动获取ip地址
2.通过#vi /etc/sysconfig/network-scripts/ifctg-eth0进行配置检查
将ONBOOT=yes设置为网卡自动开启,并将dhcp改为static静态配置,要注意
1)ip、网关一定要在同一网段内
2)DNS一般设与网关相同
3)可参考真机网关配置
3.重启下网卡确保DNS可以解析
# service network restart
4.查看DNS解析情况
# grep hosts /etc/nsswitch.conf
如果以上哪个有问题, 修正后, 再测试(ctrl+c终止), 应该就没问题了:
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)