Linux网络异常排查思路与方法

Linux网络异常排查思路与方法,第1张

处理问题时必定不能盲狙,将所有解决办法都试上一遍。这生产环境中,解决出现的问题是最优先的事情,当然前提是这问题会影响用户的使用或即将影响到的。

处理每个问题必然可按具体问题进行分类,根据每一类按对应的解决思路来执行。

但像处理一个网络问题的时候,上至系统防火墙的配置、下至硬件故障。如果处理一个问题都按固定流程来进行的话,那必然效率将非常低下。下为处理网络故障的一般流程。

1、网络硬件问题检查。                     (机率较低)

2、检查网卡能否正常工作。            (较高、主要表现为人为配置错误)

3、检查局域网之间联机是否正常。(非常高)

4、检查DNS是否设定正确。            (较低)

5、服务是否正常打开。                     (低)

6、检查访问权限是否打开。            (较高)

假如从1至6是标准的处理网络问题的流程,这样的处理方式效率低下。处理问题可以有整体的流程,但是实际 *** 作中可先对出现机率更高的步骤进行检查、或采取2分法缩小产生问题的范围,虽然上述较的两个方法不一定对所有问题都试用,但对于大多数的网络问题来说处理效率有者显著的提升。

个人总结的情况如下。

1、lsmod | grep ip            查看相关的网卡模块是否已加载

2、ifconfig -a                    能使用该命令查找到对应网卡配置信息,则说明网卡驱动程序正常

3、使用ping命令、依次ping自己、ping局域网主机、ping网关

        ping自己异常,问题:服务异常、网卡配置未生效

        ping局域网主机异常,问题:配置文件有误、网卡配置未生效、网线损坏

        ping网关异常,问题:配置文件有误、网卡配置未生效

4、当前3步还不能正常上外网的话。所有route查看默认路由表。

        处理方法:删除不必要的路由信息,并保证默认路由是从对应网关地址出去的。

5、临时停止iptables服务、SELinux服务、NetworkManager服务

6、如能上网但访问域名有异常时,那将需要检查/etc/hosts、/etc/resolv.conf两个配置

7、假如以上6步检查完毕之后,还发现不能上网。有如下可能。

        7.1、主机MAC地址被路由器禁止上网

        7.2、外网服务异常。如宽带账号欠费、光纤被挖断等物理攻击。

浅谈Linux网络故障的解决办法

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。我告诉大家,Linux网络故障排除应当遵循先硬件后软件的方法。因为硬件如果出现物理损坏那么如何设定网络都不能解决故障。解决问题的方法可以从自身Linux计算机的网卡查起,然后到服务器、集线器、路由器等硬件。如果确定硬件没有问题了,再来考虑软件的设定。

1、检查网卡工作状况

(1)使用cat /proc/modules查看网卡的模块是否已被加载,驱动硬件是 *** 作系统最基本的功能, *** 作系统通过各种驱动程序来驾驭硬件设备,和Windows系统不同Linux内核目前采用可加载的模块化设计(LKMs Loadable Kernel Modules),就是将最基本的核心代码编译在内核中,而我们常见的驱动程序就是作为内核模块动态加载的,比如网卡驱动。Windows系统中我们一般“控制面板”的“设备管理器”查看硬件列表,在Linux中可以在命令行下输入:cat /proc/modules 即可显示Linux系统检测到的所有硬件设备。运行cat /proc/modules需要超级用户的权限,你可以使用su命令实现。

我Linux计算机中两块网卡模块:NE2000和8139已经加载。如果没有检测到硬件,用硬件检测程序Kuduz检测网卡,它和Windows中添加新硬件差不多。kudzu程序是通过查看/usr/share/hwdata/目录下的文件识别各种硬件设备的。如果核心支持该硬件,并且有该驱动程序就可自动装载。首先说明的是Linux下对网卡的支持往往是只对芯片的,所以对某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux.比如我的Top link网卡,就不存在Linux的驱动,但是因为它是NE2000兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块网卡不能用,在找Linux的驱动程序之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpress等等.这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了。对于ISA接口的NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.很多现在的网卡缺省都是PnP模式,这在Windows下的确能减少很多麻烦,但是Linux不支持,所以Linux下必须是Jumpless模式.一般所有网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该程序将网卡设为 Jumpless。对于PCI网卡,可以使用如下命令来查看:less/proc/pci。在显示的列表中找到“Ethernet Controller”,记下厂商和型号。然后使用modprobe尝试加载正确的模块,比如modprobe 3c509。如果出现错误,说明该模块不存在。这时候你应该找到正确的模块并且重新编译。如果显示说该设备不存在,那也是因为没有正确的模块。找到正确的模块,并且编译,问题一般即可解决。

(2)使用Ifconfig-a命令检查网卡接口

如果已经检测到网卡,网卡硬件就没有问题,接下来检查网卡的软件设定。使用ifconfig -a命令:

第二块网卡没有分配IP地址,我们现在可以添加IP地址。以Redhat Linux 9.0为例。以root权限运行命令:neat出现图形化配置界面,然后添加IP地址后保存设置,从新启动网络和网络服务或计算机.

(4)编译网卡

如果Linux内核没有检测到网卡通常要重新安装网卡的驱动程序,网卡驱动程序安装方法步骤如下:

a、 编译并安装模块

b、 修改/etc/conf.module 文件

c、 修改/etc/sysconfig/network文件

d、 修改/etc/sysconfig/network-scripts/ifcfg-eth0 文件

e、 给网卡添加IP地址:打开网卡IP地址配置文件/etc/sysconfig/network-script/ifcfg-eh0.

e、然后用命令启动网络服务。

说明网卡问题:使用ifconfig来进行配置。如果运行ifconfig,将会给出所有已经安装了的网卡。如果没有显示可用的网卡,那么很有可能是以下原因之一:1. 网卡没有被Linux检测到2. 没有与之相应的内核模块3. 该模块没有被加载4. Linux系统不支持你的网卡。就现在来说,出现问题4的可能性很小,一般来说都是问题2和3,也可能是1。

Linux下无线网卡的安装:

目前经过认证的PCMCIA网卡有两大类。使用基于朗讯(Lucent)芯片组的PCIMCIA无线网卡和使用基于intersil PRISM2-based cards 芯片组的PCMCIA的无线网卡见表-1。不过由于基于intersil PRISM2-based cards 芯片组的PCMCIA的无线网卡价格比较便宜(相当于朗讯(Lucent)芯片组的PCIMCIA无线网卡的三分之一),所以国内的PCMCIA的无线网卡以后者居多。

因停电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的几种原因


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8992805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存