萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 在Linux系統下網絡詳細解答

在Linux系統下網絡詳細解答

class="6982">

Linux作為一種主要用於網絡環境的操作系統,有著空前強大的網絡功能。如何在Linux系統中安裝、配置、使用網絡,使其高效、安全地工作十分重要。本文對Linux主機的網絡設備的安裝、配置、調試、網絡服務的設置以及Linux系統的網絡使用進行詳細的講解。最後,還就Linux系統的安全性知識及技巧作簡單介紹。

1. Linux下的網絡安裝、配置及調試

將Linux接入Internet的方法很多,最常見而且快捷方便的方法是以局域網的形式接入。此時就涉及到Linux系統下一塊或多塊網卡的安裝。對於以太網卡,Linux在操作系統的安裝過程中會自動檢測到並自動配置內核以便系統能使用該網卡。只需根據安裝程序的提示給出tcp/ip的配置參數,如本機的ip地址、DNS的ip地址等等,安裝程序將會自動把系統支持的網卡驅動程序編譯到內核中。

對於非以太網卡或者要在原有的基礎上增加網卡的情況下,或者系統本身不支持現有的網卡時,就得自己動手安裝網卡了。其實這並不難,只要了解了加載網卡驅動程序的過程。在Linux系統中,網卡的驅動程序是作為模塊加載到內核中的,正因為如此,當沒有網卡的驅動程序時,可以到網上去下載驅動程序的源文件,甚至可以自己動手編寫網卡的驅動程序,然後以模塊的形式將其編譯到內核中去。所有Linux支持的網卡驅動程序都存放在目錄/lib/modules /Linux版本號/net/,我們可以通過修改模塊配置文件來更換網卡或增減網卡。

在etc目錄下的conf.modules配置文件是加載模塊的一個重要的參數文件,在這個文件中,指明了系統要加載的網卡的驅動程序:

#/etc/conf.modules
            ……
            alias eth0 eepro100
            alias eth1 ne
            options ne io=0x300 irp=5
            ……

這一段文字說明了該Linux系統裝了兩塊網卡,其中alias命令指出以太網口所具有的驅動程序的名稱,即在0號以太網口需要加載的網卡驅動程序是eepro100.o,而1號以太網口要加載的是ne.0。大家一定已經注意到了在1號口下有options一項附加命令,指明了該網卡的io地址和中斷號。這是因為對於pci網卡,系統會自動找到網卡的io地址和中斷號,所以不必用options選項來指定網卡的io地址和中斷號;而對於ISA網卡,則必須要在該配置文件中用options選項指明該網卡的io地址和中斷號。

修改完conf.modules配置文件後,用命令inmod就可以以模塊的形式將網卡驅動程序加載到內核,加載完後還可以用lsmod命令來查看當前加載的模塊的信息。

配置網卡的方法並非只有這一種,用命令netconf或netconfig也能完成網卡的配置工作,netconfig命令是重新配置基本的TCP/IP參數,這些參數包括是否配置為動態獲得ip地址(dhcpd和bootp)、子網掩碼、缺省網關及域名服務器地址等;netconf命令用於詳細配置所有的網絡參數,包括客戶端任務(主機名、有效域名、網絡別名、網卡的ip地址、網絡掩碼、接口名、網卡驅動程序、DNS地址、缺省網關地址、NIS地址、ipx借口,ppp/slip等),服務器端任務(NFS、DNS、ApacheWebServer、Samba、Wu-ftpd等)和其他配置三部分。在超級用戶下鍵入netconf命令,然後只需根據系統給出的選項填入相應的信息即可,同樣,對於PCI網卡,甚至不必填寫硬件的io地址和中斷號;與此同時,你還可以指定該網卡是否可用,其TCP/IP網絡的ip地址及子網掩碼等。隨著Linux圖形界面的發展,同樣,在Xwindows下運行該命令,Linux提供了類似於windows的方便簡單的圖形配置方式。其實,在修改完conf.modules配置文件後,同樣需要用命令netconf或ifconfig來配置TCP/IP網絡參數,因為,上面的工作只是將網卡的驅動程序加載到內核中使其可用而已。

其實,通過修改lilo.conf文件一樣可以將網卡加載到系統內核。但對於一些比較新的Linux版本來說,操作系統能夠自動檢測到所有相關的硬件,完全沒有必要修改lilo.conf文件。如果遇到的是ISA網卡和老的Linux版本。為了使系統初始化時能夠對我們新插入的網卡進行初始化,可以修改lilo.conf文件:

