Linux網絡故障的解決問題的思路

Linux網絡故障的解決問題的思路

Linux網絡故障排除應當遵循先硬件後軟件的方法。因爲硬件如果出現物理損壞那麼如何設定網絡都不能解決故障。解決問題的方法可以從自身Linux計算機的網卡查起,然後到服務器、集線器、路由器等硬件。如果確定硬件沒有問題了,再來考慮軟件的設定。

1、檢查網卡工作狀況

(1)使用cat /proc/modules查看網卡的模塊是否已被加載,驅動硬件是操作系統最基本的功能,操作系統通過各種驅動程序來駕馭硬件設備,和Windows系統不同Linux內核目前採用可加載的模塊化設計(LKMs Loadable Kernel Modules),就是將最基本的核心代碼編譯在內核中,而我們常見的驅動程序就是作爲內核模塊動態加載的,比如網卡驅動。Windows系統中我們一般“控制面板”的“設備管理器”查看硬件列表,在Linux中可以在命令行下輸入:cat /proc/modules 即可顯示Linux系統檢測到的所有硬件設備。運行cat /proc/modules需要超級用戶的權限,你可以使用su命令實現。

[root@www cao]# cat /proc/modules
parport_pc             25096   1 (autoclean)
lp                      8096   0 (autoclean)
parport                34176   1 (autoclean) [parport_pc lp]
sg                     34636   0 (autoclean) (unused)
st                     29488   0 (autoclean) (unused)
sr_mod                 16920   0 (autoclean) (unused)
sd_mod                 13100   0 (autoclean) (unused)
scsi_mod              103284   4 (autoclean) [sg st sr_mod sd_mod]
ide-cd                 33856   0 (autoclean)
nfsd                   74256   8 (autoclean)
af_packet              14952   0 (autoclean)
floppy                 55132   0
8139too                17160   1 (autoclean)
mii                     3832   0 (autoclean) [8139too]
tulip                  44032   1 (autoclean)
ne2k-pci                6720   1 [ne2k-pci]
nls_gb2312               964   5 (autoclean)
nls_cp936             124956   6 (autoclean)
vfat                   11820   5 (autoclean)
fat                    37944   0 (autoclean) [vfat]
supermount             15296   2 (autoclean)
usbmouse                2936   0 (unused)

叢以上粗體字符可以看到筆者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命令:

[root@www cao]# ifconfig -a 
eth0      Link encap:Ethernet  HWaddr 00:00:E8:A0:25:86
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:28 dropped:0 overruns:0 carrier:28
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
Interrupt:11 Base address:0xdc00

 

eth1      Link encap:Ethernet  HWaddr 00:50:FC:56:75:F5
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:26 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b)  TX bytes:2804 (2.7 Kb)
Interrupt:10 Base address:0x7000

 

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:233 errors:0 dropped:0 overruns:0 frame:0
TX packets:233 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:16248 (15.8 Kb)  TX bytes:16248 (15.8 Kb)

叢上面可以看到第二塊網卡沒有分配IP地址,我們現在可以添加IP地址。以Redhat Linux 9.0爲例。以root權限運行命令:neat出現圖形化配置界面,然後添加IP地址後保存設置,從新啓動網絡和網絡服務或計算機,見圖-3。

 

 
圖-3 圖形界面添加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.

文件內容是:

DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
IPADDR=192.168.1.12
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
USERCTL=yes
PEERDNS=no
GATEWAY=192.168.1.1
TYPE=Ethernet

e、然後用以下命令啓動網絡服務:

#service network restat

說明網卡問題:使用ifconfig來進行配置。如果運行ifconfig,將會給出所有已經安裝了的網卡。如果沒有顯示可用的網卡,那麼很有可能是以下原因之一:1. 網卡沒有被Linux檢測到;2. 沒有與之相應的內核模塊;3. 該模塊沒有被加載;4. Linux系統不支持你的網卡。就現在來說,出現問題4的可能性很小,一般來說都是問題2和3,也可能是1。

Linux下無線網卡的安裝:

目前經過www.Linux.org 認證的PCMCIA網卡有兩大類。使用基於朗訊(Lucent)芯片組的PCIMCIA無線網卡和使用基於intersil PRISM2-based cards 芯片組的PCMCIA的無線網卡見表-1。不過由於基於intersil PRISM2-based cards 芯片組的PCMCIA的無線網卡價格比較便宜(相當於朗訊(Lucent)芯片組的PCIMCIA無線網卡的三分之一),所以國內的PCMCIA的無線網卡以後者居多。

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的技術支持。使得Linux 支持的無線網卡的數量在過去的一兩年裏增長顯著。對於有些設備,配置無線連接非常簡單:只要在您使用的 Linux 發行版本,插入無線網卡,在設置過程中單擊鼠標,並輸入正確的聯網參數就可以了。通常基於朗訊(Lucent)芯片組的PCIMCIA無線網卡的安裝比較簡單,筆者使用的Cisco Aironet Wireless 802.11b 在Mandrake 8.2 Linu安裝程序可以順利地找到設備驅動, 使用基於intersil PRISM2-based cards 芯片組的PCMCIA的無線網卡安裝就比較複雜了。需要一個第三方工具安裝。

總的來說Linux下無線網卡的安裝順序一般是:

採取全部安裝方式安裝Linux發行版本,重新編譯內核,併除去任何對內核提供的 PCMCIA 驅動程序的部分。

瞭解網卡的規格並且下載並編譯相應的 PCMCIA-CS 庫和驅動程序

下載、編譯並安裝無線網卡必需的所有驅動程序。這一步驟對於有些網卡是可選的,而對於有些網卡是必須執行的。做與不做很大程度上取決於您所選的無線網卡。

修改和無線網卡的相關設定。從新啓動Linux系統和網絡。

2、 Ping 127.0.0.1 驗證本機TCP/IP協議是否安裝

Linux中一個概念:封閉迴路。使用TCP/IP協議的Linux計算機,都會擁有一個IP地址,彼此間相互以IP地址確認對方,傳遞信息與數據。在有些情況下,我們爲了進行某項測試(比如網卡是否正確安裝),或者是沒有另外一臺電腦作爲接收端。這時,我們可利用本機扮演信息的發送端和接收端,這就是所謂的封閉迴路。 封閉迴路的IP地址是127.0.0.1。這個Ping命令被送到本地計算機的IP軟件,在Linux下該命令永不退出該計算機。如果沒有做到這一點,就表示TCP/IP的安裝或運行存在某些最基本的問題。

3、確認局域網內網絡連接情況

網卡設定確認沒有問題之後,接下來要確認局域網內網絡連接情況。根據圖-2網絡拓撲結構,對集線器1組成的局域網的要求有下面幾點:

(1)客戶機IP的設定

假設子網爲192.168.1.0/24,那麼局域網內所有計算機的IP應該介於192.168.1.1~192.168.1.254,且所有的計算機子屏蔽網絡均爲255.255.255.0,IP在所有的計算機都不可以重複。

(2)網關

假設Linux IP爲192.168.1.2,那麼局域網內所有客戶機的網關是192.168.1.2 。

(3)Windows端的通信協議

局域網內其它的Windows系統的通信協議僅需要TCP/IP及NetBUEI即可,如果安裝過多的通信協議可能會造成聯機過慢。

(4)Windows 端工作組與計算機名稱

假如需要資源共享,那麼就必須在Windows系統中建立文件共享,並且所有的計算機工作組必須相同,但計算機名稱不能相同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章