ifconfig 是一個用來查看、配置、啟用或禁用網絡接口的工具,這個工具極為常用的。可以用這個工具來臨時性的配置網卡的IP地址、掩碼、廣播地址、網關等。也可以把它寫入一個文件中(比如/etc/rc.d/rc.local),這樣系統引導后,會讀取這個文件,為網卡設置IP地址
語法:ifconfig [網絡設備] [參數]
ifconfig [網絡設備][down| up| -allmulti |-arp -promisc][add<地址>][del<地址>][<hw<網絡設備類型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<網絡媒介類型>][mem_start<內存地址>][metric<數目>][mtu<字節>][netmask<子網掩碼>][tunnel<地址>][broadcast<地址>][pointopoint<地址>][IP地址]
參 數:
[網絡設備] 指定網絡設備的名稱。
del<地址> 刪除網絡設備IPv6的IP地址。
<hw<網絡設備類型><硬件地址> 設置網絡設備的類型與硬件地址。
irq<IRQ地址> 設置網絡設備的IRQ。
mem_start<內存地址> 設置網絡設備在主內存所占用的起始地址。
mtu<字節> 設置網絡設備的MTU。
tunnel<地址> 建立IPv4與IPv6之間的隧道通信地址。
-broadcast<地址> 將要送往指定地址的數據包當成廣播數據包來處理。
-promisc 關閉或啟動指定網絡設備的promiscuous模式。
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 類型 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 down 表示如果eth0是激活的,就把它DOWN掉。此命令等同於 ifdown eth0;
第二行:用ifconfig 來配置 eth0的IP地址、廣播地址和網絡掩碼;
第三行:用ifconfig eth0 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 up
* 實例二:在這個例子中,我們要學會設置網絡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\