Linux系統下ifconfig和route配置網絡詳解

Linux系統下ifconfig和route配置網絡詳解

    ifconfig和route合用於配置網絡(ip命令綜合二者功能,此處不講),通常在前者設置好ip地址等信息後,採用route命令配置路由。(對DHCP動態分配ip的網絡,而需激活此ip)。本文不講route命令。

一、ifconfig命令

    ifconfig命令使LINUX核心知道軟件回送和網卡這樣一些網絡接口,這樣Linux就可以使用它們。除了上面介紹的這些用法之外,ifconfig命令用來監控和改變網絡接口的狀態,並且還可以帶上很多命令行參數。下面是一個ifconfig的通用調用語法:

  #ifconfig [-v] [-a] [-s] interface

  #ifconfig [-v] interface [[-net -host] [address | parameters]+]

  其中interface是網絡接口名:address是分配給指定接口的主機名或IP地址。這裏使用的主機名被解析成它們的對等IP地址,這個參數是必須的。-net和-host參數分別告訴ifconfig將這個地址作爲網絡號或者是主機地址。

  後面的address和parameters參數位置可成組調換。+表示可有一個或多個該類參數

  如果調用ifconfig命令時後面只跟上端口設備名,那麼它將顯示這個端口的配置情況;如果不帶任何參數,ifconfig命令將顯示至今爲止所配置的接口的所有信息;如果帶上-a選項,那麼還可以顯示當前不活躍的接口。

  一個檢查以太網接口eth0的ifconfig調用可以得到如下的輸出:

  #ifconfig eth0

  eth0 Link encap 10Mbps Ethernet HWaddr 00:00:C0:90:B3:44

  inet addr xxx.xxx.xxx.xxx Bcast xxx.xxx.xxx.255 Mask 255.255.255.0

  UP BROADCAST RUNNING MTU 1500 Metric 0

  RX packets 3136 errors 217 dropped 7 overrun 26

  TX packets 1752 errors 25 dropped 0 overrun 0

  (注意:其中XXX.XXX.XXX.XXX是IP地址)

  MTU和Metric這兩列顯示了當前eth0接口的最大數據傳送值和接口度量值。接口度量值表示在這個路徑上發送一個分組的成本。目前內核中還沒有使用路由,但可能以後會用。RX(接收分組數)和TX(傳送分組數)這兩行顯示出了接收、傳送分組的數目,以及分組出錯數、丟失分組數(一個可能原因是內存較少)和超限數(通常在接收器接收數據的速度快於核心的處理速度的時候發生)。

  Parameters 表示ifconfig所支持的各種參數,使用這些參數就可以便方便地監控和改變網絡接口的狀態。

  ifconfig的命令行參數:

  up 激活指定的接口

  down 關閉指定接口。該參數可以有效地阻止通過指定接口的IP信息 流,如果想永久地關閉一個接口,我們還需要從核心路由表中 將該接口的路由信息全部刪除

  netmask mask 爲接口設置IP網絡掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網絡分成 子網,可以不管這一選項;如果要使用子網,那麼請記住,網絡 中每一個系統必須有相同子網掩碼。

  pointpoint 打開指定接口的點對點模式。它告訴核心該接口是對另一臺機 器的直接連接。當包含了一個地址時,這個地址被分配給列表另 一端的機器。如果沒有給出地址,就打開這個指定接口的 POINTPOINT選項。前面加一個負號表示關閉pointpoint選項。

  broadcast address 當使用了一個地址時,設置這個接口的廣播地址。如果 沒有給出地址,就打開這個指定接口的IFF_BROADCAST選項。 前面加上一個負號表示關閉這個選項。

  metric number 將接口度量值設置爲整數number。度量值表示在這個路徑上發 送一個分組的成本。目前內核中還沒有使用路由成本,但將來會。

  mtu bytes 將接口在一次傳輸中可以處理的最大字節數設置爲整數bytes。 目前核心網絡代碼不處理IP分段,因此一定要把MTU(最大數據 傳輸單元) 值設置得足夠大

  arp 打開或關閉指定接口上使用的ARP協議。前面加上一個負號用於 關閉該選項。

  allmuti 打開指定接口的無區別模式。打開這個模式讓接口把網絡上的 所有信息流都送到核心中,而不僅僅是把你的機器的信息發送給 核心。前面加上一個負號表示關閉該選項

  hw class address爲指定接口設置硬件類型和硬件地址。硬件類型名和次硬件地址對等的 ASCII字符必須跟在這個關鍵字後面。目前支持的硬件類型(hardware class)包括以太網 (ether)、AMPR、AX.25和PPP traliers 打開以太網幀上的跟蹤器。目前還未在LINUX網絡中實現,通常不需要使用所有的這些配置。

  ifconfig可以僅由接口名、網絡掩碼和分配IP地址來設置所需的一切。當ifconfig疏漏了或者有一個複雜的網絡時,只要重新設置大多數參數。

  使用netstat檢查網絡狀態

  接下來介紹一個很有用的命令——netstat,使用netstat命令可以監控TCP/IP網絡配置和工作狀況。它可以顯示內核路由表、 活動的網絡狀態以及每個網絡接口的有用的統計數字。欲得詳情請閱man page。

  -a 顯示所有Internet連接的有關信息,包括那些正在監聽的信息

  -i 顯示所有網絡設備的統計數字

  -c 不斷顯示網絡的更新狀態。這個參數使用netstat每秒一次的輸出網絡狀態列表,直到該程序被中斷

  -n 以數字/原始形式顯示遠程地址、本地地址和端口信息,而不是解析主機名和服務器

  -o 顯示計數器的終止時間和每個網絡連接的回退(back off)情況

  -r 顯示內核路由表(netstat -r命令相當於route命令)

  -t 只顯示TCP socket信息,包括正在監聽的信息

  -u 只顯示UDP socket信息

  -v 顯示netstat版本信息

  -w 顯示原始(raw)socket信息

  -x 顯示UNIX域socket信息

======================================

ifconfig詳解

2009-01-12 00:54

ifconfig 是一個用來查看、配置、啓用或禁用網絡接口的工具,這個工具極爲常用的。可以用這個工具來臨時性的配置網卡的IP地址、掩碼、廣播地址、網關等。也可以把它寫入一個文件中(比如/etc/rc.d/rc.local),這樣系統引導後,會讀取這個文件,爲網卡設置IP地址

1.ifconfig 查看網絡接口狀態

ifconfig 如果不接任何參數,就會輸出當前網絡接口的情況;

[root@linuxchao ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:03:0D:27:86:41
inet addr:192.168.1.86 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::203:dff:fe27:8641/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:618 errors:0 dropped:0 overruns:0 frame:0
TX packets:676 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:491238 (479.7 KiB) TX bytes:86286 (84.2 KiB)
Interrupt:5 Base address:0x8c00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1692 errors:0 dropped:0 overruns:0 frame:0
TX packets:1692 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3174550 (3.0 MiB) TX bytes:3174550 (3.0 MiB)


解說:
eth0 表示第一塊網卡, 其中 HWaddr 表示網卡的物理地址,可以看到目前這個網卡的物理地址(MAC地址)是 00:03:0D:27:86:41; inet addr 用來表示網卡的IP地址,此網卡的 IP地址是 192.168.1.86,廣播地址, Bcast:192.168.1.255,掩碼地址Mask:255.255.255.0

lo 是表示主機的回壞地址,這個一般是用來測試一個網絡程序,但又不想讓局域網或外網的用戶能夠查看,只能在此臺主機上運行和查看所用的網絡接口。比如把 HTTPD服務器的指定到回壞地址,在瀏覽器輸入 127.0.0.1 就能看到你所架WEB網站了。但只是您能看得到,局域網的其它主機或用戶無從知道;

如果想知道主機所有網絡接口的情況,請用下面的命令;
[root@linuxchao ~]#ifconfig -a

如果想查看某個端口,比如查看eth0 的狀態,就可以用下面的方法;
[root@linuxchao ~]#ifconfig eth0


2.ifconfig 配置網絡接口

ifconfig 可以用來配置網絡接口的IP地址、掩碼、網關、物理地址等;值得一說的是用ifconfig 爲網卡指定IP地址,這只是用來調試網絡用的,並不會更改系統關於網卡的配置文件。如果您想把網絡接口的IP地址固定下來,目前有三個方法:一是通過各個發行和版本專用的工具來修改IP地址;二是直接修改網絡接口的配置文件;三是修改特定的文件,加入ifconfig 指令來指定網卡的IP地址,比如在redhat或Fedora中,把ifconfig 的語名寫入/etc/rc.d/rc.local文件中;

ifconfig 配置網絡端口的方法:

ifconfig 工具配置網絡接口的方法是通過指令的參數來達到目的的,我們只說最常用的參數;
ifconfig 網卡 IP地址 hw class MAC地址 netmask 掩碼地址 broadcast 廣播地址 [up/down]

* 實例一:
比如我們用ifconfig 來調試 eth0網卡的地址
[root@linuxchao ~]#ifconfig eth0 down
[root@linuxchao ~]#ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0
[root@linuxchao ~]#ifconfig eth0 up
[root@linuxchao ~]#ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:03:0D:27:86:41
inet addr:192.168.1.99 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::203:dff:fe27:8641/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:618 errors:0 dropped:0 overruns:0 frame:0
TX packets:676 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:491238 (479.7 KiB) TX bytes:86286 (84.2 KiB)
Interrupt:5 Base address:0x8c00

註解: 上面的例子我們解說一下;

第一行:ifconfig eth0 [inet] down 表示如果eth0是激活的,就把它DOWN掉。此命令等同於 ifdown eth0;
第二行:用ifconfig 來配置 eth0的IP地址、廣播地址和網絡掩碼;
第三行:用ifconfig eth0 [inet] up 來激活eth0 ; 此命令等同於 ifup eth0
第四行:用 ifconfig eth0 來查看 eth0的狀態;

當然您也可以用直接在指令IP地址、網絡掩碼、廣播地址的同時,激活網卡;要加up參數;比如下面的例子;
[root@linuxchao ~]#ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 inet up
上面的四個部分(蘋果色背景和下劃線部分)可以打亂順序,且inet爲缺省,故可不寫。


* 實例二:在這個例子中,我們要學會設置網絡IP地址的同時,學會設置網卡的物理地址(MAC地址);

比如我們設置網卡eth1的IP地址、網絡掩碼、廣播地址,物理地址並且激活它;
[root@linuxchao ~]#ifconfig eth1 192.168.1.252 hw ether 04:64:03:00:12:51 netmask 255.255.255.0 broadcast 192.168.1.255 up

[root@linuxchao ~]#ifconfig eth1 hw ether 04:64:03:00:12:51
[root@linuxchao ~]#ifconfig eth1 192.168.1.252 netmask 255.255.255.0 broadcast 192.168.1.255 up

其中 hw 後面所接的是網絡接口類型, ether表示乙太網, 同時也支持 ax25 、ARCnet、netrom等,詳情請查看 man ifconfig ;


3.如何用ifconfig 來配置虛擬網絡接口

有時我們爲了滿足不同的需要還需要配置虛擬網絡接口,比如我們用不同的IP地址來架運行多個HTTPD服務器,就要用到虛擬地址;這樣就省卻了同一個IP地址,如果開設兩個的HTTPD服務器時,要指定端口號。

虛擬網絡接口指的是爲一個網絡接口指定多個IP地址,虛擬接口是這樣的 eth0:0 、 eth0:1、eth0:2 ... .. eth1N。當然您爲eth1 指定多個IP地址,也就是 eth1:0、eth1:1、eth1:2 ... ...以此類推;

其實用ifconfig 爲一個網卡配置多個IP地址,就用前面我們所說的ifconfig的用法,這個比較簡單;看下面的例子;
[root@linuxchao ~]#ifconfig eth1:0 192.168.1.251 hw ether 04:64:03:00:12:51 netmask 255.255.255.0 broadcast 192.168.1.255 up

[root@linuxchao ~]#ifconfig eth1 hw ether 04:64:03:00:12:51
[root@linuxchao ~]#ifconfig eth1 192.168.1.251 netmask 255.255.255.0 broadcast 192.168.1.255 up

注意:指定時,要爲每個虛擬網卡指定不同的物理地址;

在 Redhat/Fedora 或與Redhat/Fedora類似的系統,您可以把配置網絡IP地址、廣播地址、掩碼地址、物理地址以及激活網絡接口同時放在一個句子中,寫入/etc/rc.d/rc.local中。比如下面的例子;
ifconfig eth1:0 192.168.1.250 hw ether 00:11:00:33:11:44 netmask 255.255.255.0 broadcast 192.168.1.255 up
ifconfig eth1:1 192.168.1.249 hw ether 00:11:00:33:11:55 netmask 255.255.255.0 broadcast 192.168.1.255 up

解說:上面是爲eth1的網絡接口,設置了兩個虛擬接口;每個接口都有自己的物理地址、IP地址... ...


4.如何用ifconfig 來激活和終止網絡接口的連接

激活和終止網絡接口的用 ifconfig 命令,後面接網絡接口,然後加上 down或up參數,就可以禁止或激活相應的網絡接口了。當然也可以用專用工具ifup和ifdown 工具;
[root@linuxchao ~]#ifconfig eth0 down
[root@linuxchao ~]#ifconfig eth0 up
[root@linuxchao ~]#ifup eth0
[root@linuxchao ~]#ifdown eth0

對於激活其它類型的網絡接口也是如此,比如 ppp0,wlan0等;不過只是對指定IP的網卡有效。

注意:對DHCP自動分配的IP,還得由各個發行版自帶的網絡工具來激活;當然得安裝dhcp客戶端;這個您我們應該明白;

比如Redhat/Fedora
[root@linuxchao ~]#/etc/init.d/network start

Slackware 發行版;
[root@linuxchao ~]#/etc/rc.d/rc.inet1


debian下有dhcpcd、dhcp3-client(dhclient)和另一個軟件包,只需用一款。詳見官方主頁關於“debian 配置網絡”部分。


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