当Linux网卡端口断掉时,系统会发出一个“netlink”消息,这个消息会被内核的网路堆栈捕获,之后会调用网路设备驱动程序的net_device_notifier函数。这个函数会检查网路设备的状态,假如网路设备的状态发生变化,它会向系统发出一个风波,拿来通知系统网路设备的状态发生了变化。在这些情况下,当网卡端口断掉时,系统会发出一个“NETDEV_DOWN”事件,拿来通知系统网路设备的状态发生了变化。
须要将一个项目布署到Linux的服务器上redhat 无法识别 网卡,我就在本地用了一个闲置的电脑笔记本搞了台临时工作站,安装了centos7系统,并成功把项目布署起来了。而且在运行3个月之后,忽然有一次笔记本手动死机了,前面发觉是电脑的充电器坏了,笔记本没电手动死机了。等换了充电器重新启动后,发觉了服务器每隔几分钟才会手动断网,有时再过几分钟又手动联接上了。很不稳定。每次差不多都是3分钟作业就手动联接有时侯过段时间自己又会重新联接上重新插拔网线又可以联接上原本觉得可能是网路设置的问题,例如IP冲突了,换端口换网关,都不起作用。怀疑是网路固件的问题,把笔记本换了另外的交换机上,还是不行。又怀疑是由于系统手动休眠,前面改了设置,仍然联接,也还是不行。最后都重新安装了系统,还是不行。最后我们尝试换了一台电脑,还是根据之前的配置redhat linux 9.0下载,问题没有了。我们就把项目布署到新的电脑上。这个搞了三天多的时间,尽管问题解决了,但没有没有定位到真正的缘由,推测是网卡固件或则驱动的问题,可能那次断电对笔记本有一点影响。前面也没继续深追问题症结。在此记录一下过程。结束!!
探讨Linux网路故障的解决办法
Linux承继了Unix以网路为核心的设计思想,是一个性能稳定的多用户网路操作系统。我告诉你们,Linux网路故障排除应该遵守先硬件后软件的方式。由于硬件倘若出现化学毁坏这么怎样设定网路都不能解决故障。解决问题的方式可以从自身Linux计算机的网卡查起,之后到服务器、集线器、路由器等硬件。假如确定硬件没有问题了,再来考虑软件的设定。
1、检查网卡工作状况
(1)使用cat/proc/modules查看网卡的模块是否已被加载,驱动硬件是操作系统最基本的功能,操作系统通过各类驱动程序来驾驭硬件设备,和Windows系统不同Linux内核目前采用可加载的模块化设计(LKMsLoadableKernelModules),就是将最基本的核心代码编译在内核中,而我们常见的驱动程序就是作为内核模块动态加载的linux操作系统培训,例如网卡驱动。Windows系统中我们通常“控制面板”的“设备管理器”查看硬件列表,在Linux中可以在命令行下输入:cat/proc/modules即可显示Linux系统测量到的所有硬件设备。运行cat/proc/modules须要超级用户的权限,你可以使用su命令实现。
我Linux计算机中两块网卡模块:NE2000和8139早已加载。若果没有检查到硬件,用硬件检查程序Kuduz检查网卡,它和Windows中添加新硬件差不多。kudzu程序是通过查看/usr/share/hwdata/目录下的文件辨识各类硬件设备的。假如核心支持该硬件,但是有该驱动程序就可手动装载。首先说明的是Linux下对网卡的支持常常是只对芯片的,所以对个别不是很知名的网卡,常常须要晓得它的芯片机型以配置Linux.例如我的Toplink网卡,就不存在Linux的驱动,并且由于它是NE2000兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块网卡不能用,在找Linux的驱动程序之前一定认清楚这个网卡用的哪些芯片,跟谁兼容,例如3c509,ne2000,etherexpress等等.这样的机型通常都在网卡上最大的一快芯片上印着,抄出来就是了。对于ISA插口的NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.好多现今的网卡缺省都是PnP模式,这在Windows下的确能降低好多麻烦,并且Linux不支持,所以Linux下必须是Jumpless模式.通常所有网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该程序将网卡设为Jumpless。对于PCI网卡,可以使用如下命令来查看:less/proc/pci。在显示的列表中找到“EthernetController”,记下厂商和机型。之后使用modprobe尝试加载正确的模块,例如modprobe3c509。倘若出现错误,说明该模块不存在。这时侯你应当找到正确的模块而且重新编译。假如显示说该设备不存在,那也是由于没有正确的模块。找到正确的模块,但是编译,问题通常即可解决。
(2)使用Ifconfig-a命令检测网卡插口
假如早已检查到网卡,网卡硬件就没有问题,接出来检测网卡的软件设定。使用ifconfig-a命令:
第二块网卡没有分配IP地址,我们如今可以添加IP地址。以RedhatLinux9.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系统不支持你的网卡。就现今来说redhat 无法识别 网卡,出现问题4的可能性很小,通常来说都是问题2和3,也可能是1。
Linux下无线网卡的安装:
目前经过认证的PCMCIA网卡有两大类。使用基于朗讯(Lucent)芯片组的PCIMCIA无线网卡和使用基于intersilPRISM2-basedcards芯片组的PCMCIA的无线网卡见表-1。不过因为基于intersilPRISM2-basedcards芯片组的PCMCIA的无线网卡价钱比较实惠(相当于朗讯(Lucent)芯片组的PCIMCIA无线网卡的三分之一),所以国外的PCMCIA的无线网卡以前者居多。