ifconfig相關參數及用法說明


一、ifconfig

  ifconfig 主要是可以手動啟動、觀察與修改網絡接口的相關參數,可以修改的參數很多,包括 IP 參數以及 MTU 等都可以修改,它的語法如下:

[root@linux ~]# ifconfig {interface} {up|down}  <== 觀察與啟動接口
[root@linux ~]# ifconfig interface {options}    <== 設置與修改接口
參數:
Interface,網卡接口代號,包括 eth0、eth1、ppp0 等
Options,可以接的參數,包括如下:
    Up或down,啟動 (up) 或關閉 (down) 該網絡接口(不涉及任何參數)
    mtu,可以設置不同的 MTU 數值,例如MTU 1500 (單位為 byte)
    netmask,就是子屏蔽網絡
    broadcast,就是廣播地址
范例:

范例一:觀察所有的網絡接口(直接輸入 ifconfig)
[root@linux ~]# ifconfig
eth0 Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2
      inet addr:192.168.10.100  Bcast:192.168.10.255  
Mask:255.255.255.0
      inet6 addr: fe80::20f:eaff:fe73:682/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:3439 errors:0 dropped:0 overruns:0 frame:0
      TX packets:2735 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:646935 (631.7 KiB)  TX bytes:562313 (549.1 KiB)
      Interrupt:209 Memory:fb000000-0

  

一般來說,直接輸入 ifconfig 就會列出目前已經被啟動的卡,不論這個卡是否有設置 IP,都會被顯示出來。而如果是輸入 ifconfig eth0,則會顯示出這個接口的相關數據,而不管該接口是否啟動。所以,如果你想要知道某個網卡的 Hardware Address,直接輸入“ifconfig "網絡接口代號"”即可。至於上述代碼中出現的各項數據是這樣的(數據排列由上而下、由左而右)。

  • eth0:網卡的代號,也有 lo 這個 loopback。
  • HWaddr:網卡的硬件地址,習慣稱為 MAC。
  • inet addr:IPv4 的 IP 地址,后續的 Bcase、Mask 分別代表的是 Broadcast 與 Netmask。
  • inet6 addr:是 IPv6 的版本的 IP,我們沒有使用,所以略過。
  • RX:那一行代表的是網絡由啟動到目前為止的數據包接收情況,packets 代表數據包數、errors 代表數據包發生錯誤的數量、dropped 代表數據包由於有問題而遭丟棄的數量等。
  • TX:與 RX 相反,為網絡由啟動到目前為止的傳送情況。
  • collisions:代表數據包碰撞的情況,如果發生太多次,表示你的網絡狀況不太好。
  • txqueuelen:代表用來傳輸數據的緩沖區的儲存長度。
  • RX Bytes、TX Bytes:總傳送、接收的字節總量。
  • Interrupt、Memory:網卡硬件的數據,IRQ 岔斷與內存地址。

      通過觀察上述的資料,大致上可以了解到你的網絡情況,尤其是 RX、TX 內的 error 數量,以及是否發生嚴重的 collision 情況,都是需要注意的。

  • 范例二:暫時修改網絡接口
    [root@linux ~]# ifconfig eth0 192.168.100.100
    # 如果不加任何其他參數,則系統會依照該 IP 所在的 class 范圍,
    # 自動地計算出 netmask 以及 network, broadcast 等 IP 參數
    
    [root@linux ~]# ifconfig eth0 192.168.100.100 netmask 255.255.255.128 \
    > mtu 8000 
    # 設置網絡接口,同時設置 MTU 的數值
    
    [root@linux ~]# ifconfig eth0 MTU 9000
    # 僅修改該接口的 MTU 數值,其他的保持不動
    
    [root@linux ~]# ifconfig eth0:0 192.168.50.50
    # 仔細看那個接口, eth0:0 。那就是在該網絡接口上,再仿真一個網絡接口,
    # 亦即是在一個網卡上面設置多個 IP 的意思啦
    
    [root@linux ~]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2
              inet addr:192.168.10.100 Bcast:192.168.10.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:3669 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2892 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:667547 (651.9 KiB)  TX bytes:584799 (571.0 KiB)
              Interrupt:209 Memory:fb000000-0
    
    eth0:0    Link encap:Ethernet  HWaddr 00:0F:EA:A3:06:A2
              inet addr:192.168.200.2 Bcast:192.168.200.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              Interrupt:209 Memory:fb000000-0
    # 仔細看,是否與硬件有關的信息都相同。沒錯。因為是同一個網卡。
    
    [root@linux ~]# ifconfig eth0:0 down
    # 關掉 eth0:0 這個接口。如果想要啟動 eth1 ,並且不設置任何網絡參數
    # ifconfig eth1 up 就可以實現
    
    [root@linux ~]# /etc/init.d/network restart
    # 剛剛設置的數據全部失效,會以 ifcfg-ethx 的設置為主
    

     使用 ifconfig 可以暫時用手動來設置或修改某個適配卡的相關功能,並且也可以通過 eth0:0 這種虛擬的網絡接口來設置一張網卡上面的多個 IP。手動的方式是比較簡單。而且設置錯誤也沒有關系,因為我們可以利用 /etc/init.d/network restart 來重新啟動整個網絡接口,那么之前手動的設置數據會全部失效。另外,要啟動某個網絡接口,但又不讓它具有 IP 參數時,直接給它 ifconfig eth0 up 即可。這個操作經常在無線網卡當中進行,因為我們需要啟動無線網卡讓它去檢測 AP 存在與否。 

  • 原文轉自https://blog.csdn.net/lu_embedded/article/details/53215324


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM