Linux服务器网卡驱动安装及故障排除(转)
生活随笔
收集整理的這篇文章主要介紹了
Linux服务器网卡驱动安装及故障排除(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux服務器網卡驅動安裝及故障排除(轉)
轉自:http://www.ccw.com.cn/server/yyjq/htm2005/20050817_15OF4.htm感謝原創作者
曹江華
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Linux 服務器網卡驅動安裝及故障排除
? ? ? ? 網卡是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所示。
由于交換機、路由器通常獨立于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。
#ls /lib/modules/2.4.20-8/kernel/drivers/net/
3c501.o? ?? ?? ?? ? atp.o? ?? ? eth16i.o? ?? ?ni52.o? ?? ?? ?smc-ultra.o
3c503.o? ?? ?? ?? ? bonding.o? ?ethertap.o? ? ni65.o? ?? ?? ?starfire.o
3c505.o? ?? ?? ?? ? cs89x0.o? ? ewrk3.o? ?? ? ns83820.o? ?? ?strip.o
3c507.o? ?? ?? ?? ? de4x5.o? ???fc? ?? ?? ?? ?pcmcia? ?? ?? ?sundance.o
3c509.o? ?? ?? ?? ? de600.o? ???fealnx.o? ?? ?pcnet32.o? ?? ?sungem.o
3c515.o? ?? ?? ?? ? de620.o? ???hamachi.o? ???plip.o? ?? ?? ?sunhme.o
3c59x.o? ?? ?? ?? ? defxx.o? ???hamradio? ?? ?ppp_async.o? ? tc35815.o
8139cp.o? ?? ?? ?? ?depca.o? ???hp100.o? ?? ? ppp_deflate.o??tg3.o
8139too.o? ?? ?? ???dgrs.o? ?? ?hp.o? ?? ?? ? ppp_generic.o??tlan.o
82596.o? ?? ?? ?? ? dl2k.o? ?? ?hp-plus.o? ???ppp_synctty.o??tokenring
8390.o? ?? ?? ?? ???dmfe.o? ?? ?irda? ?? ?? ? r8169.o? ?? ???tulip
ac3200.o? ?? ?? ?? ?dummy.o? ???lance.o? ?? ? rcpci.o? ?? ???tulip_old
acenic.o? ?? ?? ?? ?e100? ?? ???lne390.o? ?? ?sb1000.o? ?? ? tun.o
aironet4500_card.o??e1000? ?? ? lp486e.o? ?? ?shaper.o? ?? ? via-rhine.o
aironet4500_core.o??e2100.o? ???mii.o? ?? ?? ?sis900.o? ?? ? wan
aironet4500_proc.o??eepro100.o??natsemi.o? ???sk98lin? ?? ???wavelan.o
amd8111e.o? ?? ?? ? eepro.o? ???ne2k-pci.o? ? skfp? ?? ?? ???wd.o
appletalk? ?? ?? ???eexpress.o??ne3210.o? ?? ?slhc.o? ?? ?? ?winbond-840.o
arlan.o? ?? ?? ?? ? epic100.o? ?ne.o? ?? ?? ? slip.o? ?? ?? ?wireless
arlan-proc.o? ?? ???eql.o? ?? ? netconsole.o??smc9194.o? ?? ?wireless_old
at1700.o? ?? ?? ?? ?es3210.o? ? ni5010.o? ?? ?smc-ultra32.o??yellowfin.o
可以看到這個目錄列出所有Linux內核支持的網絡設備驅動程序。其中大部分是以太網卡(8139、3COM、Intel)。也有一些是其他類型設備。對于初學者應當盡量選擇目錄中已經列出的網卡。注意以.o 后綴結束的文件就是驅動程序。而沒有后綴的是驅動程序目錄(紅色)。
2.? ? ? ? 檢查網卡是否加載:
驅動硬件是操作系統最基本的功能,操作系統通過各種驅動程序來駕馭硬件設備,和Windows系統不同Linux內核目前采用可加載的模塊化設計(LKMs Loadable Kernel Modules),就是將最基本的核心代碼編譯在內核中,網卡驅動程序是作為內核模塊動態加載的。可以使用命令“lsmod”查看加載情況:
## lsmod
Module? ?? ?? ?? ?? ?? ?Size??Used by
dm_mod? ?? ?? ?? ?? ???54741??0
button? ?? ?? ?? ?? ?? ?6481??0
battery? ?? ?? ?? ?? ???8901??0
ac? ?? ?? ?? ?? ?? ?? ? 4805??0
md5? ?? ?? ?? ?? ?? ?? ?4033??1
joydev? ?? ?? ?? ?? ???10241??0
uhci_hcd? ?? ?? ?? ?? ?31065??0
ehci_hcd? ?? ?? ?? ?? ?30917??0
snd_via82xx? ?? ?? ?? ?26437??0
snd_ac97_codec? ?? ?? ?63889??1 snd_via82xx
snd_pcm_oss? ?? ?? ?? ?49017??0
soundcore? ?? ?? ?? ?? ?9889??1 snd
tulip? ?? ?? ?? ?? ?? ?45025??1
via_rhine? ?? ?? ?? ???23113??2
mii? ?? ?? ?? ?? ?? ?? ?4673??1 via_rhine
ext3? ?? ?? ?? ?? ?? ?116809??2
jbd? ?? ?? ?? ?? ?? ???71257??1 ext3
對每行而言,第一列是模塊名稱;第二列是模塊大小;第三列是調用數。調用數后面的信息對每個模塊而言都有所不同。如果 (unused) 被列在某模塊的那行中,該模塊當前就沒在使用。如果 (autoclean) 被列在某模塊的那行中,該模塊可以被 rmmod -a 命令自動清洗。當這個命令被執行后,所有自從上次被自動清洗后未被使用的被標記了“autoclean”的模塊都會被卸載。叢以上紅色粗體字符可以看到筆者Linux計算機中兩塊網卡模塊:tulip和via_rhine 已經加載。對應的網卡商業型號分別是:
tulip:Lite-On Communications Inc LNE100TX [Linksys EtherFast 10/100]
via_rhine:Via VT6102[Rhine-II] 常見主板集成網卡。
如果沒有檢測到硬件,用硬件檢測程序kuduz檢測網卡,它和Windows中添加新硬件差不多。kudzu程序是通過查看/usr/share/hwdata/目錄下的文件識別各種硬件設備的。如果核心支持該硬件,并且有該驅動程序就可自動裝載。首先說明的是Linux下對網卡的支持往往是只對芯片的,所以對某些不是很著名的網卡,往往需要知道它的芯片型號以配置Linux.比如我的Top link網卡,就不存在Linux的驅動,但是因為它是NE2000兼容,所以把它當NE2000就可以在Linux下用了.所以當你有一塊網卡不能用,在找Linux的驅動程序之前一定搞清楚這個網卡用的什么芯片,跟誰兼容,比如3c509,ne2000等。這樣的型號一般都在網卡上最大的一快芯片上印著,抄下來就是了。對于ISA接口的NE2000卡,先要作的一件事情,是將網卡設定為Jumpless模式.很多現在的網卡缺省 都是PnP模式,這在Windows下的確能減少很多麻煩,但是Linux不支持,所以Linux下必須是Jumpless模式.一般所有網卡都有帶的驅動盤和DOS下可執行的一個設定程序,用該程序將網卡設為 Jumpless。對于PCI網卡,可以使用命令來查看:lspci。在顯示的列表中找到“Ethernet Controller”,記下廠商和型號。然后使用modprobe嘗試加載正確的模塊,比如modprobe 3c509。如果出現錯誤,說明該模塊不存在。這時候你應該找到正確的模塊并且重新編譯。問題一般即可解決。
如果很不幸的,您使用的是比較罕見的一些網卡,或者是 Linux 核心支持不夠的網卡,以致于在安裝 Linux 時,并無法檢測到網卡,那也不用擔心,我們可以使用較為簡單的核心模塊編譯來支持這張網卡。下面以筆者的3Com的3CR990-TX-97 網卡為例(一款具有安全特性網卡)看看如何進行模塊編譯。首先在其網站http://www.3com.com/infodeli/tools/nic/linuxdownload.htm 下載合適你使用內核版本的相關驅動程序,這里以2.4內核為例。
#wegt http://www.3com.com/infodeli/tools/nic/3c990-1.0.0a.tar.gz
另外在開始編譯核心模塊之前,因為驅動程序需要配合核心來編譯,所以會使用到 kernel source 或者是 kernel header 的數據,此外,也需要編譯器 ( compiler ) 的幫助,因此,先確定您的 Linux 系統當中已經下列軟件的存在 :kernel-source 、kernel 、gcc 、make。
#tar zxvf 3c990-1.0.0a.tar.gz
#make
此時會產生3c990.o 驅動模塊。然后使用命令拷貝到相應地方然后查看加載是否正常。
#modprobe 3c990
#cp 3c990.o??/lib/modules/2.4.20-8/kernel/drivers/net
# depmod -a
然后使用lsmod 命令檢查加載情況,如果一切正常的話。可以讓系統啟動時自動加載該模塊:
#echo “alias eth0 3c990”>;>; /etc/modules.conf
3.? ? ? ? 為新網卡設定IP地址
在Linux 網絡設備在配置時被賦予別名,該別名由一個描述性的縮略詞和一個編號組成。某種類型的第一個設備的編號為 0,其他設備依次被編號為 1、2、3,等。但是網卡并不是最為裸設備出現在/dev目錄下,而是存在內存中。eth0, eth1是以太網卡接口。它們用于大多數的以太網卡,包括許多并行端口以太網卡。本文主要討論這類網卡。 為Linux以太網卡設定IP地址的方式非常靈活,你可以選擇適合你工作情況的方法:
(1)? ? ? ? 使用ip或ifconfig命令
ifconfig命令是最重要的Linux網絡命令,最主要的用途是設定、修改網卡的IP地址,修改網卡ip地址:
#ifconfig eth0 192.168.0.2 netmask 255.255.255.0??
默認情況下, ifconfig 顯示活動的網絡設備。給這個命令添加一個 -a 開關就能看到所有設備。但是ifconfig命令設置網絡設備的ip地址系統重新啟動后設置會自動失效。所以它主要用于網卡狀態調試。假設您要建立一個臨時的網絡配置以供測試。您可以使用發行版本中的工具來編輯配置,但是需要注意在完成測試之后,將所有設置恢復回去。通過使用 ifconfig ,我們無需影響已保存的設置,就能夠快速地配置網卡。
Ip命令是iproute2軟件包里面的一個強大的網絡配置工具,它能夠替代一些傳統的網絡管理工具。例如:ifconfig、route等。 現在,絕大多數 Linux 發行版和絕大多數 UNIX都使用古老的arp, ifconfig和route命令。雖然這些工具能夠工作,但它們在Linux2.2和更高版本的內核上顯得有一些落伍。使用iproute2前你應該確認已經安裝了這個工具。這個包的名字在RedHat Linux 9.0叫作“iproute2”,也可以在:ftp://ftp.inr.ac.ru/ip-routing/ 下載源代碼安裝。
如果希望在以太網接口eth0上增加一個地址10.0.0.1,掩碼長度為24位,標準廣播地址,標簽為eth0:Alias:
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias
(2)? ? ? ? 使用 netconfig命令
netconfig命令可以設置網絡設備的ip地址,netconfig命令可以永久保存設置。
使用方法是:“netconfig ethX”。使用命令“netconfig eth0”后會在命令行下彈出一個對話框,這時即可進行設定見圖2,
? ? ? ? ? ? ? ? 圖2 netconfig配置界面
設定結束后用“tab”鍵選擇“OK”即可保存設置并且退出。然后使用命令:“service network restart “激活即可生效。
(3)? ? ? ? 使用neat命令
使用neat命令需要配置好X window系統,在命令行下運行“neat”命令后添加IP地址和其他相關參數后保存設置,從新啟動網絡和網絡服務或計算機,見圖-3。
? ? ? ? ? ? ? ? 圖-3 圖形界面添加IP地址
另外neat命令還有一個同價命令:“redhat-config-network”,二者完全相同。Neat和redhat-config-config命令可以永久保存設置。
(4)? ? ? ? 修改TCP/IP網絡配置文件
除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /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
存盤后使用命令:“service network restart “激活即可生效。這個方法同樣可以永久保存設置。
(5)? ? ? ? 為網卡添加IPV6地址
和Windows系統相比Linux對Ipv6的支持更好,最早的支持Ipv6的Linux內核是 2.2.xxx。 一般Linux基于2.4內核的Linux發行版本都可以直接使用Ipv6,使用前要看系統IPv6模塊是否被加載,如果沒有的話可以使用命令手工加載,這需要超級用戶的權限。然后使用命令檢測,如果顯示IPv6地址(inet6 addr:fe80::200:e8ff:fea0:2586/64)證明IPv6已經加載。
# modprobe IPv6;#ifconfig -a
如果希望Linux系統啟動時自動加載Ipv6模塊,可以在配置文件:/etc/modules.conf中加入一行:
alias net?pf?10 ipv6 # automatically load IPv6 module on demand
4.? ? ? ? 調整網卡工作模式
? ? ? ?
??現在的網卡大多是自適應工作模式,在配置網卡參數時我們很少考慮它的工作模式,有時發現一些網卡模塊已經加載,但是在某些模式工作不穩定。如筆者使用的一塊XXX品牌的雜牌RTL-8139C芯片10/100自適應網卡在100兆全雙工狀態下極其不穩定(在Qcheck的TCP和UDP的測試過程中,數據包遺失率9.12%。)。在Linux環境下,我們可以使用系統自帶的工具mii-tool命令來配置網卡工作模式。顯示Linux服務器網卡支持的所有以太網卡類型,使用命令:
# mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:00:00, model 0 rev 0
basic mode:? ?autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising:??100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
從以上信息中可以看出,這塊網卡工作在100全雙工自適應模式下,“100aseTx-FD”意為100M Full Duplex。這里可以強制網卡工作在100M半工模式下,輸入命令:
#mii-tool –F 100baseTx-HD eth0
以后恢復網卡的自適應工作模式,輸入命令:
#mii-tool –r eth0
??另外路由器、交換機、代理服務器等通信量比較大的關鍵設備上,應該為它指定正確的工作模式,這樣可以提高通信效率。
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 或局域網而安全地訪問企業網。Redhat Linux下的VPN技術主要有CIPE??(Crypto IP Encapsulation:加密 IP 封裝)是主要為 Linux 而開發的 VPN 實現。CIPE 使用加密的 IP 分組,這些分組被封裝或“包圍”在數據報(UDP)分組中。CIPE 分組被給以目標頭信息,并使用默認的 CIPE 加密機制來加密。CIPE 使用標準的 Blowfish 或 IDEA 加密算法來支持加密。根據你所在國家的加密出口法規而定,你可以使用默認方法(Blowfish)來加密你的專用網上的所有 CIPE 交通。CIPE 配置可以通過文本文件、圖形化的網絡管理工具來完成。這里以通過文本文件為例介紹。首先在服務器和客戶端安裝CIPE軟件。官方網站:http://sites.inka.de/~ 運行CIPE VPN服務主要需要建立兩個文件:/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??#對端的 CIPE UDP 地址#
TUNNELDEV=eth0??#隧道穿越設備#
然后建立/etc/cipe/options.cipcb0文件,這個文件存放密匙,主要內容:
cttl 64 #設置載體生存時間值(TTL);推薦的值是64#
maxerr –1??#服務器錯誤掛起時間#
key 54240266869983357939377846801171299051 #128位密匙#
(2)客戶端網卡的配置
由于CIPE要求服務器和客戶機的密匙完全相同所以,首先將密匙文件:options.cipcb從服務器復制到客戶機主機的/etc/cipe/ 目錄中。
# scp root@192.168.1.9:/etc/cipe/options.cipcb0 /etc/cipe/options.cipcb0
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.9' (RSA) to the list of known hosts.
root@192.168.1.9's password:
options.cipcb0? ?? ? 100% |***************************************|? ? 61? ?? ? 00:00
然后使用vi編輯器建立客戶端網卡配置文件:/etc/sysconfig/network-scripts/ifcfg-cipcb0包含以下內容:
USERCTL=no? ? #不允許客戶端修改配置#
BOOTPROTO=none
TYPE=CIPE? ?? ?? ?? ? #接口類型#
DEVICE=cipcb0? ?? ???#給 CIPE 設備命名#
ONBOOT=yes? ?? ?? ?? ? #系統啟動時激活設備#
IPADDR=10.0.0.2? ?? ?#本地虛擬地址#
MYPORT=7777? ?? ?? ?? ?#通訊端口#
PTPADDR=10.0.0.1? ?? ?? ?#遠程虛擬地址#
PEER=192.168.1.29:7777? ???#VPN服務器真實IP地址和端口號#
ME=192.168.1.9? ?? ?? ?? ?#對端的 CIPE UDP 地址#
TUNNELDEV=eth0? ? #隧道穿越設備#
MTU=“”? ?? ?? ???#使用缺省設置#
NETMASK=“”? ?? ?? ?#使用缺省設置#
NETWORK=“”? ?? ?? ?#使用缺省設置#
BROADCAST=“”? ???#使用缺省設置#
(3)使用ifup命令激活VPN網卡
# ifup cipcb0
這時VPN通道已經開啟,可以使用tcpdump等工具檢查。
7.? ? ? ? 無線網卡在Linux下安裝
? ? ? ? 隨著Linux網絡技術的快速增長,硬件廠商大大加速對硬件產品對Linux的技術支持。使得Linux 支持的無線網卡的數量在過去的一兩年里增長顯著。一旦在計算機中安裝好了無線局域網卡,首先要做的就是安裝驅動來讓網卡工作。無線網卡實現了IEEE 802.11系列協議中的一種或多種的物理層(PHY)和媒質訪問控制子層(MAC)的功能,而驅動是用來控制無線網卡,向上提供與以太網一致的接口并提供其他一些無線局域網特定的管理接口的。對于不同廠商的不同網卡,還沒有一種統一的方法可以驅動所有的網卡。首先必須確保內核配置中啟動了無線局域網。如果沒有無線局域網支持,你應該重新配置、編譯內核來啟動"Wireless LAN (non-hamradio) Drivers and Wireless Extensions"。? ?
目前,常見的無線網卡大多為PCMCIA、PCI和USB三種類型,筆者使用最多的是PCMCIA(Personal Computer Memory Card International Association)接口的無線網卡。 對于有些設備,配置無線連接非常簡單:只要在您使用的 Linux 發行版本,插入無線網卡,在設置過程中單擊鼠標,并輸入正確的聯網參數就可以了。通常基于朗訊(Lucent)芯片組的無線網卡的安裝比較簡單,筆者使用的Cisco Aironet Wireless 802.11b 在Mandrake 8.2 Linu安裝程序可以順利地找到設備驅動, 使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無線網卡安裝就比較復雜了。需要一個第三方工具安裝。
目前經過www.Linux.org 認證的PCMCIA網卡有兩大類。使用基于朗訊(Lucent)芯片組的PCIMCIA無線網卡和使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無線網卡見表-1。
Lucent chipset-based cards ? ? ? ? intersil PRISM2-based cards
Lucent Wavelan/IEEE and Orimoco? ? ? ? Linksys(WPC11 v2.5)
Cabletron/Enterays RoarmAbout? ? ? ? SMS(2632W)
Compaq(WL110、WL210、 WL215) ? ? ? ? Compaq(WL100、WL200)
Apple Airport? ? ? ? Cisco Aironet Wireless 802.11b(340、350)
IBM High Rate Wireless LAN? ? ? ? Dlink DWL-650
HP 802.11bWiewless LAN? ? ? ? Nokia
DELL TrueMobile? ? ? ? Intel PRO/Wireless 2100
3Com AirConnect? ? ? ? SAMSUNG 11Mbps WLAN Card
LA4111 Spectrum24 Wireless LAN PC Card? ? ? ? PROXIM LAN PC CARD HARMONY 80211B
? ? ? ? NCR WaveLAN/IEEE Adapter
總的來說Linux下無線網卡的安裝順序一般是:
?? ? ? ? 采取全部安裝方式安裝Linux發行版本,重新編譯內核,并除去任何對內核提供的 PCMCIA 驅動程序的部分。
?? ? ? ? 了解網卡的規格并且下載并編譯相應的 PCMCIA-CS 庫和驅動程序
?? ? ? ? 下載、編譯并安裝無線網卡必需的所有驅動程序。這一步驟對于有些網卡是可選的,而對于有些網卡是必須執行的。做與不做很大程度上取決于您所選的無線網卡。
?? ? ? ? 修改和無線網卡的相關設定。從新啟動Linux系統和網絡。
? ?設置無線網絡相關步驟如下:
? ? (1)用“iwconfig”命令來顯示無線網卡(eth0、eth1)的信息。在以下的步驟中,用ethX表示無線網卡的名稱。
? ? (2)設置無線網卡的操作模式為Managed:
#iwconfig ethX mode Managed
? ? (3)如果采用了WEP加密,需要設置WEP密碼:
#iwconfig ethX key password XXXXXX
? ? 對應40位和128位加密,password分別為6位和10位的十六進制數字。
? ? (4)設置SSID,其中ESSID為無線接入(Access Point)的SSID。
? ?
# iwconfig ethX essid ESSID
? ? (5)創建/etc/sysconfig/network/ifcfg-ethX配置文件,使得機器每次啟動時,無線網卡都會自動獲得IP地址。該文件內容如下:
BOOTPROTO=‘dhcp’
MTU=‘’
REMOTE_IPADDR=‘’
STARTMODE=‘onboot’
UNIQUE=‘’
(6)啟動無線網卡:
? ?
#ifconfig ethX up
1- 從windows 中得到網卡信息. Inter Pro VM 100
2- 從網上得到Linux 的網卡驅動
3- 按附帶的網卡驅動安裝步驟安裝
a- 安裝redhat 原碼包
# mount /dev/cdrom
# rpm -i kernel-source-2.2.16-22.i386.rpm
# rpm -ivh kgcc-1.1.2-40.i386.rpm
b-安裝驅動
# tar xfz e100-x.x.x.tar.gz
#cd e100-x.x.x/src/
#make install
4-改寫配置文件
#vi /etc/modules.conf
最后增加一條
alias eth0 e100(e100是我的網卡的驅動)
5-配置網絡
#netconf
網卡1
[X]啟動
(O)手動 ()Dhcp ()bootp
IP XXX.XXX.XXX.XXX
Mask 255.255.255.0
網絡設備 eth0
核心模塊 e100
6-修改/etc/rc.d/rc.local,最后增加一條
#insmod /lib/modules/2.2.16-22/net/e100
7-執行
#insmod /lib/modules/2.2.16-22/net/e100.o
#sh /etc/lib/modules/2.2.16-22/net/e100.o
#sh /etc/rc.d/init.d/network reload
/*********************************/
#ifconfig
eth0 : Inter PRO VM .....(卡信息)
inet addr:XXX.XXX.XXX.XXX ....
reboot 機器, 烏拉,啟動認出eth0了.終于成功了.
我是程序員不太懂硬件,在此謝謝各位熱情的大師!!!
1、 獲取DE-530TX的網卡在LINUX下的驅動程序,你可在DLINK的網站上下載,也可以在我的網頁上下載(見最新驅動程序)。
2、把源程序拷貝到LINUX上的任何一個目錄下,本例以/home/yang為例,把網卡的驅動的源程序拷貝到此目錄下。
3、用LINXU自身帶的任何文本編輯器把這個源程序打開,在末尾你可以看到編譯此程序的命令行,把這個命令行復制。
4、 在LINXU的命令提示符下,進入/home/yang/目錄下,把命令進行粘貼,回車即可,(注意命令行中的文件名要目錄下的文件名相同)。回車稍侯,你就可以在此目錄下看到*.o的文件,把這個文件改名為tulip.o,然后把這個文件拷貝到以下目錄 、/lib/modules/2.2.14-5.0(注意,此目錄根據你LINUX的版本號不同而不同)/net/tulip.o,詢問你是否要覆蓋,覆蓋即可。
5、接著在命令提示符下,輸入netconf命令,按以下步驟進行,(client tasks-basic host information-adapter1 .進入之后,分別設定域名,主機名,IP地址,子網掩碼,注意,PCI的網卡不用設定I/o和IRQ,重新開機即可。
轉自:http://www.ccw.com.cn/server/yyjq/htm2005/20050817_15OF4.htm感謝原創作者
曹江華
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Linux 服務器網卡驅動安裝及故障排除
? ? ? ? 網卡是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所示。
由于交換機、路由器通常獨立于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。
#ls /lib/modules/2.4.20-8/kernel/drivers/net/
3c501.o? ?? ?? ?? ? atp.o? ?? ? eth16i.o? ?? ?ni52.o? ?? ?? ?smc-ultra.o
3c503.o? ?? ?? ?? ? bonding.o? ?ethertap.o? ? ni65.o? ?? ?? ?starfire.o
3c505.o? ?? ?? ?? ? cs89x0.o? ? ewrk3.o? ?? ? ns83820.o? ?? ?strip.o
3c507.o? ?? ?? ?? ? de4x5.o? ???fc? ?? ?? ?? ?pcmcia? ?? ?? ?sundance.o
3c509.o? ?? ?? ?? ? de600.o? ???fealnx.o? ?? ?pcnet32.o? ?? ?sungem.o
3c515.o? ?? ?? ?? ? de620.o? ???hamachi.o? ???plip.o? ?? ?? ?sunhme.o
3c59x.o? ?? ?? ?? ? defxx.o? ???hamradio? ?? ?ppp_async.o? ? tc35815.o
8139cp.o? ?? ?? ?? ?depca.o? ???hp100.o? ?? ? ppp_deflate.o??tg3.o
8139too.o? ?? ?? ???dgrs.o? ?? ?hp.o? ?? ?? ? ppp_generic.o??tlan.o
82596.o? ?? ?? ?? ? dl2k.o? ?? ?hp-plus.o? ???ppp_synctty.o??tokenring
8390.o? ?? ?? ?? ???dmfe.o? ?? ?irda? ?? ?? ? r8169.o? ?? ???tulip
ac3200.o? ?? ?? ?? ?dummy.o? ???lance.o? ?? ? rcpci.o? ?? ???tulip_old
acenic.o? ?? ?? ?? ?e100? ?? ???lne390.o? ?? ?sb1000.o? ?? ? tun.o
aironet4500_card.o??e1000? ?? ? lp486e.o? ?? ?shaper.o? ?? ? via-rhine.o
aironet4500_core.o??e2100.o? ???mii.o? ?? ?? ?sis900.o? ?? ? wan
aironet4500_proc.o??eepro100.o??natsemi.o? ???sk98lin? ?? ???wavelan.o
amd8111e.o? ?? ?? ? eepro.o? ???ne2k-pci.o? ? skfp? ?? ?? ???wd.o
appletalk? ?? ?? ???eexpress.o??ne3210.o? ?? ?slhc.o? ?? ?? ?winbond-840.o
arlan.o? ?? ?? ?? ? epic100.o? ?ne.o? ?? ?? ? slip.o? ?? ?? ?wireless
arlan-proc.o? ?? ???eql.o? ?? ? netconsole.o??smc9194.o? ?? ?wireless_old
at1700.o? ?? ?? ?? ?es3210.o? ? ni5010.o? ?? ?smc-ultra32.o??yellowfin.o
可以看到這個目錄列出所有Linux內核支持的網絡設備驅動程序。其中大部分是以太網卡(8139、3COM、Intel)。也有一些是其他類型設備。對于初學者應當盡量選擇目錄中已經列出的網卡。注意以.o 后綴結束的文件就是驅動程序。而沒有后綴的是驅動程序目錄(紅色)。
2.? ? ? ? 檢查網卡是否加載:
驅動硬件是操作系統最基本的功能,操作系統通過各種驅動程序來駕馭硬件設備,和Windows系統不同Linux內核目前采用可加載的模塊化設計(LKMs Loadable Kernel Modules),就是將最基本的核心代碼編譯在內核中,網卡驅動程序是作為內核模塊動態加載的。可以使用命令“lsmod”查看加載情況:
## lsmod
Module? ?? ?? ?? ?? ?? ?Size??Used by
dm_mod? ?? ?? ?? ?? ???54741??0
button? ?? ?? ?? ?? ?? ?6481??0
battery? ?? ?? ?? ?? ???8901??0
ac? ?? ?? ?? ?? ?? ?? ? 4805??0
md5? ?? ?? ?? ?? ?? ?? ?4033??1
joydev? ?? ?? ?? ?? ???10241??0
uhci_hcd? ?? ?? ?? ?? ?31065??0
ehci_hcd? ?? ?? ?? ?? ?30917??0
snd_via82xx? ?? ?? ?? ?26437??0
snd_ac97_codec? ?? ?? ?63889??1 snd_via82xx
snd_pcm_oss? ?? ?? ?? ?49017??0
soundcore? ?? ?? ?? ?? ?9889??1 snd
tulip? ?? ?? ?? ?? ?? ?45025??1
via_rhine? ?? ?? ?? ???23113??2
mii? ?? ?? ?? ?? ?? ?? ?4673??1 via_rhine
ext3? ?? ?? ?? ?? ?? ?116809??2
jbd? ?? ?? ?? ?? ?? ???71257??1 ext3
對每行而言,第一列是模塊名稱;第二列是模塊大小;第三列是調用數。調用數后面的信息對每個模塊而言都有所不同。如果 (unused) 被列在某模塊的那行中,該模塊當前就沒在使用。如果 (autoclean) 被列在某模塊的那行中,該模塊可以被 rmmod -a 命令自動清洗。當這個命令被執行后,所有自從上次被自動清洗后未被使用的被標記了“autoclean”的模塊都會被卸載。叢以上紅色粗體字符可以看到筆者Linux計算機中兩塊網卡模塊:tulip和via_rhine 已經加載。對應的網卡商業型號分別是:
tulip:Lite-On Communications Inc LNE100TX [Linksys EtherFast 10/100]
via_rhine:Via VT6102[Rhine-II] 常見主板集成網卡。
如果沒有檢測到硬件,用硬件檢測程序kuduz檢測網卡,它和Windows中添加新硬件差不多。kudzu程序是通過查看/usr/share/hwdata/目錄下的文件識別各種硬件設備的。如果核心支持該硬件,并且有該驅動程序就可自動裝載。首先說明的是Linux下對網卡的支持往往是只對芯片的,所以對某些不是很著名的網卡,往往需要知道它的芯片型號以配置Linux.比如我的Top link網卡,就不存在Linux的驅動,但是因為它是NE2000兼容,所以把它當NE2000就可以在Linux下用了.所以當你有一塊網卡不能用,在找Linux的驅動程序之前一定搞清楚這個網卡用的什么芯片,跟誰兼容,比如3c509,ne2000等。這樣的型號一般都在網卡上最大的一快芯片上印著,抄下來就是了。對于ISA接口的NE2000卡,先要作的一件事情,是將網卡設定為Jumpless模式.很多現在的網卡缺省 都是PnP模式,這在Windows下的確能減少很多麻煩,但是Linux不支持,所以Linux下必須是Jumpless模式.一般所有網卡都有帶的驅動盤和DOS下可執行的一個設定程序,用該程序將網卡設為 Jumpless。對于PCI網卡,可以使用命令來查看:lspci。在顯示的列表中找到“Ethernet Controller”,記下廠商和型號。然后使用modprobe嘗試加載正確的模塊,比如modprobe 3c509。如果出現錯誤,說明該模塊不存在。這時候你應該找到正確的模塊并且重新編譯。問題一般即可解決。
如果很不幸的,您使用的是比較罕見的一些網卡,或者是 Linux 核心支持不夠的網卡,以致于在安裝 Linux 時,并無法檢測到網卡,那也不用擔心,我們可以使用較為簡單的核心模塊編譯來支持這張網卡。下面以筆者的3Com的3CR990-TX-97 網卡為例(一款具有安全特性網卡)看看如何進行模塊編譯。首先在其網站http://www.3com.com/infodeli/tools/nic/linuxdownload.htm 下載合適你使用內核版本的相關驅動程序,這里以2.4內核為例。
#wegt http://www.3com.com/infodeli/tools/nic/3c990-1.0.0a.tar.gz
另外在開始編譯核心模塊之前,因為驅動程序需要配合核心來編譯,所以會使用到 kernel source 或者是 kernel header 的數據,此外,也需要編譯器 ( compiler ) 的幫助,因此,先確定您的 Linux 系統當中已經下列軟件的存在 :kernel-source 、kernel 、gcc 、make。
#tar zxvf 3c990-1.0.0a.tar.gz
#make
此時會產生3c990.o 驅動模塊。然后使用命令拷貝到相應地方然后查看加載是否正常。
#modprobe 3c990
#cp 3c990.o??/lib/modules/2.4.20-8/kernel/drivers/net
# depmod -a
然后使用lsmod 命令檢查加載情況,如果一切正常的話。可以讓系統啟動時自動加載該模塊:
#echo “alias eth0 3c990”>;>; /etc/modules.conf
3.? ? ? ? 為新網卡設定IP地址
在Linux 網絡設備在配置時被賦予別名,該別名由一個描述性的縮略詞和一個編號組成。某種類型的第一個設備的編號為 0,其他設備依次被編號為 1、2、3,等。但是網卡并不是最為裸設備出現在/dev目錄下,而是存在內存中。eth0, eth1是以太網卡接口。它們用于大多數的以太網卡,包括許多并行端口以太網卡。本文主要討論這類網卡。 為Linux以太網卡設定IP地址的方式非常靈活,你可以選擇適合你工作情況的方法:
(1)? ? ? ? 使用ip或ifconfig命令
ifconfig命令是最重要的Linux網絡命令,最主要的用途是設定、修改網卡的IP地址,修改網卡ip地址:
#ifconfig eth0 192.168.0.2 netmask 255.255.255.0??
默認情況下, ifconfig 顯示活動的網絡設備。給這個命令添加一個 -a 開關就能看到所有設備。但是ifconfig命令設置網絡設備的ip地址系統重新啟動后設置會自動失效。所以它主要用于網卡狀態調試。假設您要建立一個臨時的網絡配置以供測試。您可以使用發行版本中的工具來編輯配置,但是需要注意在完成測試之后,將所有設置恢復回去。通過使用 ifconfig ,我們無需影響已保存的設置,就能夠快速地配置網卡。
Ip命令是iproute2軟件包里面的一個強大的網絡配置工具,它能夠替代一些傳統的網絡管理工具。例如:ifconfig、route等。 現在,絕大多數 Linux 發行版和絕大多數 UNIX都使用古老的arp, ifconfig和route命令。雖然這些工具能夠工作,但它們在Linux2.2和更高版本的內核上顯得有一些落伍。使用iproute2前你應該確認已經安裝了這個工具。這個包的名字在RedHat Linux 9.0叫作“iproute2”,也可以在:ftp://ftp.inr.ac.ru/ip-routing/ 下載源代碼安裝。
如果希望在以太網接口eth0上增加一個地址10.0.0.1,掩碼長度為24位,標準廣播地址,標簽為eth0:Alias:
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias
(2)? ? ? ? 使用 netconfig命令
netconfig命令可以設置網絡設備的ip地址,netconfig命令可以永久保存設置。
使用方法是:“netconfig ethX”。使用命令“netconfig eth0”后會在命令行下彈出一個對話框,這時即可進行設定見圖2,
? ? ? ? ? ? ? ? 圖2 netconfig配置界面
設定結束后用“tab”鍵選擇“OK”即可保存設置并且退出。然后使用命令:“service network restart “激活即可生效。
(3)? ? ? ? 使用neat命令
使用neat命令需要配置好X window系統,在命令行下運行“neat”命令后添加IP地址和其他相關參數后保存設置,從新啟動網絡和網絡服務或計算機,見圖-3。
? ? ? ? ? ? ? ? 圖-3 圖形界面添加IP地址
另外neat命令還有一個同價命令:“redhat-config-network”,二者完全相同。Neat和redhat-config-config命令可以永久保存設置。
(4)? ? ? ? 修改TCP/IP網絡配置文件
除非另行指定,Red Hat Linux 系統中大多數配置文件都在 /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
存盤后使用命令:“service network restart “激活即可生效。這個方法同樣可以永久保存設置。
(5)? ? ? ? 為網卡添加IPV6地址
和Windows系統相比Linux對Ipv6的支持更好,最早的支持Ipv6的Linux內核是 2.2.xxx。 一般Linux基于2.4內核的Linux發行版本都可以直接使用Ipv6,使用前要看系統IPv6模塊是否被加載,如果沒有的話可以使用命令手工加載,這需要超級用戶的權限。然后使用命令檢測,如果顯示IPv6地址(inet6 addr:fe80::200:e8ff:fea0:2586/64)證明IPv6已經加載。
# modprobe IPv6;#ifconfig -a
如果希望Linux系統啟動時自動加載Ipv6模塊,可以在配置文件:/etc/modules.conf中加入一行:
alias net?pf?10 ipv6 # automatically load IPv6 module on demand
4.? ? ? ? 調整網卡工作模式
? ? ? ?
??現在的網卡大多是自適應工作模式,在配置網卡參數時我們很少考慮它的工作模式,有時發現一些網卡模塊已經加載,但是在某些模式工作不穩定。如筆者使用的一塊XXX品牌的雜牌RTL-8139C芯片10/100自適應網卡在100兆全雙工狀態下極其不穩定(在Qcheck的TCP和UDP的測試過程中,數據包遺失率9.12%。)。在Linux環境下,我們可以使用系統自帶的工具mii-tool命令來配置網卡工作模式。顯示Linux服務器網卡支持的所有以太網卡類型,使用命令:
# mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:00:00, model 0 rev 0
basic mode:? ?autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising:??100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
從以上信息中可以看出,這塊網卡工作在100全雙工自適應模式下,“100aseTx-FD”意為100M Full Duplex。這里可以強制網卡工作在100M半工模式下,輸入命令:
#mii-tool –F 100baseTx-HD eth0
以后恢復網卡的自適應工作模式,輸入命令:
#mii-tool –r eth0
??另外路由器、交換機、代理服務器等通信量比較大的關鍵設備上,應該為它指定正確的工作模式,這樣可以提高通信效率。
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 或局域網而安全地訪問企業網。Redhat Linux下的VPN技術主要有CIPE??(Crypto IP Encapsulation:加密 IP 封裝)是主要為 Linux 而開發的 VPN 實現。CIPE 使用加密的 IP 分組,這些分組被封裝或“包圍”在數據報(UDP)分組中。CIPE 分組被給以目標頭信息,并使用默認的 CIPE 加密機制來加密。CIPE 使用標準的 Blowfish 或 IDEA 加密算法來支持加密。根據你所在國家的加密出口法規而定,你可以使用默認方法(Blowfish)來加密你的專用網上的所有 CIPE 交通。CIPE 配置可以通過文本文件、圖形化的網絡管理工具來完成。這里以通過文本文件為例介紹。首先在服務器和客戶端安裝CIPE軟件。官方網站:http://sites.inka.de/~ 運行CIPE VPN服務主要需要建立兩個文件:/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??#對端的 CIPE UDP 地址#
TUNNELDEV=eth0??#隧道穿越設備#
然后建立/etc/cipe/options.cipcb0文件,這個文件存放密匙,主要內容:
cttl 64 #設置載體生存時間值(TTL);推薦的值是64#
maxerr –1??#服務器錯誤掛起時間#
key 54240266869983357939377846801171299051 #128位密匙#
(2)客戶端網卡的配置
由于CIPE要求服務器和客戶機的密匙完全相同所以,首先將密匙文件:options.cipcb從服務器復制到客戶機主機的/etc/cipe/ 目錄中。
# scp root@192.168.1.9:/etc/cipe/options.cipcb0 /etc/cipe/options.cipcb0
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.9' (RSA) to the list of known hosts.
root@192.168.1.9's password:
options.cipcb0? ?? ? 100% |***************************************|? ? 61? ?? ? 00:00
然后使用vi編輯器建立客戶端網卡配置文件:/etc/sysconfig/network-scripts/ifcfg-cipcb0包含以下內容:
USERCTL=no? ? #不允許客戶端修改配置#
BOOTPROTO=none
TYPE=CIPE? ?? ?? ?? ? #接口類型#
DEVICE=cipcb0? ?? ???#給 CIPE 設備命名#
ONBOOT=yes? ?? ?? ?? ? #系統啟動時激活設備#
IPADDR=10.0.0.2? ?? ?#本地虛擬地址#
MYPORT=7777? ?? ?? ?? ?#通訊端口#
PTPADDR=10.0.0.1? ?? ?? ?#遠程虛擬地址#
PEER=192.168.1.29:7777? ???#VPN服務器真實IP地址和端口號#
ME=192.168.1.9? ?? ?? ?? ?#對端的 CIPE UDP 地址#
TUNNELDEV=eth0? ? #隧道穿越設備#
MTU=“”? ?? ?? ???#使用缺省設置#
NETMASK=“”? ?? ?? ?#使用缺省設置#
NETWORK=“”? ?? ?? ?#使用缺省設置#
BROADCAST=“”? ???#使用缺省設置#
(3)使用ifup命令激活VPN網卡
# ifup cipcb0
這時VPN通道已經開啟,可以使用tcpdump等工具檢查。
7.? ? ? ? 無線網卡在Linux下安裝
? ? ? ? 隨著Linux網絡技術的快速增長,硬件廠商大大加速對硬件產品對Linux的技術支持。使得Linux 支持的無線網卡的數量在過去的一兩年里增長顯著。一旦在計算機中安裝好了無線局域網卡,首先要做的就是安裝驅動來讓網卡工作。無線網卡實現了IEEE 802.11系列協議中的一種或多種的物理層(PHY)和媒質訪問控制子層(MAC)的功能,而驅動是用來控制無線網卡,向上提供與以太網一致的接口并提供其他一些無線局域網特定的管理接口的。對于不同廠商的不同網卡,還沒有一種統一的方法可以驅動所有的網卡。首先必須確保內核配置中啟動了無線局域網。如果沒有無線局域網支持,你應該重新配置、編譯內核來啟動"Wireless LAN (non-hamradio) Drivers and Wireless Extensions"。? ?
目前,常見的無線網卡大多為PCMCIA、PCI和USB三種類型,筆者使用最多的是PCMCIA(Personal Computer Memory Card International Association)接口的無線網卡。 對于有些設備,配置無線連接非常簡單:只要在您使用的 Linux 發行版本,插入無線網卡,在設置過程中單擊鼠標,并輸入正確的聯網參數就可以了。通常基于朗訊(Lucent)芯片組的無線網卡的安裝比較簡單,筆者使用的Cisco Aironet Wireless 802.11b 在Mandrake 8.2 Linu安裝程序可以順利地找到設備驅動, 使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無線網卡安裝就比較復雜了。需要一個第三方工具安裝。
目前經過www.Linux.org 認證的PCMCIA網卡有兩大類。使用基于朗訊(Lucent)芯片組的PCIMCIA無線網卡和使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無線網卡見表-1。
Lucent chipset-based cards ? ? ? ? intersil PRISM2-based cards
Lucent Wavelan/IEEE and Orimoco? ? ? ? Linksys(WPC11 v2.5)
Cabletron/Enterays RoarmAbout? ? ? ? SMS(2632W)
Compaq(WL110、WL210、 WL215) ? ? ? ? Compaq(WL100、WL200)
Apple Airport? ? ? ? Cisco Aironet Wireless 802.11b(340、350)
IBM High Rate Wireless LAN? ? ? ? Dlink DWL-650
HP 802.11bWiewless LAN? ? ? ? Nokia
DELL TrueMobile? ? ? ? Intel PRO/Wireless 2100
3Com AirConnect? ? ? ? SAMSUNG 11Mbps WLAN Card
LA4111 Spectrum24 Wireless LAN PC Card? ? ? ? PROXIM LAN PC CARD HARMONY 80211B
? ? ? ? NCR WaveLAN/IEEE Adapter
總的來說Linux下無線網卡的安裝順序一般是:
?? ? ? ? 采取全部安裝方式安裝Linux發行版本,重新編譯內核,并除去任何對內核提供的 PCMCIA 驅動程序的部分。
?? ? ? ? 了解網卡的規格并且下載并編譯相應的 PCMCIA-CS 庫和驅動程序
?? ? ? ? 下載、編譯并安裝無線網卡必需的所有驅動程序。這一步驟對于有些網卡是可選的,而對于有些網卡是必須執行的。做與不做很大程度上取決于您所選的無線網卡。
?? ? ? ? 修改和無線網卡的相關設定。從新啟動Linux系統和網絡。
? ?設置無線網絡相關步驟如下:
? ? (1)用“iwconfig”命令來顯示無線網卡(eth0、eth1)的信息。在以下的步驟中,用ethX表示無線網卡的名稱。
? ? (2)設置無線網卡的操作模式為Managed:
#iwconfig ethX mode Managed
? ? (3)如果采用了WEP加密,需要設置WEP密碼:
#iwconfig ethX key password XXXXXX
? ? 對應40位和128位加密,password分別為6位和10位的十六進制數字。
? ? (4)設置SSID,其中ESSID為無線接入(Access Point)的SSID。
? ?
# iwconfig ethX essid ESSID
? ? (5)創建/etc/sysconfig/network/ifcfg-ethX配置文件,使得機器每次啟動時,無線網卡都會自動獲得IP地址。該文件內容如下:
BOOTPROTO=‘dhcp’
MTU=‘’
REMOTE_IPADDR=‘’
STARTMODE=‘onboot’
UNIQUE=‘’
(6)啟動無線網卡:
? ?
#ifconfig ethX up
1- 從windows 中得到網卡信息. Inter Pro VM 100
2- 從網上得到Linux 的網卡驅動
3- 按附帶的網卡驅動安裝步驟安裝
a- 安裝redhat 原碼包
# mount /dev/cdrom
# rpm -i kernel-source-2.2.16-22.i386.rpm
# rpm -ivh kgcc-1.1.2-40.i386.rpm
b-安裝驅動
# tar xfz e100-x.x.x.tar.gz
#cd e100-x.x.x/src/
#make install
4-改寫配置文件
#vi /etc/modules.conf
最后增加一條
alias eth0 e100(e100是我的網卡的驅動)
5-配置網絡
#netconf
網卡1
[X]啟動
(O)手動 ()Dhcp ()bootp
IP XXX.XXX.XXX.XXX
Mask 255.255.255.0
網絡設備 eth0
核心模塊 e100
6-修改/etc/rc.d/rc.local,最后增加一條
#insmod /lib/modules/2.2.16-22/net/e100
7-執行
#insmod /lib/modules/2.2.16-22/net/e100.o
#sh /etc/lib/modules/2.2.16-22/net/e100.o
#sh /etc/rc.d/init.d/network reload
/*********************************/
#ifconfig
eth0 : Inter PRO VM .....(卡信息)
inet addr:XXX.XXX.XXX.XXX ....
reboot 機器, 烏拉,啟動認出eth0了.終于成功了.
我是程序員不太懂硬件,在此謝謝各位熱情的大師!!!
1、 獲取DE-530TX的網卡在LINUX下的驅動程序,你可在DLINK的網站上下載,也可以在我的網頁上下載(見最新驅動程序)。
2、把源程序拷貝到LINUX上的任何一個目錄下,本例以/home/yang為例,把網卡的驅動的源程序拷貝到此目錄下。
3、用LINXU自身帶的任何文本編輯器把這個源程序打開,在末尾你可以看到編譯此程序的命令行,把這個命令行復制。
4、 在LINXU的命令提示符下,進入/home/yang/目錄下,把命令進行粘貼,回車即可,(注意命令行中的文件名要目錄下的文件名相同)。回車稍侯,你就可以在此目錄下看到*.o的文件,把這個文件改名為tulip.o,然后把這個文件拷貝到以下目錄 、/lib/modules/2.2.14-5.0(注意,此目錄根據你LINUX的版本號不同而不同)/net/tulip.o,詢問你是否要覆蓋,覆蓋即可。
5、接著在命令提示符下,輸入netconf命令,按以下步驟進行,(client tasks-basic host information-adapter1 .進入之后,分別設定域名,主機名,IP地址,子網掩碼,注意,PCI的網卡不用設定I/o和IRQ,重新開機即可。
轉載于:https://www.cnblogs.com/fjchenq/archive/2006/11/21/567805.html
總結
以上是生活随笔為你收集整理的Linux服务器网卡驱动安装及故障排除(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11月17日spring mvc入门培训
- 下一篇: 如何设置Winform控件的Client