Linux 解析 ip 的各種命令

IP命令完全可以取代ifconfig命令 甚至更強

ip常用命令格式如下:

ip [ OPTIONS ] OBJECT { COMMAND | help }
對象OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }

選項OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }

常用對象的取值含義如下:

  • link:網絡設備
  • address:設備上的協議(IP或IPv6)地址
  • addrlabel:協議地址選擇的標籤配置
  • route:路由表條目
  • rule:路由策略數據庫中的規則

常用選項的取值含義如下:

  • -V,-Version:顯示指令版本信息
  • -s,-stats,statistics:輸出詳細信息
  • -h,-human,-human-readable:輸出人類可讀的統計信息和後綴
  • -o,-oneline:將每條記錄輸出到一行,用‘\’字符替換換行符

1.檢查網卡信息

  • 命令:ip addr show
    說明:顯示網卡及配置的地址信息
    輸出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1e:4f:c8:43:fc brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.24/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever 

輸出內容詳解:
首先這個系統有兩個接口:lo和eth0,lo是環回接口,而我們重點關注的則是eth0這個普通網絡接口;下面在看看每個子項的含義:

<BROADCAST,MULTICAST,UP,LOWER_UP>:BROADCAST表示該接口支持廣播;MULTICAST表示該接口支持多播;UP表示該網絡接口已啓用;LOWER_UP表示網絡電纜已插入,設備已連接至網絡
mtu 1500:最大傳輸單位(數據包大小)爲1,500字節
qdisc pfifo_fast:用於數據包排隊
state UP:網絡接口已啓用
qlen 1000:傳輸隊列長度
link/ether 00:1e:4f:c8:43:fc:接口的MAC(硬件)地址
brd ff:ff:ff:ff:ff:ff:廣播地址
inet 192.168.0.24/24:IPv4地址
brd 192.168.0.255:廣播地址
scope global:全局有效
dynamic enp0s25:地址是動態分配的
valid_lft forever:IPv4地址的有效使用期限
preferred_lft forever:IPv4地址的首選生存期
inet6 fe80::2c8e:1de0:a862:14fd/64:IPv6地址
scope link:僅在此設備上有效
valid_lft forever:IPv6地址的有效使用期限
preferred_lft forever:IPv6地址的首選生存期

1.1 IP管理

命令:ip addr add 192.168.0.123/24 dev eth0
說明:設置IP
命令:ip add del 192.168.0.123/24 dev eth0
說明:刪除配置的IP

1.2禁啓用網卡

命令:ip link set eth0 up
說明:啓用被禁用的網卡

命令:ip link set eth0 down
說明:禁用網卡

1.3 路由配置

命令:ip route show
說明:查看路由信息
輸出:

default via 172.17.175.253 dev eth0 
169.254.0.0/16 dev eth0 scope link metric 1002 
172.17.160.0/20 dev eth0 proto kernel scope link src 172.17.169.20 

輸出內容詳解:

  • 輸出內容第一條是默認的路由,我們可以根據我們的需要改動它
  • metric 1002:跳躍計數,確定網關的優先級,默認20,數值越小優先級越高
  • proto kernel:該路由的協議,主要有redirect,kernel,boot,static,ra等,其中kernel指的是直接由核心判斷自動設定
命令:ip route get 119.75.216.20
說明:通過IP地址查詢路由包從哪條路由來
命令:ip route add default via 192.168.0.150/24
說明:所有的網絡數據包都通過192.168.0.150來轉發,而不是以前的默認路由

命令:ip route add 172.16.32.32 via 192.168.0.150/24 dev enp0s3
說明:修改特定網卡的默認路由

命令:ip route del 172.17.160.0/20
說明:刪除路由

命令:ip route flush cache
說明:刷新路由表

2.在Linux上 ip a

在這裏插入圖片描述

