中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux 中怎么使用 IP 命令

發布時間:2021-07-21 11:42:24 來源:億速云 閱讀:164 作者:chen 欄目:系統運維

本篇內容主要講解“Linux 中怎么使用 IP 命令”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Linux 中怎么使用 IP 命令”吧!

老版本的 Linux 中都是使用 ifconfig 命令檢查和配置網絡接口,但是該命令目前已經沒有維護了,取而代之的是 ip 命令

ip 命令和 ifconfig 命令很相似,但是 相比起來,ip命令的功能更強大,它能執行多種 ifconfig 命令無法執行的任務

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

顯示所有網絡接口信息

輸入 ip addr 或者 ip a 命令可以顯示所有的網絡接口信息

[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 ~]#

上面的輸出中,可以看出系統目前的網絡接口分別是 lo 和 eth0, 前者是網絡環回接口,后者是常規的網絡接口

輸出接口信息的 字段詳解

<BROADCAST,MULTICAST,UP,LOWER_UP>: BROADCAST 表示支持廣播, MULTICAST 表示支持多播  UP 網絡接口處于開啟狀態  LOWER_UP 表示網絡電纜已插入并且已連上網絡  mtu 1500: 最大傳輸的單位1500字節  qdisc pfifo_fast: 數據包排隊  state UP: 接口狀態已開啟  qlen 1000: 傳輸隊列長度  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: 動態分配地址  valid_lft 74409sec: IPV4有效期  preferred_lft 74409sec: IPV4首選生存期  inet6 fe80::f816:3eff:fee0:4fb8/64  IPV6  scope link: 僅在此接口上生效

除了輸出所有的網絡接口信息外,還可以按照以下方式個性化輸出網絡接口信息

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

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

同樣,命令 ip -6 a 會輸出只支持IPV6的接口信息

  • 按照接口名字輸出

命令 ip a show eth0會輸出 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
  • 按照網絡接口開啟和關閉狀態輸出

命令 ip link ls up 會輸出所有處于開啟狀態的網絡接口信息

那么,ip link ls down就會輸出所有處于關閉狀態的網絡接口信息

為網絡接口 添加、移除 IP地址

  • 添加IP

為指定網絡接口分配IP地址的命令格式: ip a add ip地址 dev 接口名字

比如:現在要為eth0 網絡接口分配一個網絡掩碼為 20 的IP 192.168.1.10, 具體的輸入請看下面的實例

[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

從上面例子的輸出結果可以看出,網絡接口eth0上多了一個192.168.1.10的 IP

命令 ip a add 192.168.1.10/20 dev eth0 執行成功的話,是沒有任何輸出,如果網絡接口 eth0 不存在的話,會輸出  Cannot find device "eth0" 的錯誤信息

其實,還可以通過執行 ping 192.168.1.10 命令來測試網絡接口上IP是否分配成功,如果能 ping  通IP的話,表示分配成功,否則表示失敗

說明:192.168.1.10/20 中 20 是 CIDR 表示法的網絡掩碼,想詳細了解的可以自行查閱網絡掩碼的資料

  • 移除IP

網絡接口上添加了IP之后,可使用 ip a del ip地址 dev 接口名字 命令從指定的接口移除指定的IP,移除的時候IP后面需要攜帶網絡掩碼

[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

修改網絡接口狀態

要關閉或者開啟網絡接口,可以使用 ip link set dev 接口名字 up/down 命令

例如:有 lo 和 eth0 兩個網絡接口, 具體接口信息如下

[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 命令測試,結果表明 lo 接口目前是開啟狀態,具體的測試輸出如下所示

[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

現在關閉 lo 網絡接口,并再次測試該接口的狀態,具體命令如下:

[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

執行 ip link set dev lo down 命令之后,關閉了網絡接口lo,通過 ip link show lo  命令查看該接口的信息,結果表明接口是關閉狀態,再次通過 ping -w 3 127.0.0.1測試接口的狀態,再一次確認了接口是關閉狀態

修改網絡接口傳輸隊列長度

通過 p l set txqueuelen 長度 dev 接口名字 命令可以設置網絡接口的傳輸隊列長度

[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

上面的例子中,字符串 qlen 1200 表示傳輸隊列長度是 1200

從例子中可以看出,修改傳輸隊列長度之前,傳輸隊列長度是 1200

執行 ip l set txqueuelen 1000 dev eth0 命令把傳輸隊列長隊修改為 1000, 然后再執行 ip l show eth0  命令查詢 eth0網絡接口的信息,查詢結果中 default qlen 1000 說明修改成功

修改網絡接口的MTU(最大傳輸單元)

通過 p l set mtu 長度 dev 接口名字 命令可以設置網絡接口的最大傳輸單元

[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

上面的例子中,字符串 mtu 1600 表示最大傳輸單元是 1600

從例子中可以看出,修改傳輸隊列長度之前,最大傳輸單元是 1600

執行 ip l set set mtu 1500 dev eth0 命令把最大傳輸單元修改為 1500, 然后再執行 ip l show eth0  命令查詢 eth0網絡接口的信息,查詢結果中 mtu 1500 說明修改成功

查看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以及網絡掩碼的路由表

[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 的縮寫,  全稱是地址解析協議,它是用于實現從IP地址到Mac地址的映射,也就是詢問目標IP的Mac地址

在本地存儲了一份IP對應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

更改網卡Mac地址

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

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

下面以修改 lo 網絡接口的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

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

注意:如果當前網絡接口上執行上面的命令,當前會話會中斷,需要重啟機器才能恢復,所以最好是在其他的網絡接口上測試

查看網絡統計信息

通過 ip -s link 命令可以查看網絡接口上的一些統計數據,比如接口上傳輸的字節數、報文數,錯誤或者丟棄的報文數等等

[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 ~]#

想查看更詳細的信息可以使用 ip -s -s link 命令, 這個在排除網絡故障時經常用到

小結

本文介紹了ip命令的常見用法,更多的用法請使用 man ip命令查看

到此,相信大家對“Linux 中怎么使用 IP 命令”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建阳市| 邵阳县| 台江县| 云和县| 儋州市| 虞城县| 抚远县| 黄冈市| 阳春市| 金溪县| 调兵山市| 定陶县| 无为县| 勐海县| 新巴尔虎右旗| 新干县| 富源县| 图们市| 南郑县| 常州市| 华安县| 濮阳县| 宁远县| 元朗区| 台东县| 垣曲县| 洪泽县| 望奎县| 太谷县| 铜陵市| 乌兰浩特市| 彰武县| 天镇县| 班戈县| 阳西县| 奈曼旗| 津南区| 赤城县| 汕尾市| 黑山县| 宁明县|