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