這個系統上的多個接口 - 環回(lo)和網絡(eth0 1 2 3)——顯示了很多統計數據。 lo 接口顯然是環回地址loolback。 我們可以在列表中看到環回 IPv4 地址(127.0.0.1)和環回 IPv6(::1)。
ip 信息的其餘部分的翻譯:

mtu 1500                                    最大傳輸單位(數據包大小)爲1,500字節
qdisc pfifo_fast                            用於數據包排隊
state UP                                    網絡接口已啓用
group default                               接口組
qlen 1000                                   傳輸隊列長度
link/ether 00:1e:4f:c8:43:fc                接口的 MAC(硬件)地址
brd ff:ff:ff:ff:ff:ff                       廣播地址
inet 192.168.1.10/24                        IPv4 地址
brd 192.168.0.255                           廣播地址
scope global                                全局有效
dynamic enp0s25                             地址是動態分配的
valid_lft 80866sec                          IPv4 地址的有效使用期限
preferred_lft 80866sec                      IPv4 地址的首選生存期
inet6 fe80::2c8e:1de0:a862:14fd/64          IPv6 地址
scope link                                  僅在此設備上有效
valid_lft forever                           IPv6 地址的有效使用期限
preferred_lft forever                       IPv6 地址的首選生存期

3. ifconfig 相關 - 顯示網絡統計數據

  • 命令:ip -s link
    說明:顯示所有網絡接口的統計數據
  • 命令:ip -s -s link ls eth0 &&&& ip -s link show eth0

說明:獲取一個特定網絡接口的信息;在網絡接口名字後面添加選項ls即可。使用多個選項-s會輸出指定接口詳細的信息;特別是在排除網絡連接故障時,這會非常有用。

ifconfig 命令提供的一些信息未包含在 ip a 命令的輸出中 —— 例如傳輸數據包的統計信息。 如果您想查看發送和接收的數據包數量以及衝突數量的列表,可以使用以下 ip 命令:在這裏插入圖片描述

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    361849729592 174114258 0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    361849729592 174114258 0       0       0       0       
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:16:3e:08:08:55 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    32345193376 115901261 0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    139742200499 114451909 0       0       0       0 

輸出重點內容詳解:

RX:表示接收
TX:表示發送
bytes:接收/發送的字節數
packets:接收/發送的包數
errors:接收/發送的帶有錯誤的包總數
dropped:由於處理資源不足導致接收/發送的丟棄的包數
overrun:因接收溢出(環形緩衝區)導致丟失的包;通常如果接口溢出,則表示內核中存在嚴重問題,或者說服務器上該網絡設備的處理設備太慢
mcast:接收到的多播包數
carrier:因數據鏈路錯誤導致發送失敗的包數
collsns:因在網絡上發送衝突而導致的失敗數

拓展:修改網卡信息

修改配置文件 /etc/sysconfig/network-scripts/ 目錄下的網卡同名文件

在這裏插入圖片描述

DEVICE=eth0 #指出設備名稱
NM_CONTROLLED=yes #network mamager的參數,實時生效,不需要重啓
ONBOOT=yes #設置爲yes,開機自動啓用網絡連接
IPADDR=192.168.21.129 #IP地址
BOOTPROTO=none #設置爲none禁止DHCP,設置爲static啓用靜態IP地址,設置爲dhcp開啓DHCP服務
NETMASK=255.255.255.0 #子網掩碼
DNS1=8.8.8.8 #第一個dns服務器
TYPE=Ethernet #網絡類型爲:Ethernet
GATEWAY=192.168.21.2 #設置網關
DNS2=8.8.4.4 #第二個dns服務器
IPV6INIT=no #禁止IPV6
USERCTL=no #是否允許非root用戶控制該設備,設置爲no,只能用root用戶更改
HWADDR=00:0C:29:2C:E1:0F #網卡的Mac地址
PREFIX=24
NAME=”System eth0″ #定義設備名稱

實例:

TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.9.129
NETMASK=255.255.255.0
GATEWAY=192.168.21.2
DNS1=8.8.8.8
DNS2=114.114.114.114

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章