Linux下IP命令使用詳解


Linux的ip命令和ifconfig類似,但前者功能更強大,並旨在取代后者。使用ip命令,只需一個命令,你就能很輕松地執行一些網絡管理任務。ifconfig是net-tools中已被廢棄使用的一個命令,許多年前就已經沒有維護了。Linux系統提供iproute2工具用於替代一些常用的net-tools命令,iproute2套件里提供了許多增強功能的命令,ip命令即是其中之一。


Linux net-tools VS. iproute2
  1. 格式:

ip [options] object [command [arguments]]

  1. 主要參數

    • OPTIONS是修改ip行為或改變其輸出的選項。所有的選項都是以-字符開頭,分為長、短兩種形式。如link、addr、route、rule、tunnel 。

    • object是要管理者獲取信息的對象。如網絡接口類型eth0。

    • command設置針對指定對象執行的操作,它和對象的類型有關。一般情況下,ip支持對象的增加(add)、刪除(delete)和展示(show或list)。有些對象不支持這些操作,或者有其它的一些命令。對於所有的對象,用戶可以使用help命令獲得幫助。這個命令會列出這個對象支持的命令和參數的語法。如果沒有指定對象的操作命令,ip會使用默認的命令。一般情況下,默認命令是list,如果對象不能列出,就會執行help命令。

    • arguments是命令的一些參數,它們倚賴於對象和命令。ip支持兩種類型的參數:flag和parameter。flag由一個關鍵詞組成;parameter由一個關鍵詞加一個數值組成。為了方便,每個命令都有一個可以忽略的默認參數。例如,參數dev是ip link命令的默認參數,因此ip link ls eth0等於ip link ls dev eth0。命令的默認參數將使用default標出。

1. IP地址管理

  • 設置和刪除Ip地址

    • 設置一個IP地址,可以使用下列ip命令:

      ip addr add 192.168.0.193/24 dev wlan0
      

      請注意IP地址要有一個后綴,比如/24。這種用法用於在無類域內路由選擇(CIDR)中來顯示所用的子網掩碼。在這個例子中,子網掩碼是255.255.255.0。

    • 需要查看是否已經生效。

      ip addr show wlan0
      
    • 刪除IP地址

      ip addr del 192.168.0.193/24 dev wlan0
      

2. 路由管理

  • 列出路由表條目

    IP命令的路由對象的參數還可以幫助你查看網絡中的路由數據,並設置你的路由表。第一個條目是默認的路由條目,你可以隨意改動它。

    ip route show 
    查看路由表
    查看路由表

    假設現在你有一個IP地址,你需要知道路由包從哪里來。可以使用下面的路由選項(譯注:列出了路由所使用的接口等):

    ip route get 119.75.216.20 
    查看路由包
    查看路由包
  • 添加默認路由

    ip route add default via 192.168.202.254 
  • 添加網絡路由

    ip route add 192.168.4.0/24 via 192.168.4.1 
  • 修改網絡路由

    ip route change 192.168.4.0/24 dev eth1 
  • 設置NAT路由

    ip route add nat 192.168.1.100 via 192.168.1.1 
  • 查看某個路由表信息

    ip route show table main ip route show table local ip route show table all 
  • 擦除路由表

    # 擦除所有路由表 ip route flush # 擦除路由表的緩存 ip route flush cache 

3. 網絡統計

  • 顯示網絡統計數據

    使用ip命令還可以顯示不同網絡接口的統計數據。

    ip -s link 
    網絡統計數據
    網絡統計數據

    當你需要獲取一個特定網絡接口的信息時,在網絡接口名字后面添加選項ls即可。使用多個選項-s會給你這個特定接口更詳細的信息。特別是在排除網絡連接故障時,這會非常有用。

    ip -s -s link ls docker0 或 ip -s link ls docker0 

4. ARP管理

  • 查看ARP信息

    地址解析協議(ARP)用於將一個IP地址轉換成它對應的物理地址,也就是通常所說的MAC地址。使用ip命令的neigh或者neighbour選項,你可以查看接入你所在的局域網的設備的MAC地址。

    ip neighbour 
    image.png
    image.png

5. 網絡監測

  • 監控netlink消息

    可以使用ip命令查看netlink消息。monitor選項允許你查看網絡設備的狀態。比如,所在局域網的一台電腦根據它的狀態可以被分類成REACHABLE或者STALE。使用下面的命令:

    ip monitor all 

6. 網絡接口設置

  • 激活和停止網絡接口

    你可以使用ip命令的up和down選項來激某個特定的接口,就像ifconfig的用法一樣。

    # 停止網絡接口eth0 ip link set eth0 down # 啟動網絡接口eth0 ip link set eth0 up 
  • 修改設置傳輸隊列的長度

    ip link set dev eth0 txqueuelen 100 或 ip link set dev eth0 txqlen 100 
  • 修改網絡設置MTU(最大傳輸單元)的值

    ip link set dev eth0 mtu 1500 
  • 修改網卡的MAC地址

    ip link set dev eth0 address 00:01:4f:00:15:f1 

7. 路由策略設置

ip rule命令中包含add、delete、show(或者list)等子命令,注意:策略路由(policy routing)不等於路由策略(rouing policy)。在某些情況下,我們不只是需要通過數據包的目的地址決定路由,可能還需要通過其他一些域:源地址、IP協議、傳輸層端口甚至數據包的負載。這就叫做:策略路由(policy routing)。

# 插入新的規則 ip rule add # 刪除規則 ip rule delete # 顯示路由表信息 ip rule list 

子命令可以用如下縮寫:add、a;delete、del、d

示例1: : 雙網卡數據路由策略選擇,讓來自192.168.3.0/24的數據包走11.0.0.254這個網關,來自192.168.4.0/24的數據包走12.0.0.254這個網關

  • 定義表

    echo 10 clinet_cnc >>/etc/iproute2/rt_tables echo 20 clinet_tel >>/etc/iproute2/rt_tables 
  • 把規則放入表中

    ip rule add from 192.168.3.0/24 table clinet_cnc ip rule add from 192.168.4.0/24 table clinet_tel 
  • 添加策略路由

    ip route add default via 11.0.0.254 table clinet_cnc ip route add default via 12.0.0.254 table clinet_tel 
  • 刷新路由表

    ip route flush cache


免責聲明!

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



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