Linux 中如何使用 IP 命令

image

老版本的 Linux 中都是使用 ifconfig 命令檢查和配置網(wǎng)絡(luò)接口,但是該命令目前已經(jīng)沒有維護(hù)了穿肄,取而代之的是 ip 命令

ip 命令和 ifconfig 命令很相似,但是 相比起來,ip命令的功能更強(qiáng)大漩蟆,它能執(zhí)行多種 ifconfig 命令無法執(zhí)行的任務(wù)

本文將介紹 ip 命令常用的一些操作

顯示所有網(wǎng)絡(luò)接口信息

輸入 ip addr 或者 ip a 命令可以顯示所有的網(wǎng)絡(luò)接口信息

[root@ecs-centos-7 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
       valid_lft 74409sec preferred_lft 74409sec
    inet6 fe80::f816:3eff:fee0:4fb8/64 scope link 
       valid_lft forever preferred_lft forever
[root@ecs-centos-7 ~]# 

上面的輸出中,可以看出系統(tǒng)目前的網(wǎng)絡(luò)接口分別是 loeth0, 前者是網(wǎng)絡(luò)環(huán)回接口眉撵,后者是常規(guī)的網(wǎng)絡(luò)接口

輸出接口信息的 字段詳解

<BROADCAST,MULTICAST,UP,LOWER_UP>: BROADCAST 表示支持廣播, MULTICAST 表示支持多播

UP 網(wǎng)絡(luò)接口處于開啟狀態(tài)

LOWER_UP 表示網(wǎng)絡(luò)電纜已插入并且已連上網(wǎng)絡(luò)

mtu 1500: 最大傳輸?shù)膯挝?500字節(jié)

qdisc pfifo_fast: 數(shù)據(jù)包排隊(duì)

state UP: 接口狀態(tài)已開啟

qlen 1000: 傳輸隊(duì)列長(zhǎng)度

link/ether fa:16:3e:e0:4f:b8 Mac地址

brd ff:ff:ff:ff:ff:ff 廣播地址

inet 192.168.0.9/24 : IPV4

scope global: 全局有效

dynamic eth0: 動(dòng)態(tài)分配地址

valid_lft 74409sec: IPV4有效期

preferred_lft 74409sec: IPV4首選生存期

inet6 fe80::f816:3eff:fee0:4fb8/64  IPV6

scope link: 僅在此接口上生效

除了輸出所有的網(wǎng)絡(luò)接口信息外,還可以按照以下方式個(gè)性化輸出網(wǎng)絡(luò)接口信息

  • 按照是否支持 IPV4 或 IPV6輸出

命令 ip -4 a 會(huì)輸出只支持IPV4的接口信息

同樣落塑,命令 ip -6 a 會(huì)輸出只支持IPV6的接口信息

  • 按照接口名字輸出

命令 ip a show eth0會(huì)輸出 eth0接口的信息

[root@ecs-centos-7 ~]# ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
       valid_lft 73494sec preferred_lft 73494sec
    inet6 fe80::f816:3eff:fee0:4fb8/64 scope link 
       valid_lft forever preferred_lft forever

  • 按照網(wǎng)絡(luò)接口開啟和關(guān)閉狀態(tài)輸出

命令 ip link ls up 會(huì)輸出所有處于開啟狀態(tài)的網(wǎng)絡(luò)接口信息

那么纽疟,ip link ls down就會(huì)輸出所有處于關(guān)閉狀態(tài)的網(wǎng)絡(luò)接口信息

為網(wǎng)絡(luò)接口 添加、移除 IP地址

  • 添加IP

為指定網(wǎng)絡(luò)接口分配IP地址的命令格式: ip a add ip地址 dev 接口名字

比如:現(xiàn)在要為eth0 網(wǎng)絡(luò)接口分配一個(gè)網(wǎng)絡(luò)掩碼為 20 的IP 192.168.1.10, 具體的輸入請(qǐng)看下面的實(shí)例

