Linux系統下ifconfig和route配置網絡詳解html
ifconfig和route合用於配置網絡(ip命令綜合兩者功能,此處不講),一般在前者設置好ip地址等信息後,採用route命令配置路由。(對DHCP動態分配ip的網絡,而需激活此ip)。本文不講route命令。
linux
1、ifconfig命令瀏覽器
ifconfig命令使LINUX核心知道軟件回送和網卡這樣一些網絡接口,這樣Linux就可使用它們。除了上面介紹的這些用法以外,ifconfig命令用來監控和改變網絡接口的狀態,而且還能夠帶上不少命令行參數。下面是一個ifconfig的通用調用語法:服務器
#ifconfig [-v] [-a] [-s] interface網絡
#ifconfig [-v] interface [[-net -host] [address | parameters]+]socket
其中interface是網絡接口名:address是分配給指定接口的主機名或IP地址。這裏使用的主機名被解析成它們的對等IP地址,這個參數是必須的。-net和-host參數分別告訴ifconfig將這個地址做爲網絡號或者是主機地址。ide
後面的address和parameters參數位置可成組調換。+表示可有一個或多個該類參數工具
若是調用ifconfig命令時後面只跟上端口設備名,那麼它將顯示這個端口的配置狀況;若是不帶任何參數,ifconfig命令將顯示至今爲止所配置的接口的全部信息;若是帶上-a選項,那麼還能夠顯示當前不活躍的接口。oop
一個檢查以太網接口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:一、eth0:2 ... .. eth1N。固然您爲eth1 指定多個IP地址,也就是 eth1:0、eth1:一、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 配置網絡」部分。