网卡是Linux服务器中最重要网络设备。据统计,Linux网络故障有35%在物理层、25%在数据链路层、10%在网络层、10%在传输层、10%在对话、7%在表示层、3%在应用层。由此可以看出,网络故障通常发生在网络七层模型的下三层,即物理层、链路层和网络层。对应于实际网络也就是使用的网络线缆、网卡、交换机、路由器等设备故障。Linux的网络实现是模仿FreeBSD的,它支持FreeBSD的带有扩展的Sockets(套接字)和TCP/IP协议。它支持两个主机间的网络连接和Sockets通讯模型,实现了两种类型的Sockets:BSD Sockets和INET Sockets。它为不同的通信模型和服务质量提供了两种传输协议,即不可靠的、基于消息的UDP传输协议和可靠的、基于流的传输协议TCP,并且都是在IP网络协议上实现的。INET sockets是在以上两个协议及IP协议之上实现的。它们之间的关系见图1所示。
[align=center]
图1 Linux网络模型[/align]
由于交换机、路由器通常独立于Linux或者其他操作系统。网卡设置故障是造成Linux 服务器故障最主要原因。可能因为硬件的质量或性能、磨损老化、人为误操作、不正确的网络设置、管理问题、Linux软件的BUG、系统受到黑客攻击和Linux病毒等原因造成。
Linux 服务器网卡故障排除的思路是:应当遵循先硬件后软件的方法。因为硬件如果出现物理损坏那么如何设定网卡都不能解决故障。解决问题的方法可以从自身Linux计算机的网卡查起,如果确定硬件没有问题了,再来考虑软件的设定。
1.网卡的选择
一般来说,2.4版本以后的 Linux可以支持的网卡芯片组数量已经很完备了,包括著名厂商如:Intel 以及使用广泛的 RealTek, Via 等网卡芯片都已经被支持,所以使用者可以很轻易的设定好他们的网络卡。但是由于Linux发行版本众多(目前超过188个),使用前最好查看Linux发行版本的文档。以Redhat Linux 9.0为例,这个设备列表在Ethernet- HOWTO文档中。另外最直接的方法是查看一个目录:/lib/modules/release/kernel/drivers/net,其中release是内核版本,可以使用命令:“uname -r”获得。对于Redhat Linux 9.0是2.4.20-8。
[align=center][/align]
可以看到这个目录列出所有Linux内核支持的网络设备驱动程序。其中大部分是以太网卡(8139、3COM、Intel)。也有一些是其他类型设备。对于初学者应当尽量选择目录中已经列出的网卡。注意以.o 后缀结束的文件就是驱动程序。而没有后缀的是驱动程序目录。
lgms2008 于 2006-10-01 15:44:08发表:
就我现在接触的只有tar.gz、rpm和bin格式,朋友们可以帮忙补充一下。
1、tar.gz安装,卸载
最常用的安装方式就是1>解压tar zxvf file.tar.gz 2>进入刚解开的目录 运行./Configure 配置相关编译配置文件;3>make;make install,这就完成了此类软件的安装。当然,肯定不会所有此格式的软件包都要这样装, 最可靠的还是看看目录中的readme或是install文件, 里面一般都会说清楚软件的安装方法。
有关它的删除可能就有些麻烦了, 有些软件在make install后, 会把执行文件或是库文件放到系统文件夹中, 如果软件提供相应的uninstall命令就好, 如果不提供, 可能就得一个一个文件慢慢删了, 不过也有相关SHELL命令组合可以记住它倒底放了哪些东西在哪里, 且应该可以用SHELL命令组合直接删掉那些文件,可怜我不会, 还希望哪位大侠提供一下。当然, 也有不在系统文件中放东西的软件包, 那样就直接删掉那个被解开的文件夹应该就行了。
2、rpm的安装,卸载
我在SHELL模式下用得少, 所以知道的参数不多, 真正想掌握还得看man rpm
安装可以用rpm -ivh file.rpm 参数i是安装的意思, v好象是校验,h是显示安装进度条(没有去查)
升级 rpm -Uvh file.rpm,参数U是升级安装,也可以用它进行安装,
卸载 rpm -e file 注意,没有rpm后缀只要文件名和版本号就行了
lgms2008 于 2006-10-01 15:43:36发表:
因为我所接触的硬件有限, 能力也十分有限,把自己对于有些硬件设置的经验分享出来, 如果有朋友觉得哪儿不对,请一定指出,以便修改,谢谢。。。。
以现在LINUX内核的飞速更新,支持的硬件越来越多, 一般性的设备都能在安装的时候被系统认出并安装好, 有一些特殊的设备可能需要自已动手加载模块,或是安装第三方软件、驱动来配置,所以,如果碰到自己的硬件设备没有被安装, 一般可试试以下方法配置,
1、一般常用设备,在安装时,如果系统可以准确认出硬件的是什么和它的型号, 应该都可以当时就安装好, 一些朋友有时出现安装时设备被认出并安装或是第一次启动时硬件可以使用,而后来却不能正常使用的话, 一多半是硬件的相关模块或是相关服务没有在系统启动时被加载,我最长见的错误就是有关声卡在alsa和sound服务没有启动的情况下, 声卡是发不出声的。
2、系统安装时没有被正确识别的硬件,在搞清楚硬件的型号后, 可以在系统相关模块目录下找找(一般是/lib/moudule目录下),是否有相关硬件模块, 如果找到, 可以用insmod files(insmod files.o)或是modpro files (modpro files.o)加载相关模块,如果不出错的话, 用lsmod看看相关内核是否被正确加载, 这里硬件应该就可以用了, 有一些特殊的硬件可能要指定相关资源,如ISA的网卡,就需要在modpro加上参数写上相关io或是irq后, 硬件才会被识别.
3、默认内核不支持的硬件, 在默认内核不支持的情况下, 可以查阅一下当前内核的硬件支持列表, 如果你的硬件在列表中有,那么可能是默认内核没有把它编入模块, 那么,你可能需要编译新的内核模块, 以支持你的硬件。很多朋友应该都有编译内核的惨痛经历, 不说最少个把小的时等待, 有时候出了错,还总是找不到原因,更有甚者可能会因为内核编译成功,但是新内核不能启动系统,所以如果你是第一次编译内核的话,建议一定要找一份相关内核选项的详细说明和编译操作指南照着做, 成功的机会会更大一些。
4、你的硬件不被内核所支持,这个是最麻烦的, 我的意见是,1》看看硬件的厂家网站,看是否提供相应设备for linux版本的驱动, 2>找一找相关通用的驱动,很多不同厂家的设备都是用同一开发商的芯片, 所以能找到此芯片的驱动, 你应该也就差不多成功了,很典型的例子就是软猫,3》实在是找不到的话, 没办法了, 只有上网求救了,:),要不然, 换设备也行啊, 呵呵。。。。