Linux下网络故障诊断

Linux下网络故障诊断

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

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

诊断网卡故障

[[email protected] ~]#dmesg | grep eth
eth0:registered as PCnet/PCI II 79C970A
eth0:link up
eth0:no IPv6 routers present
[[email protected] ~]#

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

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

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

网卡驱动程序

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

[[email protected] ~]#more /etc/modeprobe.cong
alias scsi_hostadapter mptbase
...
alias eth0 pcnet32
[[email protected] ~]#

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

[[email protected] 2.6.18-8.e15]#lsmod | grep pcnet32
pcnet32       35269      0
mii            9409      1   pcnet32
[[email protected] 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技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

时间: 2024-10-05 05:41:40

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

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

Linux下网络流量实时监控工具大全 在工作中发现,经常因为业务的原因,需要即时了解某台服务器网卡的流量,虽然公司也部署了cacti软件,但cacti是五分钟统计的,没有即时性,并且有时候打开监控页面不方便,个人喜欢随手在某台服务器上输入一个命令,查看网卡即时流量.百度了一下,发现有这么几种方法,现对此类软件进行了一个总结.一.iptraf软件   rhel的iso里有包含,我公司的系统,并没有默认安装,它功能强大,可以按照协议,网卡等进行分析.1.1 iptraf安装源码安装wget ftp:

【linux】linux下网络的配置

linux网络的配置 一.配置网络vi  /etc/sysconfig/network 配置网络vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0:0" IPADDR="192.168.1.100" NETMASK="255.255.255.0"二.修改网关 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=Aaron GATEWAY

linux下网络排错以及查看网络信息命令

ping命令利用icmp协议(echorequest----echo reply包)来实现 选项 -c 次数  指定ping几次后退出 -W 时间  指定最大等待时间 注:如有大量ping请求发到本主机,会影响本机其他网络服务. ping输出详解 rtt:请求报文的响应时间 报错信息:timeout关键字:原因有2种:1,无此主机 2,对方主机不响应 目标主机不可达:这个去查rfc文档(学习网络协议的好方法就是看rfc文档),有中文版的! 判断主机是否在线的脚本: 1) for .. in ..

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

通过/proc/sys/net/ipv4/优化Linux下网络性能 /proc/sys/net/ipv4/优化1)      /proc/sys/net/ipv4/ip_forward该文件表示是否打开IP转发.0,禁止1,转发 缺省设置:02)      /proc/sys/net/ipv4/ip_default_ttl   该文件表示一个数据报的生存周期(Time To Live),即最多经过多少路由器.   缺省设置:64 增加该值会降低系统性能. 3)      /proc/sys/ne

Linux 下网络 IO 的多路复用

2019-10-20 关键字:select 与 poll 在 Linux 系统下,IO 总共可以分为以下四种: 1.阻塞 IO: 2.非阻塞 IO: 3.IO多路复用: 允许同时对多个 IO 进行控制. 4.信号驱动 IO: 一种异步通信模型.前面三种 IO 都是同步型的,唯这一种是异步型的. 阻塞 IO 所谓阻塞 IO 就是在调用相关函数时,程序的运行指针会暂停往下执行,直至这个 IO 操作有结果返回为止.简单来说就是我发起一个 IO 操作请求,你有数据就返回给我,没数据我就等你到有数据为止.

linux下网络文件系统NFS服务的搭建

上节我们了解rsync工具的使用,在这里说下,当我们学习一个工具的时候,首先要想到的是这个工具是干嘛的,然后带着这个问题去完成这个实验,这样我们才能是事半功倍.我们前面说rsync是一个数据备份工具,他支持全网定时备份,增量和全量备份.工作中主要是以定时任务+rsync做定时备份,inotify+rsync做增量备份. 下面开始我们今天的内容NFS(网络文件系统).文件系统我们现在应该不陌生了吧!就是管理文件的系统.前面我们讲解磁盘管理的时候说道我们的操作系统也是通过文件系统来管理文件的,只不过

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

windows和linux下的docker运行时的网络结构是有区别的 a.windows下,默认使用Hyper-v创建一个linux虚拟机,承载docker.所以从外向内的路径为: windows -> linux系统的docker(hyper-v中) -> docker内的容器(应用) 其中docker desktop会默认创建一个网络DockerNAT,windows宿主分配IP:10.0.75.1 linux虚拟机会分配IP:10.0.75.2,并且还另外会分配内部网段IP:172.17

linux下网络流量监控工具

今天QA同学让我协助检测下一台服务器的网络流量.没干过这活,在网上随便找了个命令.后来,发现是不对的,为了以后不出丑,决定收集下网络流量监测相关的工具. 查看某个网卡收发数据的总量 方法一 方法二 2.查看网卡的实时的流量 工具一 网上找到的一个脚本,基本上来说是处理ifconfig的结果,得到单位时间内的流量.也可以通过处理/proc/net/dev文件得到同样的结果. 使用方法:bash scriptfile eth1  不加参数默认为eth0 #!/bin/bash if [ -n "$1

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

http://blog.chinaunix.net/uid-20135786-id-3409085.html 问题描述: 我的一个服务器程序, 在Windows下运行正常. 但当在Linux(centos 6.3)下,进行对端未开启的异常测试时,出现莫名退出 . 最后跟踪到是write调用导致退出. 用gdb执行程序, 退出时提示"Broken pipe". 问题分析: 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程. 具体