Linux服务器网卡驱动安装及故障排除.docx

上传人:b****0 文档编号:18404140 上传时间:2023-08-16 格式:DOCX 页数:14 大小:26.13KB
下载 相关 举报
Linux服务器网卡驱动安装及故障排除.docx_第1页
第1页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第2页
第2页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第3页
第3页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第4页
第4页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第5页
第5页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第6页
第6页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第7页
第7页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第8页
第8页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第9页
第9页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第10页
第10页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第11页
第11页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第12页
第12页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第13页
第13页 / 共14页
Linux服务器网卡驱动安装及故障排除.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Linux服务器网卡驱动安装及故障排除.docx

《Linux服务器网卡驱动安装及故障排除.docx》由会员分享,可在线阅读,更多相关《Linux服务器网卡驱动安装及故障排除.docx(14页珍藏版)》请在冰点文库上搜索。

Linux服务器网卡驱动安装及故障排除.docx

Linux服务器网卡驱动安装及故障排除

Linux服务器网卡驱动安装及故障排除

网卡是Linux服务器中最重要网络设备。

据统计,Linux网络故障有35%在物理层、25%在数据链路层、10%在网络层、10%在传输层、10%在对话、7%在表示层、3%在应用层。

由此可以看出,网络故障通常发生在网络七层模型的下三层,即物理层、链路层和网络层。

对应于实际网络也就是使用的网络线缆、网卡、交换机、路由器等设备故障。

Linux的网络实现是模仿FreeBSD的,它支持FreeBSD的带有扩展的Sockets(套接字)和TCP/IP协议。

它支持两个主机间的网络连接和Sockets通讯模型,实现了两种类型的Sockets:

BSDSockets和INETSockets。

它为不同的通信模型和服务质量提供了两种传输协议,即不可靠的、基于消息的UDP传输协议和可靠的、基于流的传输协议TCP,并且都是在IP网络协议上实现的。

INETsockets是在以上两个协议及IP协议之上实现的。

它们之间的关系见图1所示。

由于交换机、路由器通常独立于Linux或者其他操作系统。

网卡设置故障是造成Linux服务器故障最主要原因。

可能因为硬件的质量或性能、磨损老化、人为误操作、不正确的网络设置、管理问题、Linux软件的BUG、系统受到黑客攻击和Linux病毒等原因造成。

Linux服务器网卡故障排除的思路是:

应当遵循先硬件后软件的方法。

因为硬件如果出现物理损坏那么如何设定网卡都不能解决故障。

解决问题的方法可以从自身Linux计算机的网卡查起,如果确定硬件没有问题了,再来考虑软件的设定。

1.网卡的选择

一般来说,2.4版本以后的Linux可以支持的网卡芯片组数量已经很完备了,包括著名厂商如:

Intel以及使用广泛的RealTek,Via等网卡芯片都已经被支持,所以使用者可以很轻易的设定好他们的网络卡。

但是由于Linux发行版本众多(目前超过188个),使用前最好查看Linux发行版本的文档。

以RedhatLinux9.0为例,这个设备列表在Ethernet-HOWTO文档中。

另外最直接的方法是查看一个目录:

/lib/modules/release/kernel/drivers/net,其中release是内核版本,可以使用命令:

“uname-r”获得。

对于RedhatLinux9.0是2.4.20-8。

#ls/lib/modules/2.4.20-8/kernel/drivers/net/

3c501.oatp.oeth16i.oni52.osmc-ultra.o

3c503.obonding.oethertap.oni65.ostarfire.o

3c505.ocs89x0.oewrk3.ons83820.ostrip.o

3c507.ode4x5.ofcpcmciasundance.o

3c509.ode600.ofealnx.opcnet32.osungem.o

3c515.ode620.ohamachi.oplip.osunhme.o

3c59x.odefxx.ohamradioppp_async.otc35815.o

8139cp.odepca.ohp100.oppp_deflate.otg3.o

