ip命令詳解

linux命令之ip

1、ip命令簡介

ip 是個命令, ip 命令的功能很多!基本上它整合了 ifconfig 與 route 這兩個命令,不過 ip 的功能更強大。

1.1 語法

[root@localhost ~]# ip
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
       ip [ -force ] -batch filename
where  OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
                   tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |
                   netns | l2tp | tcp_metrics | token }
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -f[amily] { inet | inet6 | ipx | dnet | bridge | link } |
                    -4 | -6 | -I | -D | -B | -0 |
                    -l[oops] { maximum-addr-flush-attempts } |
                    -o[neline] | -t[imestamp] | -b[atch] [filename] |
                    -rc[vbuf] [size]}

1.2 選項

OPTIONS:選項。

  • -s:顯示出該設備的統計數據(statistics),例如總接受封包數等;

OBJECT:動作對象,就是是可以針對哪些網絡設備對象進行動作。

  • link:關于設備 (device) 的相關設定,包括 MTU,MAC 地址等。
  • addr/address:關于額外的 IP 設定,例如多 IP 的實現等。
  • route :與路由有關的相關設定。

1.3 命令解釋

1.3.1 ip link 相關

ip link 可以設定與設備(device)有關的相關設定,包括MTU以及該網絡設備的MAC等,當然也可以啟動(up)或關閉(down)某個網絡設備。

1、查看當前主機設備