[root@ecs-centos-7 ~]# ip a add 192.168.1.10/20  dev eth0
[root@ecs-centos-7 ~]# ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
       valid_lft 71787sec preferred_lft 71787sec
    inet 192.168.1.10/20 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fee0:4fb8/64 scope link 
       valid_lft forever preferred_lft forever

從上面例子的輸出結(jié)果可以看出憾赁,網(wǎng)絡(luò)接口eth0上多了一個(gè)192.168.1.10的 IP

命令 ip a add 192.168.1.10/20 dev eth0 執(zhí)行成功的話污朽,是沒有任何輸出,如果網(wǎng)絡(luò)接口 eth0 不存在的話龙考,會(huì)輸出 Cannot find device "eth0" 的錯(cuò)誤信息

其實(shí)蟆肆,還可以通過執(zhí)行 ping 192.168.1.10 命令來測(cè)試網(wǎng)絡(luò)接口上IP是否分配成功,如果能 ping 通IP的話晦款,表示分配成功炎功,否則表示失敗

說明:192.168.1.10/20 中 20 是 CIDR 表示法的網(wǎng)絡(luò)掩碼,想詳細(xì)了解的可以自行查閱網(wǎng)絡(luò)掩碼的資料

  • 移除IP

網(wǎng)絡(luò)接口上添加了IP之后柬赐,可使用 ip a del ip地址 dev 接口名字 命令從指定的接口移除指定的IP亡问,移除的時(shí)候IP后面需要攜帶網(wǎng)絡(luò)掩碼

[root@ecs-centos-7 ~]# ip a del 192.168.1.10/20 dev eth0
[root@ecs-centos-7 ~]# ip a show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
       valid_lft 71414sec preferred_lft 71414sec
    inet6 fe80::f816:3eff:fee0:4fb8/64 scope link 
       valid_lft forever preferred_lft forever

修改網(wǎng)絡(luò)接口狀態(tài)

要關(guān)閉或者開啟網(wǎng)絡(luò)接口,可以使用 ip link set dev 接口名字 up/down 命令

例如:有 loeth0 兩個(gè)網(wǎng)絡(luò)接口, 具體接口信息如下

