导读 由于实现网络服务器的层次结构比较多,因此当网络出现故障时,解决起来比较复杂。下面由我来为大家详细介绍Linux系统中可能出现的一些网络问题,如网卡硬件问题、网络配置问题、驱动程序问题,以及网络层、传输层、应用层问题等。

网卡故障可以分为硬件故障和软件故障,判断硬件故障最简单的方法是把该网卡插到其它计算机上使用,如果还是老毛病则网卡损坏,否则网卡正常。实际情况下,大部分网卡出现的故障都属于软件故障,软件故障一般分为两类:一类为设置故障;一类为驱动程序故障。

诊断网卡故障
[root@localhost ~]#dmesg | grep eth
eth0:registered as PCnet/PCI II 79C970A
eth0:link up
eth0:no IPv6 routers present
[root@localhost ~]#

以上命令列出了引导信息中包含eth字符串的行,如果出现类似与“eth0:link up”的提示,表示Linux已经检测到了网卡,并处于正常工作状态。还有一条lspci命令可以列出系统检测到所有PCI设备,如果使用的网卡是PCI总线的,应该能看到这块网卡的信息。最后可以用ethtool查看以太网的链路连接是否正常。

[root@localhost ~]#ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
Link detected:yes
[root@localhost ~]#

如果看到“Link detected:yes”一行,表明网卡也对方的网络线路连接是正常的。

网卡驱动程序

在RHEL 6中,需要先查看或者设置/etc/modeprobe.cong文件,它包含了有关模块的安装和别名信息。

[root@localhost ~]#more /etc/modeprobe.cong
alias scsi_hostadapter mptbase
...
alias eth0 pcnet32
[root@localhost ~]#

以上显示中,最后一行“alias eth0 pcnet32”表示为pcnet32定义了一个别名eth0,也就是说,目前使用的以太网卡接口eth0对应的模块是pcnet32,可以使用一下命令当前系统装载的模块中是否有pcnet32模块。

[root@localhost 2.6.18-8.e15]#lsmod | grep pcnet32
pcnet32 35269 0
mii 9409 1 pcnet32
[root@localhost 2.6.18-8.e15]#

可以发现,pcnet32已经安装。因此,如果网卡已经被Linux检测到,但执行“ipconfig -a”命令时却看不到eth0接口,可以按照以上方法把网卡的驱动程序模块找到,再看看这个模块是否已经安装。

诊断网络层问题

网络层问题诊断方法很简单,就是直接ping外网的某一个域名或者IP,能正常连通的,则说明网络层没有问题。 引起ping不同的原因很多,可能会是网络线路、网络设置、路由和ARP等问题。建议先ping一下网关,看是否能通,如果与网关能通,一般就表明网络线路、自己机子的网络设置和ARP都没有问题。可以通过命令“route -n”显示路由表,然后得到网关的地址。如果路由表中没有设置默认网关,则表明路由设置有问题,此时需要设置默认网关。 有时,局域网内存在ARP攻击或者其它原因,使本机ARP缓存中的网关IP的MAC地址是错误的,这样也会造成与网关ping不通。此时,可以使用“arp -d <网关 IP>”命令删除网关的ARP条目,或者通过“arp -a <网关 IP><网关 MAC>”命令设置静态ARP条目。

诊断传输层和应用层问题

诊断传输层和应用层的故障最有效的一种手段是使用抓包工具抓取数据包进行分析。在Linux中,默认提供了tcpdump工具,利用它可以抓取所有访问本机或者从本机出去的数据包,并且可以通过规则只抓取感兴趣的数据包。 与操作系统有关的一种可能的故障原因是防火墙配置不当。在Linux中,默认情况下系统启动时会启用iptables防火墙,而且只放行少数几个端口。所以当在本机上配置了某种服务时,而这种服务需要通过TCP或UDP的某个端口才能访问,则要求防火墙开启相应的端口,否则,其它主机将不能访问本机的这种服务。