8139too.odgrs.ohp.oppp_generic.otlan.o

82596.odl2k.ohp-plus.oppp_synctty.otokenring

8390.odmfe.oirdar8169.otulip

ac3200.odummy.olance.orcpci.otulip_old

acenic.oe100lne390.osb1000.otun.o

aironet4500_card.oe1000lp486e.oshaper.ovia-rhine.o

aironet4500_core.oe2100.omii.osis900.owan

aironet4500_proc.oeepro100.onatsemi.osk98linwavelan.o

amd8111e.oeepro.one2k-pci.oskfpwd.o

appletalkeexpress.one3210.oslhc.owinbond-840.o

arlan.oepic100.one.oslip.owireless

arlan-proc.oeql.onetconsole.osmc9194.owireless_old

at1700.oes3210.oni5010.osmc-ultra32.oyellowfin.o

可以看到这个目录列出所有Linux内核支持的网络设备驱动程序。

其中大部分是以太网卡(8139、3COM、Intel)。

也有一些是其他类型设备。

对于初学者应当尽量选择目录中已经列出的网卡。

注意以.o后缀结束的文件就是驱动程序。

而没有后缀的是驱动程序目录(红色)。

2.检查网卡是否加载:

驱动硬件是操作系统最基本的功能,操作系统通过各种驱动程序来驾驭硬件设备,和Windows系统不同Linux内核目前采用可加载的模块化设计(LKMsLoadableKernelModules),就是将最基本的核心代码编译在内核中,网卡驱动程序是作为内核模块动态加载的。

可以使用命令“lsmod”查看加载情况:

##lsmod

ModuleSizeUsedby

dm_mod547410

button64810

battery89010

ac48050

md540331

joydev102410

uhci_hcd310650

ehci_hcd309170

snd_via82xx264370

snd_ac97_codec638891snd_via82xx

snd_pcm_oss490170

soundcore98891snd

tulip450251

via_rhine231132

mii46731via_rhine

ext31168092

jbd712571ext3

对每行而言,第一列是模块名称;第二列是模块大小;第三列是调用数。

调用数后面的信息对每个模块而言都有所不同。

如果(unused)被列在某模块的那行中,该模块当前就没在使用。

如果(autoclean)被列在某模块的那行中,该模块可以被rmmod-a命令自动清洗。

当这个命令被执行后,所有自从上次被自动清洗后未被使用的被标记了“autoclean”的模块都会被卸载。

丛以上红色粗体字符可以看到笔者Linux计算机中两块网卡模块:

tulip和via_rhine已经加载。

对应的网卡商业型号分别是:

tulip:

Lite-OnCommunicationsIncLNE100TX[LinksysEtherFast10/100]

via_rhine:

ViaVT6102[Rhine-II]常见主板集成网卡。

如果没有检测到硬件,用硬件检测程序kuduz检测网卡,它和Windows中添加新硬件差不多。

kudzu程序是通过查看/usr/share/hwdata/目录下的文件识别各种硬件设备的。

如果核心支持该硬件,并且有该驱动程序就可自动装载。

首先说明的是Linux下对网卡的支持往往是只对芯片的,所以对某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux.比如我的Toplink网卡,就不存在Linux的驱动,但是因为它是NE2000兼容,所以把它当NE2000就可以在Linux下用了.所以当你有一块网卡不能用,在找Linux的驱动程序之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000等。

这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了。

对于ISA接口的NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式.很多现在的网卡缺省都是PnP模式,这在Windows下的确能减少很多麻烦,但是Linux不支持,所以Linux下必须是Jumpless模式.一般所有网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该程序将网卡设为Jumpless。

对于PCI网卡,可以使用命令来查看:

lspci。

在显示的列表中找到“EthernetController”,记下厂商和型号。

然后使用modprobe尝试加载正确的模块,比如modprobe3c509。

如果出现错误,说明该模块不存在。

这时候你应该找到正确的模块并且重新编译。

问题一般即可解决。