[root@ecs-centos-7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.9/24 brd 192.168.0.255 scope global noprefixroute dynamic eth0
       valid_lft 59216sec preferred_lft 59216sec
    inet6 fe80::f816:3eff:fee0:4fb8/64 scope link 
       valid_lft forever preferred_lft forever

通過 ping -w 3 127.0.0.1 命令測(cè)試肛宋,結(jié)果表明 lo 接口目前是開啟狀態(tài)州藕,具體的測(cè)試輸出如下所示

[root@ecs-centos-7 ~]# ping -w 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.014 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.022 ms
64 bytes from 127.0.0.1: icmp_seq=4 ttl=64 time=0.023 ms

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.014/0.021/0.026/0.005 ms

現(xiàn)在關(guān)閉 lo 網(wǎng)絡(luò)接口,并再次測(cè)試該接口的狀態(tài)酝陈,具體命令如下:

[root@ecs-centos-7 ~]# ip link set dev lo down
[root@ecs-centos-7 ~]# ip link show lo
1: lo: <LOOPBACK> mtu 65536 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

[root@ecs-centos-7 ~]# ping -w 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

--- 127.0.0.1 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 2999ms

執(zhí)行 ip link set dev lo down 命令之后床玻,關(guān)閉了網(wǎng)絡(luò)接口lo,通過 ip link show lo 命令查看該接口的信息沉帮,結(jié)果表明接口是關(guān)閉狀態(tài)锈死,再次通過 ping -w 3 127.0.0.1測(cè)試接口的狀態(tài),再一次確認(rèn)了接口是關(guān)閉狀態(tài)

修改網(wǎng)絡(luò)接口傳輸隊(duì)列長(zhǎng)度

通過 p l set txqueuelen 長(zhǎng)度 dev 接口名字命令可以設(shè)置網(wǎng)絡(luò)接口的傳輸隊(duì)列長(zhǎng)度

[root@ecs-centos-7 ~]# ip l show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1200
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff

[root@ecs-centos-7 ~]# ip l set txqueuelen 1000 dev eth0
[root@ecs-centos-7 ~]# ip l show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff

上面的例子中穆壕,字符串 <mark style="box-sizing: border-box;">qlen 1200</mark> 表示傳輸隊(duì)列長(zhǎng)度是 <mark style="box-sizing: border-box;">1200</mark>

從例子中可以看出待牵,修改傳輸隊(duì)列長(zhǎng)度之前,傳輸隊(duì)列長(zhǎng)度是 <mark style="box-sizing: border-box;">1200</mark>

執(zhí)行 ip l set txqueuelen 1000 dev eth0 命令把傳輸隊(duì)列長(zhǎng)隊(duì)修改為 1000, 然后再執(zhí)行 ip l show eth0 命令查詢 eth0網(wǎng)絡(luò)接口的信息喇勋,查詢結(jié)果中 <mark style="box-sizing: border-box;">default qlen 1000</mark> 說明修改成功

修改網(wǎng)絡(luò)接口的MTU(最大傳輸單元)

通過 p l set mtu 長(zhǎng)度 dev 接口名字 命令可以設(shè)置網(wǎng)絡(luò)接口的最大傳輸單元

[root@ecs-centos-7 ~]# ip l show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1600 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1200
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff

[root@ecs-centos-7 ~]# ip l set set mtu 1500 dev eth0
[root@ecs-centos-7 ~]# ip l show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1200
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff

上面的例子中缨该,字符串 <mark style="box-sizing: border-box;">mtu 1600</mark> 表示最大傳輸單元是 <mark style="box-sizing: border-box;">1600</mark>

從例子中可以看出,修改傳輸隊(duì)列長(zhǎng)度之前川背,最大傳輸單元是 <mark style="box-sizing: border-box;">1600</mark>

執(zhí)行 ip l set set mtu 1500 dev eth0 命令把最大傳輸單元修改為 1500, 然后再執(zhí)行 ip l show eth0 命令查詢 eth0網(wǎng)絡(luò)接口的信息贰拿,查詢結(jié)果中 <mark style="box-sizing: border-box;">mtu 1500</mark> 說明修改成功

查看IP路由表

下面幾條命令都可以查看 IP 路由表

ip r
ip route
ip r list
ip route list

  • 查看路由表
[root@ecs-centos-7 ~]# ip r
default via 192.168.0.1 dev eth0 proto dhcp metric 100 
169.254.169.254 via 192.168.0.254 dev eth0 proto dhcp metric 100 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.9 metric 100

  • 查看指定IP以及網(wǎng)絡(luò)掩碼的路由表
[root@ecs-centos-7 ~]# ip r list 192.168.0.0/24
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.9 metric 100 

查看ARP緩存

ARP是 Address Resolution Protocol 的縮寫, 全稱是地址解析協(xié)議,它是用于實(shí)現(xiàn)從IP地址到Mac地址的映射熄云,也就是詢問目標(biāo)IP的Mac地址

在本地存儲(chǔ)了一份IP對(duì)應(yīng)Mac地址的映射表膨更,這張表叫做 ARP緩存表,可以使用 ip n 命令查看緩存表

[root@ecs-centos-7 ~]# ip n
192.168.0.1 dev eth0 lladdr fa:16:3e:64:38:a8 REACHABLE
192.168.0.254 dev eth0 lladdr fa:fa:fa:fa:fa:01 STALE

更改網(wǎng)卡Mac地址

大部分場(chǎng)景中是不需要修改Mac地址的缴允,但有時(shí)你可能想隱藏真實(shí)的Mac地址(物理地址)荚守,這時(shí)可以修改Mac地址,修改Mac地址的命令如下

ip link set dev 接口名 address 新的Mac地址

下面以修改 lo 網(wǎng)絡(luò)接口的Mac地址為例來說明

[root@ecs-centos-7 ~]# ip l list lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

[root@ecs-centos-7 ~]# ip l set lo address fa:16:3e:e0:4f:b4
[root@ecs-centos-7 ~]# ip l list lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback fa:16:3e:e0:4f:b4 brd 00:00:00:00:00:00

從上面的例子中可以看出练般,lo接口初始的Mac地址是 00:00:00:00:00:00

執(zhí)行 ip l set lo address fa:16:3e:e0:4f:b4 命令修改Mac地址健蕊,然后再執(zhí)行 ip l list lo 查看 lo接口的信息,輸出的結(jié)果信息表明Mac地址修改成功

<mark style="box-sizing: border-box;">注意:如果當(dāng)前網(wǎng)絡(luò)接口上執(zhí)行上面的命令踢俄,當(dāng)前會(huì)話會(huì)中斷缩功,需要重啟機(jī)器才能恢復(fù),所以最好是在其他的網(wǎng)絡(luò)接口上測(cè)試</mark>

查看網(wǎng)絡(luò)統(tǒng)計(jì)信息

通過 ip -s link 命令可以查看網(wǎng)絡(luò)接口上的一些統(tǒng)計(jì)數(shù)據(jù)都办,比如接口上傳輸?shù)淖止?jié)數(shù)嫡锌、報(bào)文數(shù),錯(cuò)誤或者丟棄的報(bào)文數(shù)等等

