2021-05-12 14:32:11
Linux下IP命令使用詳解
Linux的ip命令和ifconfig類似,但前者功能更強大,並旨在取代後者。使用ip命令,只需一個命令,你就能很輕鬆地執行一些網路管理任務。ifconfig是net-tools中已被廢棄使用的一個命令,許多年前就已經沒有維護了。Linux系統提供iproute2工具用於替代一些常用的net-tools命令,iproute2套件裡提供了許多增強功能的命令,ip命令即是其中之一。
- 格式:
ip [options] object [command [arguments]]
-
主要引數
-
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
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
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-11/148353.htm
相關文章