如果很不幸的,您使用的是比较罕见的一些网卡,或者是Linux核心支持不够的网卡,以致于在安装Linux时,并无法检测到网卡,那也不用担心,我们可以使用较为简单的核心模块编译来支持这张网卡。

下面以笔者的3Com的3CR990-TX-97网卡为例(一款具有安全特性网卡)看看如何进行模块编译。

首先在其网站下载合适你使用内核版本的相关驱动程序,这里以2.4内核为例。

#wegt

另外在开始编译核心模块之前,因为驱动程序需要配合核心来编译,所以会使用到kernelsource或者是kernelheader的数据,此外,也需要编译器(compiler)的帮助,因此,先确定您的Linux系统当中已经下列软件的存在:

kernel-source、kernel、gcc、make。

#tarzxvf3c990-1.0.0a.tar.gz

#make

此时会产生3c990.o驱动模块。

然后使用命令拷贝到相应地方然后查看加载是否正常。

#modprobe3c990

#cp3c990.o/lib/modules/2.4.20-8/kernel/drivers/net

#depmod-a

然后使用lsmod命令检查加载情况,如果一切正常的话。

可以让系统启动时自动加载该模块:

#echo“aliaseth03c990”>;>;/etc/modules.conf

3.为新网卡设定IP地址

在Linux网络设备在配置时被赋予别名,该别名由一个描述性的缩略词和一个编号组成。

某种类型的第一个设备的编号为0,其他设备依次被编号为1、2、3,等。

但是网卡并不是最为裸设备出现在/dev目录下,而是存在内存中。

eth0,eth1是以太网卡接口。

它们用于大多数的以太网卡,包括许多并行端口以太网卡。

本文主要讨论这类网卡。

为Linux以太网卡设定IP地址的方式非常灵活,你可以选择适合你工作情况的方法:

(1)使用ip或ifconfig命令

ifconfig命令是最重要的Linux网络命令,最主要的用途是设定、修改网卡的IP地址,修改网卡ip地址:

#ifconfigeth0192.168.0.2netmask255.255.255.0

默认情况下,ifconfig显示活动的网络设备。

给这个命令添加一个-a开关就能看到所有设备。

但是ifconfig命令设置网络设备的ip地址系统重新启动后设置会自动失效。

所以它主要用于网卡状态调试。

假设您要建立一个临时的网络配置以供测试。

您可以使用发行版本中的工具来编辑配置,但是需要注意在完成测试之后,将所有设置恢复回去。

通过使用ifconfig,我们无需影响已保存的设置,就能够快速地配置网卡。

Ip命令是iproute2软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。

例如:

ifconfig、route等。

现在,绝大多数Linux发行版和绝大多数UNIX都使用古老的arp,ifconfig和route命令。

虽然这些工具能够工作,但它们在Linux2.2和更高版本的内核上显得有一些落伍。

使用iproute2前你应该确认已经安装了这个工具。

这个包的名字在RedHatLinux9.0叫作“iproute2”,也可以在:

ftp:

//ftp.inr.ac.ru/ip-routing/下载源代码安装。

如果希望在以太网接口eth0上增加一个地址10.0.0.1,掩码长度为24位,标准广播地址,标签为eth0:

Alias:

#ipaddradd10.0.0.1/24brd+deveth0labeleth0:

Alias

(2)使用netconfig命令

netconfig命令可以设置网络设备的ip地址,netconfig命令可以永久保存设置。

使用方法是:

“netconfigethX”。

使用命令“netconfigeth0”后会在命令行下弹出一个对话框。

设定结束后用“tab”键选择“OK”即可保存设置并且退出。

然后使用命令:

“servicenetworkrestart“激活即可生效。

(3)使用neat命令

使用neat命令需要配置好Xwindow系统,在命令行下运行“neat”命令后添加IP地址和其他相关参数后保存设置,从新启动网络和网络服务或计算机。

另外neat命令还有一个同价命令:

“redhat-config-network”,二者完全相同。

Neat和redhat-config-config命令可以永久保存设置。

(4)修改TCP/IP网络配置文件

除非另行指定,RedHatLinux系统中大多数配置文件都在/etc目录中。

网卡相关的TCP/IP网络配置文件是:

/etc/sysconfig/network-scripts/ifcfg-ethx。

其中x从0开始,第一个以太网配置文件即:

/etc/sysconfig/network-scripts/ifcfg-eth0。

使用vi编辑器修改这个文件,也可以修改网卡IP地址。

#vi/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0        #设定网卡的名称,要跟文件名称对应#

ONBOOT=yes        #是否在开机的的时候启动网卡#

BOOTPROTO=static     #启动的时候的IP取得的协议,这里是固定的,

               如果是动态主机的话,要改成dhcp才行#

IPADDR=192.168.1.2    #IP地址#

NETMASK=255.255.255.0   #子网掩吗#

NETWORK=192.168.1.0    #该网段的第一个IP#

BROADCAST=192.168.1.255  #最后一个同网段的广播地址#

GATEWAY=192.168.1.2    #网关地址#

#GATEWAYDEV=eth0      

存盘后使用命令:

“servicenetworkrestart“激活即可生效。

这个方法同样可以永久保存设置。

(5)为网卡添加IPV6地址

和Windows系统相比Linux对Ipv6的支持更好,最早的支持Ipv6的Linux内核是2.2.xxx。

一般Linux基于2.4内核的Linux发行版本都可以直接使用Ipv6,使用前要看系统IPv6模块是否被加载,如果没有的话可以使用命令手工加载,这需要超级用户的权限。

然后使用命令检测,如果显示IPv6地址(inet6addr:

fe80:

:

200:

e8ff:

fea0:

2586/64)证明IPv6已经加载。

#modprobeIPv6;#ifconfig-a

如果希望Linux系统启动时自动加载Ipv6模块,可以在配置文件:

/etc/modules.conf中加入一行:

aliasnet?

pf?

10ipv6#automaticallyloadIPv6moduleondemand

4.调整网卡工作模式

现在的网卡大多是自适应工作模式,在配置网卡参数时我们很少考虑它的工作模式,有时发现一些网卡模块已经加载,但是在某些模式工作不稳定。

如笔者使用的一块XXX品牌的杂牌RTL-8139C芯片10/100自适应网卡在100兆全双工状态下极其不稳定(在Qcheck的TCP和UDP的测试过程中,数据包遗失率9.12%。

)。

在Linux环境下,我们可以使用系统自带的工具mii-tool命令来配置网卡工作模式。

显示Linux服务器网卡支持的所有以太网卡类型,使用命令:

#mii-tool-v

eth0:

negotiated100baseTx-FD,linkok

productinfo:

vendor00:

00:

00,model0rev0

basicmode:

autonegotiationenabled

basicstatus:

autonegotiationcomplete,linkok

capabilities:

100baseTx-FD100baseTx-HD10baseT-FD10baseT-HD

advertising:

100baseTx-FD100baseTx-HD10baseT-FD10baseT-HD

linkpartner:

100baseTx-FD100baseTx-HD10baseT-FD10baseT-HD

从以上信息中可以看出,这块网卡工作在100全双工自适应模式下,“100aseTx-FD”意为100MFullDuplex。

这里可以强制网卡工作在100M半工模式下,输入命令:

#mii-tool–F100baseTx-HDeth0

以后恢复网卡的自适应工作模式,输入命令:

#mii-tool–reth0

另外路由器、交换机、代理服务器等通信量比较大的关键设备上,应该为它指定正确的工作模式,这样可以提高通信效率。

5.DHCP客户端网卡设定

如果希望使用DHCP是动态主机配置协议,这个协议用于向计算机自动提供IP地址,子网掩码和路由信息。

当设备接入这个局域网时,它们会向DHCP服务器请求一个IP地址。

然后DHCP服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有IP地址为止。

已经分配的IP地址必须定时地延长借用期。

这个延期的过程称作leasing,确保了当客户机设备在正常地释放IP地址之前突然从网络断开时被分配的地址可以归还给服务器。

Linux下配置DHCP客户端有两种方法:

图形界面和手工配置。

使用图形界面可以使用neat命令界面见图2。

选中“自动获得IP地址设置使用DHCP”即可。

通常笔者更喜欢使用选择手工配置DHCP客户,需要修改/etc/sysconfig/network文件来启用联网;并修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件。

在该目录中,每个设备都有一个叫做ifcfg-ethX的配置文件,ethX是网络设备的名称。

如eth0等。

如果你想在引导时启动联网,NETWORKING变量必须被设为yes。

除了此处之外/etc/sysconfig/network文件应该包含以下行:

NETWORKING=yes

DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

6.VPN服务器网卡设置

VPN是由经过相互授权的通信双方在公网上建立的安全通信隧道,数据在隧道中进行加密传输,用于总部与分支机构的安全通信。

虚拟专用网络是一种新的网络技术,用于跨过Internet或局域网而安全地访问企业网。

RedhatLinux下的VPN技术主要有CIPE(CryptoIPEncapsulation:

加密IP封装)是主要为Linux而开发的VPN实现。

CIPE使用加密的IP分组,这些分组被封装或“包围”在数据报(UDP)分组中。

CIPE分组被给以目标头信息,并使用默认的CIPE加密机制来加密。

CIPE使用标准的Blowfish或IDEA加密算法来支持加密。

根据你所在国家的加密出口法规而定,你可以使用默认方法(Blowfish)来加密你的专用网上的所有CIPE交通。

CIPE配置可以通过文本文件、图形化的网络管理工具来完成。

这里以通过文本文件为例介绍。

首先在服务器和客户端安装CIPE软件。

官方网站:

http:

//sites.inka.de/~运行CIPEVPN服务主要需要建立两个文件:

/etc/sysconfig/network-scripts/ifcfg-cipcbX和/etc/cipe/options.cipcbX。

X是从0开始的递增数字。

(1)VPN服务器端网卡设置

首先手工建立/etc/sysconfig/network-scripts/ifcfg-cipcb0文件,它是VPN服务器的虚拟网络接口,主要内容:

USERCTL=yes#是否允许所有用户修改配置#

TYPE=CIPE#接口类型#

DEVICE=cipcb0#给CIPE设备命名#

ONBOOT=yes#系统启动时激活设备#

IPADDR=10.0.0.1#本地虚拟地址#

MYPORT=7777#通讯端口#

PTPADDR=10.0.0.2#远程虚拟地址#

PEER=0.0.0.0#本地地址,0.0.0.0表示接受连续监听#

ME=192.168.1.9#对端的CIPEUDP地址#

TUNNELDEV=eth0#隧道穿越设备#

然后建立/etc/cipe/options.cipcb0文件,这个文件存放密匙,主要内容:

cttl64#设置载体生存时间值(TTL);推荐的值是64#

maxerr–1#服务器错误挂起时间#

key54240266869983357939377846801171299051#128位密匙#

(2)客户端网卡的配置

由于CIPE要求服务器和客户机的密匙完全相同所以,首先将密匙文件:

options.cipcb从服务器复制到客户机主机的/etc/cipe/目录中。

#scproot@192.168.1.9:

/etc/cipe/options.cipcb0/etc/cipe/options.cipcb0

Areyousureyouwanttocontinueconnecting(yes/no)?

yes

Warning:

Permanentlyadded'192.168.1.9'(RSA)tothelistofknownhosts.

root@192.168.1.9'spassword:

options.cipcb0100%|***************************************|6100:

00

然后使用vi编辑器建立客户端网卡配置文件:

/etc/sysconfig/network-scripts/ifcfg-cipcb0包含以下内容:

USERCTL=no#不允许客户端修改配置#

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2