[root@ecs-centos-7 ~]# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    272        2        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    272        2        0       0       0       0       
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether fa:16:3e:e0:4f:b8 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    47949      531      0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    50816      492      0       0       0       0       
[root@ecs-centos-7 ~]# 

想查看更詳細(xì)的信息可以使用 ip -s -s link命令, 這個(gè)在排除網(wǎng)絡(luò)故障時(shí)經(jīng)常用到

小結(jié)

本文介紹了ip命令的常見用法琳钉,更多的用法請(qǐng)使用 man ip命令查看

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末势木,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子歌懒,更是在濱河造成了極大的恐慌啦桌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異甫男,居然都是意外死亡且改,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門板驳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來又跛,“玉大人,你說我怎么就攤上這事若治】叮” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵端幼,是天一觀的道長(zhǎng)礼烈。 經(jīng)常有香客問我,道長(zhǎng)婆跑,這世上最難降的妖魔是什么此熬? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮洽蛀,結(jié)果婚禮上摹迷,老公的妹妹穿的比我還像新娘。我一直安慰自己郊供,他們只是感情好峡碉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著驮审,像睡著了一般鲫寄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疯淫,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天地来,我揣著相機(jī)與錄音,去河邊找鬼熙掺。 笑死未斑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的币绩。 我是一名探鬼主播蜡秽,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼缆镣!你這毒婦竟也來了芽突?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤董瞻,失蹤者是張志新(化名)和其女友劉穎寞蚌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挟秤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年壹哺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煞聪。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斗躏,死狀恐怖逝慧,靈堂內(nèi)的尸體忽然破棺而出昔脯,到底是詐尸還是另有隱情,我是刑警寧澤笛臣,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布云稚,位于F島的核電站,受9級(jí)特大地震影響沈堡,放射性物質(zhì)發(fā)生泄漏静陈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一诞丽、第九天 我趴在偏房一處隱蔽的房頂上張望鲸拥。 院中可真熱鬧,春花似錦僧免、人聲如沸刑赶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撞叨。三九已至,卻和暖如春浊洞,著一層夾襖步出監(jiān)牢的瞬間牵敷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工法希, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枷餐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓苫亦,卻偏偏與公主長(zhǎng)得像毛肋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子著觉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容