用vi命令打開lilo.conf文件,在文件中添加如下語句:

append="ether=5,0x300,eth0 ether=7,0x500,eth1"

這樣,系統同樣能夠配置好網卡(在上面的語句中是兩塊)。

配置好網卡後,要做的工作就是配置和調試TCP/IP網絡了。上面已經講了,可以用命令netconf來進行TCP/IP的參數配置。

之後,可以用ifconfig命令來調試網絡。在Linux系統中,用命令ifconfig -a可以顯示系統中所有的網絡接口的信息,如:

eth0 link encap:Ethernet Hwaddr 00:0E:5F:1A inet addr:202.206.19.87 Bcast:202.206.112.3 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 PX packet:435510 errors:0 droped:0 overruns:0 frame:2 TX packet 339781 errors:0 dropped:0 overruns:0 carrier:0 Collisions:228938 txqueuelen:100 Interrupt:10 Base address 0x1800 eth1 link encap:Ethernet Hwaddr 4A:08:3D:00 inet addr:129.1.1.6 Bcast:129.0.0.0 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 PX packet:489 errors:0 droped:0 overruns:0 frame:2 TX packet 34 errors:0 dropped:0 overruns:0 carrier:0 Collisions:2 txqueuelen:100 Interrupt:9 Base address 0x1800 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3900 Metric:1 PX packets:3880 errors:0 dropped:0 overrun:0 frame: TX packets:3800 errors:0 dropped:0 overrun:0 carrier:0 Collisions:0 txqueue:0

ifconfig命令不但可以查看系統中網絡接口的情況,還可以通過參數來配置網絡,其命令格式為:

#ifconfig 接口名 ip地址 netmask子網掩碼

只是,ifconfig命令只在本次運行時改變網卡的TCP/IP網絡參數,但當系統重新啟動後,系統仍然按照默認設置來啟動網絡接口。實際上,ifconfig命令是調用netconf來進行網絡配置的。而且,在Linux系統中,我們可以用ifconfig命令給一塊網卡設置多個ip地址,如:

#ifconfig eth0:1 202.206.16.1 netmask 255.255.255.0

然後我們用ifconfig -a命令進行查看,就會發現有兩個具有相同的MAC地址但其ip地址卻不同的接口,分別為:eth0和eth0:1。

另外,我們可以將網卡設置成混雜模式(prosimc),在這個模式下,網卡接收網絡中所有的數據包。

2.常用的網絡命令

計算機網絡的好處就在於資源和信息共享。Linux系統為大家提供了一組功能強大的網絡命令使得用戶可以方便地調試網絡,查看網絡狀況和資源使用情況,以及遠程登錄和文件傳輸等工作。上面介紹了網絡設備的安裝及網絡環境的設置,下面就向大家介紹一些常用的網絡命令。

* ping

ping命令用來檢查網絡上某台主機是否處於活動狀態,它利用TCP/IP協議簇中的ICMP協議的ECHO_REQUEST數據包強制性地要求網絡上某台特定的主機作出響應,如果不能ping 通某台主機,證明主機和那台主機之間的網絡存在故障。但ping 命令只是經過底層的幾個協議,就算能ping 通,但只能說明該條線路正常連接,並不能保證其他高層的服務正常運行,但如果不能ping 通,則這兩台主機根本不能進行任何通信。

* traceroute

traceroute命令也是用於檢查網絡是否能夠正常通信,與ping不同的是,ping命令只能測試出從本機到目的host是否能夠通信,而traceroute命令則能測試出從本機經過了哪些路由器或主機到達目的主機,如果不能到達,其故障具體是出在什麼地方。所以我們常常在ping不通時用該命令在進一步查找原因所在。

*netstat

netstat命令用於顯示網絡狀態信息,其用途很廣泛,可以用來察看網絡連接狀態、接口配置、路由表等,並取得一些統計信息。該命令的主要參數和用途如下:

-a :顯示所有配置的接口

-i :顯示接口的統計信息

-n :以數字的形式顯示ip地址

-r :顯示內核的路由表

-s :顯示計數器的值

*ifconfig

前面已經講到了,ifconfig命令用來查看網絡接口的配置情況,也用於調試網

copyright © 萬盛學電腦網 all rights reserved