Linux的ip命令和ifconfig類似或详,但前者功能更強(qiáng)大,并旨在取代后者郭计。使用ip命令霸琴,只需一個(gè)命令,你就能很輕松地執(zhí)行一些網(wǎng)絡(luò)管理任務(wù)昭伸。ifconfig是net-tools中已被廢棄使用的一個(gè)命令梧乘,許多年前就已經(jīng)沒有維護(hù)了。Linux系統(tǒng)提供iproute2工具用于替代一些常用的net-tools命令庐杨,iproute2套件里提供了許多增強(qiáng)功能的命令选调,ip命令即是其中之一。
- 格式:
ip [options] object [command [arguments]]
-
主要參數(shù)
OPTIONS是修改ip行為或改變其輸出的選項(xiàng)灵份。所有的選項(xiàng)都是以-字符開頭仁堪,分為長(zhǎng)、短兩種形式各吨。如link枝笨、addr缺亮、route驱敲、rule洪囤、tunnel 锈颗。
object是要管理者獲取信息的對(duì)象椭符。如網(wǎng)絡(luò)接口類型eth0余指。
command設(shè)置針對(duì)指定對(duì)象執(zhí)行的操作毁菱,它和對(duì)象的類型有關(guān)哭靖。一般情況下瑰谜,ip支持對(duì)象的增加(add)欺冀、刪除(delete)和展示(show或list)。有些對(duì)象不支持這些操作萨脑,或者有其它的一些命令隐轩。對(duì)于所有的對(duì)象,用戶可以使用help命令獲得幫助渤早。這個(gè)命令會(huì)列出這個(gè)對(duì)象支持的命令和參數(shù)的語法职车。如果沒有指定對(duì)象的操作命令,ip會(huì)使用默認(rèn)的命令鹊杖。一般情況下悴灵,默認(rèn)命令是list,如果對(duì)象不能列出骂蓖,就會(huì)執(zhí)行help命令积瞒。
arguments是命令的一些參數(shù),它們倚賴于對(duì)象和命令登下。ip支持兩種類型的參數(shù):flag和parameter茫孔。flag由一個(gè)關(guān)鍵詞組成;parameter由一個(gè)關(guān)鍵詞加一個(gè)數(shù)值組成庐船。為了方便银酬,每個(gè)命令都有一個(gè)可以忽略的默認(rèn)參數(shù)。例如筐钟,參數(shù)dev是ip link命令的默認(rèn)參數(shù)揩瞪,因此ip link ls eth0等于ip link ls dev eth0。命令的默認(rèn)參數(shù)將使用default標(biāo)出篓冲。
1. IP地址管理
-
設(shè)置和刪除Ip地址
-
設(shè)置一個(gè)IP地址李破,可以使用下列ip命令:
ip addr add 192.168.0.193/24 dev wlan0
請(qǐng)注意IP地址要有一個(gè)后綴,比如/24壹将。這種用法用于在無類域內(nèi)路由選擇(CIDR)中來顯示所用的子網(wǎng)掩碼嗤攻。在這個(gè)例子中,子網(wǎng)掩碼是255.255.255.0诽俯。
-
需要查看是否已經(jīng)生效妇菱。
ip addr show wlan0
-
刪除IP地址
ip addr del 192.168.0.193/24 dev wlan0
-
2. 路由管理
-
列出路由表?xiàng)l目
IP命令的路由對(duì)象的參數(shù)還可以幫助你查看網(wǎng)絡(luò)中的路由數(shù)據(jù),并設(shè)置你的路由表。第一個(gè)條目是默認(rèn)的路由條目闯团,你可以隨意改動(dòng)它辛臊。
ip route show
假設(shè)現(xiàn)在你有一個(gè)IP地址,你需要知道路由包從哪里來房交〕菇ⅲ可以使用下面的路由選項(xiàng)(譯注:列出了路由所使用的接口等):
ip route get 119.75.216.20
-
添加默認(rèn)路由
ip route add default via 192.168.202.254
-
添加網(wǎng)絡(luò)路由
ip route add 192.168.4.0/24 via 192.168.4.1
-
修改網(wǎng)絡(luò)路由
ip route change 192.168.4.0/24 dev eth1
-
設(shè)置NAT路由
ip route add nat 192.168.1.100 via 192.168.1.1
-
查看某個(gè)路由表信息
ip route show table main ip route show table local ip route show table all
-
擦除路由表
# 擦除所有路由表 ip route flush # 擦除路由表的緩存 ip route flush cache
3. 網(wǎng)絡(luò)統(tǒng)計(jì)
-
顯示網(wǎng)絡(luò)統(tǒng)計(jì)數(shù)據(jù)
使用ip命令還可以顯示不同網(wǎng)絡(luò)接口的統(tǒng)計(jì)數(shù)據(jù)。
ip -s link
當(dāng)你需要獲取一個(gè)特定網(wǎng)絡(luò)接口的信息時(shí)候味,在網(wǎng)絡(luò)接口名字后面添加選項(xiàng)ls即可刃唤。使用多個(gè)選項(xiàng)-s會(huì)給你這個(gè)特定接口更詳細(xì)的信息。特別是在排除網(wǎng)絡(luò)連接故障時(shí)白群,這會(huì)非常有用尚胞。
ip -s -s link ls docker0 或 ip -s link ls docker0
4. ARP管理
-
查看ARP信息
地址解析協(xié)議(ARP)用于將一個(gè)IP地址轉(zhuǎn)換成它對(duì)應(yīng)的物理地址,也就是通常所說的MAC地址帜慢。使用ip命令的neigh或者neighbour選項(xiàng)辐真,你可以查看接入你所在的局域網(wǎng)的設(shè)備的MAC地址。
ip neighbour
5. 網(wǎng)絡(luò)監(jiān)測(cè)
-
監(jiān)控netlink消息
可以使用ip命令查看netlink消息崖堤。monitor選項(xiàng)允許你查看網(wǎng)絡(luò)設(shè)備的狀態(tài)侍咱。比如,所在局域網(wǎng)的一臺(tái)電腦根據(jù)它的狀態(tài)可以被分類成REACHABLE或者STALE密幔。使用下面的命令:
ip monitor all
6. 網(wǎng)絡(luò)接口設(shè)置
-
激活和停止網(wǎng)絡(luò)接口
你可以使用ip命令的up和down選項(xiàng)來激某個(gè)特定的接口楔脯,就像ifconfig的用法一樣。
# 停止網(wǎng)絡(luò)接口eth0 ip link set eth0 down # 啟動(dòng)網(wǎng)絡(luò)接口eth0 ip link set eth0 up
-
修改設(shè)置傳輸隊(duì)列的長(zhǎng)度
ip link set dev eth0 txqueuelen 100 或 ip link set dev eth0 txqlen 100
-
修改網(wǎng)絡(luò)設(shè)置MTU(最大傳輸單元)的值
ip link set dev eth0 mtu 1500
-
修改網(wǎng)卡的MAC地址
ip link set dev eth0 address 00:01:4f:00:15:f1
7. 路由策略設(shè)置
ip rule命令中包含add胯甩、delete昧廷、show(或者list)等子命令,注意:策略路由(policy routing)不等于路由策略(rouing policy)偎箫。在某些情況下木柬,我們不只是需要通過數(shù)據(jù)包的目的地址決定路由,可能還需要通過其他一些域:源地址淹办、IP協(xié)議眉枕、傳輸層端口甚至數(shù)據(jù)包的負(fù)載。這就叫做:策略路由(policy routing)怜森。
# 插入新的規(guī)則
ip rule add
# 刪除規(guī)則
ip rule delete
# 顯示路由表信息
ip rule list
子命令可以用如下縮寫:add速挑、a;delete副硅、del姥宝、d
示例1: : 雙網(wǎng)卡數(shù)據(jù)路由策略選擇,讓來自192.168.3.0/24的數(shù)據(jù)包走11.0.0.254這個(gè)網(wǎng)關(guān)恐疲,來自192.168.4.0/24的數(shù)據(jù)包走12.0.0.254這個(gè)網(wǎng)關(guān)
-
定義表
echo 10 clinet_cnc >>/etc/iproute2/rt_tables echo 20 clinet_tel >>/etc/iproute2/rt_tables
-
把規(guī)則放入表中
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