转载:https://www.centoschina.cn/news/linuxnews/7190.html
Linux网络故障诊断
提示:网卡故障可以分为硬件故障和软件故障,判断硬件故障最简单的方法是把该网卡插到其它计算机上使用,如果还是老毛病则网卡损坏,否则网卡正常。实际情况下,大部分网卡出现的故障都属于软件故障,软件故障一般分为两类:一类为设置故障;一类为驱动程序故障。
提示:以下是本篇文章正文内容,下面案例可供参考
一、诊断网卡故障
[root@localhost ~]#dmesg | grep eth
eth0:registered as PCnet/PCI II 79C970A
eth0:link up
eth0:no IPv6 routers present
[root@localhost ~]#
1.eth
以上命令列出了引导信息中包含eth字符串的行,如果出现类似与“eth0:link up”的提示,表示Linux已经检测到了网卡,并处于正常工作状态。
2.lspci命令
还有一条lspci命令可以列出系统检测到所有PCI设备,如果使用的网卡是PCI总线的,应该能看到这块网卡的信息。
3.ethtool
最后可以用ethtool查看以太网的链路连接是否正常。如果看到“Link detected:yes”一行,表明网卡也对方的网络线路连接是正常的。
[root@localhost ~]#ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
Link detected:yes
[root@localhost ~]#
二、网卡驱动程序
1.设置etc
查看或者设置/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模块。
2.命令安装 grep pcnet32
可以发现,pcnet32已经安装。因此,如果网卡已经被Linux检测到,但执行“ipconfig -a”命令时却看不到eth0接口,可以按照以上方法把网卡的驱动程序模块找到,再看看这个模块是否已经安装。
[root@localhost 2.6.18-8.e15]#lsmod | grep pcnet32
pcnet32 35269 0
mii 9409 1 pcnet32
[root@localhost 2.6.18-8.e15]#
三、诊断网络层问题
1.网络层问题诊断方法
直接ping外网的某一个域名或者IP,能正常连通的,说明网络层没有问题。
2.引起ping不同的原因
引起ping不同的原因很多,可能会是网络线路、网络设置、路由和ARP等问题.
3.ping网关
建议先ping一下网关,看是否能通,如果与网关能通,一般就表明网络线路、自己机子的网络设置和ARP都没有问题。
4.网关ping通
可以通过命令“route -n”显示路由表,然后得到网关的地址。
如果路由表中没有设置默认网关,则表明路由设置有问题,此时需要设置默认网关。
5.网关ping不通
有时,局域网内存在ARP攻击或者其它原因,
使本机ARP缓存中的网关IP的MAC地址是错误的,这样也会造成与网关ping不通。
此时,可以使用“arp -d <网关 IP>”命令删除网关的ARP条目,
或者通过“arp -a <网关 IP><网关 MAC>”命令设置静态ARP条目。
四、诊断传输层和应用层问题
1.检测方法
诊断传输层和应用层的故障最有效的一种手段是使用抓包工具抓取数据包进行分析。
2.tcpdump工具
在Linux中,默认提供了tcpdump工具,利用它可以抓取所有访问本机或者从本机出去的数据包,并且可以通过规则只抓取感兴趣的数据包。
2.配置iptables防火墙
与操作系统有关的一种可能的故障原因是防火墙配置不当。在Linux中,默认情况下系统启动时会启用iptables防火墙,而且只放行少数几个端口。所以当在本机上配置了某种服务时,而这种服务需要通过TCP或UDP的某个端口才能访问,则要求防火墙开启相应的端口,否则其它主机将不能访问本机的这种服务。
总结
这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了当网络出现故障时,Linux系统中可能出现的一些网络问题,如诊断网卡故障,网卡驱动程序,诊断网络层问题,诊断传输层和应用层问题。