Linux下网络故障诊断的更多相关文章

  1. Linux下网络流量实时监控工具

    Linux下网络流量实时监控工具大全 在工作中发现,经常因为业务的原因,需要即时了解某台服务器网卡的流量,虽然公司也部署了cacti软件,但cacti是五分钟统计的,没有即时性,并且有时候打开监控页面 ...

  2. [原创]Linux下网络性能测试Netperf工具介绍及安装

    [原创]Linux下网络性能测试Netperf工具介绍及安装 1 官方网站 http://www.netperf.org/netperf/ 2 Netperf介绍 Netperf是一种网络性能的测试工 ...

  3. 通过/proc/sys/net/ipv4/优化Linux下网络性能

    通过/proc/sys/net/ipv4/优化Linux下网络性能 /proc/sys/net/ipv4/优化1)      /proc/sys/net/ipv4/ip_forward该文件表示是否打 ...

  4. Linux下网络服务的安全设置

    Linux下网络服务的安全设置      Linux操作系统由于其良好的稳定性.健壮性.高效性和安全性.正在成为各种网络服务的理想平台.各种网络应用在Linux系统上部有性能卓越的应用,例如,提供We ...

  5. [转帖]linux下网络监控神器"iptraf-ng"

    linux下网络监控神器"iptraf-ng" https://www.cnblogs.com/dupengfei/articles/iptraf-ng.html 优点:监控的网络 ...

  6. Linux下网络socket编程——实现服务器(select)与多个客户端通信

    一.关于socket通信 服务器端工作流程: 调用 socket() 函数创建套接字 用 bind() 函数将创建的套接字与服务端IP地址绑定 调用listen()函数监听socket() 函数创建的 ...

  7. docker在windows下和linux下网络底层的一些区别

    windows和linux下的docker运行时的网络结构是有区别的 a.windows下,默认使用Hyper-v创建一个linux虚拟机,承载docker.所以从外向内的路径为: windows - ...

  8. linux下网络程序遭遇SIGPIPE的解决(转)

    http://blog.chinaunix.net/uid-20135786-id-3409085.html 问题描述: 我的一个服务器程序, 在Windows下运行正常. 但当在Linux(cent ...

  9. Linux 下网络性能优化方法简析

    概述 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性能的优化则可基于这 3 条路径来考虑.由于数据包的转发一般是具备路由功能的设备所关注,在本文中 ...

随机推荐

  1. IT男的”幸福”生活"续8

    有段时间没写了,还是有点怀念的.   生活不记录下,怕真地会忘.. 以往的种种,时时刻刻回荡在我的脑海中,  最近看着孩子生活照, 猛得回首我便回了到了 续8. …… 坐在回去的公交车上,看着前面两M ...

  2. mysqld参数配置

    这个文件超级大, 查了一下, 大概的作用如下 是储存的格式INNODB类型数据状态下,ibdata用来储存文件的数据而库名的文件夹里面的那些表文件只是结构而已 由于mysql4.1默认试innodb, ...

  3. [Linux主机] 优化你的php-fpm(php5.3+)让你的网站跑得更快

    从php5.3以后php自带了php-fpm不是和php5.2一样以插件的方式存在了.这给我们带来一个好处502没有那么容易出现了坛子里用linux的绝大多数应该还是在用小军的lnmp的那个包,但是配 ...

  4. 第一次作业---安卓开发工具Android studio发展演变

    Android studio2013年由谷歌推出,用于安卓端的开发,我所使用的版本为2015年5月推出的1.3.2. 1.安装.配置.作为麻瓜的我,刚刚接触Android studio时在安装方面走了 ...

  5. beta汇总

    第一天:http://www.cnblogs.com/hxh969012806/p/5034085.html 第二天:http://www.cnblogs.com/zyk150910/p/503783 ...

  6. jquery事件的区别

    1. mouseenter 和 mouseover  (mouseleave 和 mouseout) 前者鼠标进入当前元素触发,内部的子元素不会触发事件. 而后者是进入当前元素后,当前元素和内部的子元 ...

  7. java多线程-Condition

    Condition 将 Object 监视器方法(wait.notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set ...

  8. java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStreamsJavamail问题

    异常描述如下: Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineI ...

  9. OC基础--description方法

    PS:经过之类重写description方法后,个人感觉有点像C#中的ToString();方法 一.description方法的作用:(输出所有的OC对象都用%@) 1.默认情况下(不重写descr ...

  10. MVC学习Day02

    MVC中的异步请求: 方法一:使用jQuery封装的函数(例子中用的是post请求,$("#form1").serialize()讲表单中的数据序列化提交给服务端)---返回的是纯 ...