Linux 命令(108)—— ifconfig 命令

  • 2020 年 2 月 17 日
  • 筆記

1.命令簡介

ifconfig(configure a network interface)命令是系統管理員命令,用於查看和配置網路介面。

2.命令格式

ifconfig [-v] [-a] [-s] [INTERFACE]  ifconfig [-v] INTERFACE [aftype] OPTIONS | ADDRESS ...

不跟任何選項和參數單獨執行 ifconfig 命令將顯示當前活動介面的狀態。如果給定一個介面參數,則它僅顯示給定介面的狀態。如果只給一個選項 -a,它將顯示所有介面的狀態,包括那些關閉的介面。其他情況,用於配置一個介面。

3.選項說明

-a  	顯示所有介面的狀態,包括那些關閉的介面  -s  	顯示介面簡短狀態列表,類似於 netstat -i  -v  	冗餘模式,遇到錯誤將報告錯誤資訊  INTERFACE  	介面的名稱。這通常是一個驅動程式名,後面跟著一個單元號,例如用於第一個乙太網介面的 eth0  up  	此標誌將導致激活介面。如果將地址分配給介面,則會隱式激活介面  down  	此標誌用於關閉介面的驅動程式  [-]arp  	啟用或關閉介面使用 ARP 協議  [-]promisc  	啟用或禁用介面的混雜模式。如果選中,網路上的所有數據包都將由介面接收  [-]allmulti  	啟用或禁用所有多播模式。如果選中,則介面將接收網路上的所有多播數據包  mtu N  	設置介面的最大傳輸單元  dstaddr ADDR  	為點對點鏈路(如 PPP)設置遠程 IP 地址。關鍵字 dstaddr 現在已經過時了,使用 pointopoint 關鍵字代替  netmask ADDR  	設置介面的 IP 網路掩碼。此值默認為通常的 A、B 或 C 類網路掩碼(從介面 IP 地址派生),但可以設置為任何值  add ADDR/PREFIX_LEN  	向介面添加 IPv6 地址  del ADDR/PREFIX_LEN  	從介面中刪除 IPv6 地址  tunnel ::aa.bb.cc.dd  	創建一個新的SIT(IPv6-in-IPv4)設備,通過隧道到達給定的目的地  irq ADDR  	設置此設備使用的中斷行。並非所有設備都可以動態更改其 IRQ 設置  io_addr ADDR  	為該設備設置 I/O 空間中的起始地址  mem_start ADDR  	設置此設備使用的共享記憶體的起始地址。只有少數幾個設備需要這個  media TYPE  	設置設備要使用的物理埠或介質類型。典型的類型值有10base2(細乙太網)、10baseT(雙絞線 10Mbps 乙太網)、AUI(外部收發器)等。特殊的媒體類型可以使用 auto 來告訴驅動程式進行自動感知。注意,並非所有設備都可以更改此設置  [-]broadcast [ADDR]  	如果給定地址參數,則為該介面設置協議廣播地址。否則設置(或清除)介面的 IFF_BROADCAST標誌  [-]pointopoint [ADDR]  	這個關鍵字啟用了介面的點對點模式,這意味著它是兩台機器之間的直接連接,沒有其他人監聽它。如果給了地址參數,就像過時的 dstaddr 關鍵字一樣,設置另一端的協議地址。否則設置或清除介面的 IFF_POINTOPOINT 標誌  hw CLASS ADDR  	如果設備驅動程式支援此操作,則設置此介面的物理地址。CLASS 為硬體類型名稱,ADDR 為物理地址。目前支援的硬體類包括 ether (Ethernet)、ax25 (AMPR AX.25)、ARCnet 和 netrom (AMPR NET/ROM)  multicast  	在介面上設置多播標誌。一般不需要顯示設置,因為驅動程式本身會設置正確的標誌  ADDRESS  	介面的 IP 地址  txqueuelen LENGTH  	設置設備的傳輸隊列的長度。對於具有高延遲(數據機鏈路,ISDN)的較慢設備,將其設置為小值是有用的,以防止快速批量傳輸過多地干擾諸如 telnet 之類的交互通訊

4.常用示例

(1)查看處於激活狀態的網路介面資訊。

ifconfig  eth0      Link encap:Ethernet  HWaddr 00:16:3E:00:1E:51            inet addr:10.160.7.81  Bcast:10.160.15.255  Mask:255.255.240.0            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1            RX packets:61430830 errors:0 dropped:0 overruns:0 frame:0            TX packets:88534 errors:0 dropped:0 overruns:0 carrier:0            collisions:0 txqueuelen:1000            RX bytes:3607197869 (3.3 GiB)  TX bytes:6115042 (5.8 MiB)    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:56103 errors:0 dropped:0 overruns:0 frame:0            TX packets:56103 errors:0 dropped:0 overruns:0 carrier:0            collisions:0 txqueuelen:0            RX bytes:5079451 (4.8 MiB)  TX bytes:5079451 (4.8 MiB)

eth0 表示第一塊網卡。

第一行 Link encap:Ethernet 表示連接類型為乙太網,HWaddr 00:16:3E:00:1E:51 為網卡的物理地址; 第二行 inet addr:10.160.7.81 為網卡的 IPv4 地址,Bcast:10.160.15.255 為廣播地址,Mask:255.255.240.0 為子網掩碼; 第三行 UP(代表網卡開啟狀態),BROADCAST(支援廣播),RUNNING(代表網卡的網線被接上),MULTICAST(支援組播),MTU:1500(最大傳輸單元 1500 位元組),Metric:1 表示網卡路由數據包優先順序,數值越低,優先順序越高; 第四、五行:接收、發送數據包情況統計; 第七行:接收、發送數據位元組數統計資訊。

lo 是表示主機的迴環地址,這個一般是用來測試一個網路程式,只能在本機上訪問,區域網或外網的主機無法訪問該地址。

(2)查看所有網路介面資訊,不論其是否激活。

ifconfig -a

(3)查看指定網路介面資訊。

ifconfig eth0

(4)啟動和關閉指定網卡。

# 啟動網卡  ifconfig eth0 up  # 關閉網卡  ifconfig eth0 down

(5)修改 MAC 地址。

ifconfig eth0 down  ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE  ifconfig eth0 up

(6)配置 IP 地址。

# 給 eth0 網卡配置 IP 地址  ifconfig eth0 192.168.1.56    # 給 eth0 網卡配置 IP 地址並加上子網掩碼  ifconfig eth0 192.168.1.56 netmask 255.255.255.0    # 給 eth0 網卡配置 IP 地址,加上子網掩碼,加上廣播地址  ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255

(7)啟用和關閉 ARP 協議。

# 開啟網卡 eth0 的 arp 協議  ifconfig eth0 arp  # 關閉網卡 eth0 的 arp 協議  ifconfig eth0 -arp

(8)設置最大傳輸單元。

# 設置能通過的最大數據包大小為 1500 bytes  ifconfig eth0 mtu 1500

(9)


參考文獻

[1] ifconfig(8) manual [2]【Linux】一步一步學Linux——ifconfig命令(151) [3] Linux 命令大全.ifconfig命令 [4] Ifconfig Command – Explained in Detail