[root@hserver1 ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:a8:9d:cf brd ff:ff:ff:ff:ff:ff

[root@hserver1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:a8:9d:cf brd ff:ff:ff:ff:ff:ff

[root@hserver1 ~]# ip -s link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    2484149802179 18084541920 0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    2484149802179 18084541920 0       0       0       0      
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:a8:9d:cf brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    543869729815 1042387048 0       0       0       0      
    TX: bytes  packets  errors  dropped carrier collsns 
    145245658628 953348255 0       0       0       0 

使用ip link show可以顯示出整個設備的硬件相關信息,如上所示,包括MAC地址、MTU等。lo是主機內部自行設定的,如果加上-s的參數后,則這個網卡的相關統計信息就會被列出來,包括接收(RX)及傳送(TX)的封包數量等,詳細的內容與ifconfig所輸出的結果相同。

2、啟動、關閉與設定設備的相關信息

# 關閉ens32這個設備
[root@localhost ~]# ip link set ens32 down

# 啟動ens32這個設備
[root@localhost ~]# ip link set ens32 up

# 更改MTU為1000 bytes,單位就是bytes,再改回來。
[root@localhost ~]# ip link set ens32 mtu 1000
[root@hserver1 ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1000 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:a8:9d:cf brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# ip link set ens32 mtu 1500

要更改網卡代號、MAC地址的信息的話,設定前需要先關閉該網卡,否則會不成功。

[root@localhost ~]# ip link set ens32 name daocoder
RTNETLINK answers: Device or resource busy

# 關閉ens32這個設備
[root@localhost ~]# ip link set ens32 down
# 改網卡名
[root@localhost ~]# ip link set ens32 name daocoder
2 daocoder: <BROADCAST,MULTICAST> mtu 1000 qdisc noqueue state DOWN mode DEFAULT 
link/ether 02:42:41:f5:6b:fb brd ff:ff:ff:ff:ff:ff
# 改回來
[root@localhost ~]# ip link set daocoder name ens32
# 如果你的網卡支持MAC更改,測試完之后要立刻改回來
[root@localhost ~]# ip link set ens32 address aa:aa:aa:aa:aa:aa

在這個設備的硬件相關信息設定,上面包括 MTU, MAC 以及傳輸的模式等等,都可以在這里設定。

1.3.2 ip address 相關

如果說ip link是與OSI七層模型的第二層數據鏈路層有關的話,那么ip address (ip addr)就是與第三層網絡層有關的了。主要是在設定與 IP 有關的各項參數,包括 netmask, broadcast 等。

1、查看IP參數

[root@hserver1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a8:9d:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.120/24 brd 192.168.8.255 scope global dynamic ens32
       valid_lft 66532sec preferred_lft 66532sec
    inet6 fe80::20c:29ff:fea8:9dcf/64 scope link 
       valid_lft forever preferred_lft forever
[root@hserver1 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a8:9d:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.120/24 brd 192.168.8.255 scope global dynamic ens32
       valid_lft 66526sec preferred_lft 66526sec
    inet6 fe80::20c:29ff:fea8:9dcf/64 scope link 
       valid_lft forever preferred_lft forever
[root@hserver1 ~]# ip -s addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:a8:9d:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.120/24 brd 192.168.8.255 scope global dynamic ens32
       valid_lft 66522sec preferred_lft 66522sec
    inet6 fe80::20c:29ff:fea8:9dcf/64 scope link 
       valid_lft forever preferred_lft forever

ip address [add|del] [IP參數] [dev 設備名] [相關參數]

[root@hserver1 ~]# ip addr 
add      change   del      flush    help     replace  show

[add|del]:

  • add|del:進行相關參數的增加(add)或刪除(del)設定。
  • show:顯示詳細信息。

IP 參數 :主要就是網域的設定,例如 192.168.100.100/24 之類的設定。

[dev 設備名]:IP 參數所要設定的設備,例如eth0, eth1等。

[相關參數]:

  • broadcast:設定廣播位址,如果設定值是 + 表示讓系統自動計算;
  • label:該設備的別名,例如eth0:0;
  • scope:這個設備的領域,默認global,通常是以下幾個大類:
    • global:允許來自所有來源的連線;
    • site:僅支持IPv6 ,僅允許本主機的連接;
    • link:僅允許本設備自我連接;
    • host:僅允許本主機內部的連接;

[root@localhost ~]# ip addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

如果遠程連接,下面的操作要自己的主機和遠程機器在統一網段再操作。

# 給ens160這塊網卡再設置一個虛擬ip。
[root@localhost ~]# ip address add 192.168.12.23/24 broadcast + dev ens160 label ens160:test

一個網卡只能綁定一個IP地址(即IP與MAC綁定),但可以設置多個IP地址,作用就是可以連接多個網段(就是可以訪問多個網段),但前提是這些網段物理層是連接在一起。

[root@localhost ~]# ip addr show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:0c:29:22:c5:7c brd ff:ff:ff:ff:ff:ff
    inet 192.168.8.216/24 brd 192.168.8.255 scope global ens160
       valid_lft forever preferred_lft forever
    inet 192.168.12.23/24 brd 192.168.12.255 scope global ens160:test
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe22:c57c/64 scope link 
       valid_lft forever preferred_lft forever

# 然后再刪除這個ip
[root@localhost ~]# ip address del 192.168.12.23/24 dev ens160

1.3.3 ip route 相關

tips:此節不要隨便嘗試。

路由的查看與設定。事實上ip route 的功能幾乎與 route 這個命令一樣,但是,它還可以進行額外的參數設置,例如MTU的規劃等。

[root@localhost ~]# ip route
default via 192.168.8.254 dev ens160  proto static  metric 100 
172.18.0.0/16 dev br-b16b81326e94  proto kernel  scope link  src 172.18.0.1 
192.168.8.0/24 dev ens160  proto kernel  scope link  src 192.168.8.216  metric 100 
[root@localhost ~]# ip route show
default via 192.168.8.254 dev ens160  proto static  metric 100 
172.18.0.0/16 dev br-b16b81326e94  proto kernel  scope link  src 172.18.0.1 
192.168.8.0/24 dev ens160  proto kernel  scope link  src 192.168.8.216  metric 100

必須注意的幾點:

  • proto:此路由的路由協定,主要有redirect,kernel,boot,static,ra等,其中kernel是直接由核心判斷自動設定。
  • scope:路由的范圍,主要是link,是與本設備有關的直接連接。

ip route [add|del] [IP或網域] [via gateway] [dev 設備]

[root@localhost ~]# ip route 
add      append   change   del      flush    get      help     list     monitor  replace

[add|del]:

  • add|del:增加(add)或刪除(del)路由。
  • show:顯示詳細信息。

[IP或網域]:可使用192.168.50.0/24之類的網域或者是單純的 IP 。

[via gateway]:從哪個gateway出去,不一定需要。

[dev 設備名]:所要設定的設備,例如eth0, eth1等。

1、顯示當前路由

[root@localhost ~]# ip route
default via 192.168.8.254 dev ens160  proto static  metric 100 
172.18.0.0/16 dev br-b16b81326e94  proto kernel  scope link  src 172.18.0.1 
192.168.8.0/24 dev ens160  proto kernel  scope link  src 192.168.8.216  metric 100 
[root@localhost ~]# ip route show
default via 192.168.8.254 dev ens160  proto static  metric 100 
172.18.0.0/16 dev br-b16b81326e94  proto kernel  scope link  src 172.18.0.1 
192.168.8.0/24 dev ens160  proto kernel  scope link  src 192.168.8.216  metric 100

2、增加路由

主要是本機直接可溝通的網域。

[root@localhost ~]# ip route add 192.168.12.0/24 dev ens160

3、增加通往外部路由

[root@localhost ~]# ip route add 192.168.10.0/24 via 192.168.12.1 dev eth0

4、刪除路由

[root@localhost ~]# ip route del 192.168.10.0/24
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容

  • 1.這篇文章不是本人原創的,只是個人為了對這部分知識做一個整理和系統的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,119評論 6 174
  • 1.命令格式:ifconfig [網絡設備] [參數] 2.命令功能: ifconfig 命令用來查看和配置網絡設...
    Nuuuu閱讀 3,778評論 0 12
  • Linux的ip命令和ifconfig類似,但前者功能更強大,并旨在取代后者。使用ip命令,只需一個命令,你就能很...
    garyond閱讀 5,416評論 1 7
  • 一、現今互聯網模型 1、OSI七層模型 什么是OSI七層模型? 開放系統互連參考模型 (Open System I...
    魏鎮坪閱讀 1,637評論 1 3
  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,085評論 0 8