【Linux】ip命令详解

Linux网络排查

目录

一、ip命令介绍

[1.1 ip命令简介](#1.1 ip命令简介)

[1.2 ip命令的由来](#1.2 ip命令的由来)

二、ip命令使用帮助

[2.1 ip命令的help帮助信息](#2.1 ip命令的help帮助信息)

[2.2 ip命令对象介绍](#2.2 ip命令对象介绍)

[2.3 ip命令选项介绍](#2.3 ip命令选项介绍)

三、查看网络信息

[3.1 显示当前网络接口信息](#3.1 显示当前网络接口信息)

[3.2 显示网络设备运行状态](#3.2 显示网络设备运行状态)

[3.3 显示详细设备信息](#3.3 显示详细设备信息)

[3.4 查看路由表](#3.4 查看路由表)

[3.5 查看ARP缓存](#3.5 查看ARP缓存)

[3.6 正则匹配截取信息](#3.6 正则匹配截取信息)

四、设置网卡IP地址

[4.1 启用或停止网卡](#4.1 启用或停止网卡)

[4.2 新增网卡地址](#4.2 新增网卡地址)

[4.3 设置默认网关](#4.3 设置默认网关)

[4.4 删除新增网卡的IP地址](#4.4 删除新增网卡的IP地址)

[4.5 删除默认网关](#4.5 删除默认网关)

五、管理路由表

[5.1 新增路由表](#5.1 新增路由表)

[5.2 删除路由表条目](#5.2 删除路由表条目)

[5.3 永久设置静态路由方法](#5.3 永久设置静态路由方法)

六、ip命令总结


一、ip命令介绍


1.1 ip命令简介

IP命令是一个非常强大的命令行工具,用于管理与配置网络接口和路由表。

1.2 ip命令的由来

IP命令的由来可以追溯到Unix操作系统,IP命令是一个网络工具,用于配置和管理网络接口和路由表。它是从早期的Unix系统中的ifconfig命令发展而来的。ifconfig命令可以用于配置和管理网络接口,但是它的功能有限,不能管理路由表,因此IP命令应运而生。随着网络技术的不断发展,IP命令也不断进行更新和扩展,成为了一个功能强大的网络工具。现在,在许多Linux和Unix系统中,IP命令已经取代了ifconfig命令,成为管理网络接口和路由表的主要工具。


二、ip命令使用帮助


2.1 ip命令的help帮助信息


2.2 ip命令对象介绍


where  OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
                   tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
                   netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
                   vrf }

对象参数释义:

|-----------|-----------------------|
| 对象 | 释义 |
| link | 网络设备 |
| address | 设备的协议地址(IP或IPv6) |
| addrlabel | 用于协议地址选择的标签配置 |
| route | 路由表项 |
| rule | 路由策略数据库中的规则 |
| neighbour | 管理ARP或NDISC缓存项 |
| ntable | 管理邻居cache的操作 |
| tunnel | IP隧道 |
| tuntap | 管理TUN/TAP设备 |
| maddress | 多播地址 |
| mroute | 组播路由缓存项 |
| mrule | 组播路由策略数据库中的规则 |
| monitor | 监控netlink消息 |
| xfrm | 管理IPSec策略 |
| l2tp | 隧道以太网over IP (L2TPv3) |

2.3 ip命令选项介绍


cs 复制代码
       OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
                    -h[uman-readable] | -iec |
                    -f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
                    -4 | -6 | -I | -D | -B | -0 |
                    -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
                    -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
                    -rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}



-V:显示指令版本信息;
-s:输出更详细的信息;
d: 输出更详细的信息
-r:使用系统的名称解析器来打印DNS名称而不是主机地址
-h:输出带有人类可读值的统计信息,后面跟着后缀
-f:强制使用指定的协议族;
-4:指定使用的网络层协议是IPv4协议;
-6:指定使用的网络层协议是IPv6协议;
-0:输出信息每条记录输出一行,即使内容较多也不换行显示;
-l: 指定"ip地址刷新"逻辑在放弃之前尝试的最大循环次数。默认值是10。零(0)表示循环,直到移除所有地址
-b: 从提供的文件或标准输入中读取命令并调用它们。第一次失败将导致ip终止
-o: 在单行上输出每个记录,用'\'字符替换换行。这在你需要的时候很方便以wc(1)或grep(1)计数输出记录
-rc: 设置netlink套接字接收缓冲区大小,默认为1MB
-n: 将ip切换到指定的网络命名空间NETNS

三、查看网络信息


3.1 显示当前网络接口信息


ip addr show 
#简写 
ip a

3.2 显示网络设备运行状态


使用以下命令,显示网络设备运行状态。
 ip link list

3.3 显示详细设备信息


ip -stats  link  list
# 简写
ip -s  l  l

3.4 查看路由表


ip route show 
ip route list

3.5 查看ARP缓存


ip neighbour show
ip neighbour list

3.5 正则匹配截取信息


cs 复制代码
# 获取主机所有网络接口
ip link | grep -E '^[0-9]' | awk -F: '{print $2}'

# 提取本地IP地址
ip addr show | grep 'inet ' | awk '{print $2}' | awk -F/ '{print $1}'

四、设置网卡IP地址


4.1 启用或停止网卡


使用以下命令,启用或停止网卡。

ip link set <interface> up/down

4.2 新增网卡地址


使用以下命令,给ens192网卡,新增ip地址。

ip link add link ens192 br0 type vlan id 2
  • "ip link add link":添加一个新的网络接口;
  • "ens192":指定要添加网络接口的物理接口;
  • "br0":新添加的网络接口名称;
  • "type vlan":指定创建一个VLAN类型的网络接口;
  • "id 2":VLAN ID为 2;

接下来,我们可以配置新添加的网络接口,可以为该接口指定IP地址、子网掩码等等。

ip addr add 192.168.2.19/24  broadcast 192.168.2.255 dev br0

ip addr del 192.168.2.19/24  broadcast 192.168.2.255 dev br0
  • "ip addr add":为指定设备添加IP地址
  • "192.168.2.99/24":指定IP地址和
  • "dev br0":指定为哪个网络接口添加IP地址

ip link 是 Linux 系统中的一个命令,用于显示或操纵网络接口的链路层属性。链路层也被称为第二层,在这个层级上,数据被封装成帧(frame)进行发送和接收。

基本用法:ip link 的基本用法可以分为两类,查看和设置。

查看网络接口信息:你可以直接输入 ip link 或者 ip link show 来查看系统中所有网络接口的链路层信息。

设置网络接口属性:ip link set 命令可以用于更改网络接口的链路层属性,如改变接口状态(up/down)、改变接口的 MTU 值等。

应用场景:

当你需要查看系统中的网络接口信息,如接口名称、接口状态(UP 或 DOWN)、MTU(Maximum Transmission Unit,最大传输单元)值,MAC 地址等信息时,可以使用 ip link 命令。

当你需要更改网络接口的链路层属性,如开启或关闭一个网络接口(up/down)、改变接口的 MTU 值、改变接口的 MAC 地址等,也可以使用 ip link 命令。

你也可以使用 ip link 命令来创建或删除虚拟网络接口,如虚拟网桥、虚拟以太网设备(veth)、虚拟隧道等。

因为它涉及到底层的网络设置,所以在使用时需要谨慎,特别是在生产环境中。当你对某个设定不确定时,最好先在测试环境中试验,确认无误后再应用到生产环境中。

4.3 设置默认网关


使用以下命令设置默认网卡地址,<gateway_ip>为网关地址,为网络接口。

ip route add default via <gateway_ip> dev <interface>
# 删除
ip route del default via <gateway_ip> dev <interface>

4.4 删除新增网卡的IP地址


使用以下命令,删除新增网卡IP地址。

ip addr del 192.168.2.19/24  broadcast 192.168.2.255 dev br0

4.5 删除默认网关


使用以下命令,删除默认网关。

 ip route del default

五、管理路由表


5.1 新增路由表

使用以下命令,新增路由表。

ip route add 192.168.80.0/24 via 192.168.2.254  dev br0 

查看路由表信息:

5.2 删除路由表条目


使用以下命令,删除路由表条目。

ip route del 192.168.80.0/24 via 192.168.2.254  dev br0 

5.3 永久设置静态路由方法


进入网卡目录中,在网卡配置文件中,新建及编辑文件 route-ens192

cd /etc/sysconfig/network-scripts/

vim route-eth0

172.16.10.0/24 via 192.168.3.254

重启network服务

service network restart 

查看路由表

ip route

六、ip命令总结


cs 复制代码
1. ip命令是Linux下管理网络接口的主要工具之一,可以用于设置IP地址、路由表、网络接口等。

2. ip命令的常见操作包括查看网络接口信息、设置IP地址、设置网络接口等。

3. 查看网络接口信息的操作:
    - ip addr:显示所有网络接口的详细信息,包括接口名称、MAC地址、IPv4地址、IPv6地址等。
    - ip link:显示所有网络接口的名称和状态信息。

4. 设置IP地址的操作:
    - ip addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IP地址。
    - ip addr del IP地址/掩码 dev 网络接口名:删除指定网络接口的IP地址。
    - ip -4 addr add IP地址/掩码 dev 网络接口名:给指定网络接口添加IPv4地址。
    - ip -6 addr add IPv6地址/掩码 dev 网络接口名:给指定网络接口添加IPv6地址。

5. 设置网络接口的操作:
    - ip link set 网络接口名 up/down:设置指定网络接口的状态为up或down。
    - ip link set 网络接口名 name 新名称:给指定网络接口修改名称。
    - ip link set 网络接口名 mtu MTU值:设置指定网络接口的最大传输单元大小。
    - ip route add 目标地址/掩码 via 网关 dev 网络接口名:添加路由规则,指定目标地址走指定的网关。

6. 其他常用操作:
    - ip neigh:显示ARP缓存表。
    - ip route:显示和管理路由表。
    - ip rule:显示和管理路由策略。

参考:

原文链接:Linux系统之ip命令的基本使用_linux ip-CSDN博客

相关推荐
极客小张4 分钟前
基于正点原子Linux开发板的智能监控与家电控制系统设计:深度解析Video4Linux和TCP/IP技术栈
linux·运维·c++·物联网·网络协议·tcp/ip·算法
sunxunyong5 分钟前
Linux 删除文件不释放空间问题处理
大数据·linux·运维·服务器
只对您心动1 小时前
【C高级】有关shell脚本的一些练习
linux·c语言·shell·脚本
lldhsds1 小时前
linux下的分布式Minio部署实践
linux·minio·分布式对象存储
OH五星上将2 小时前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】上
linux·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核
DC_BLOG3 小时前
IPv6(四)
运维·服务器·网络·ip
沈艺强3 小时前
伊犁linux 创建yum 源过程
linux·运维·服务器
拾光师3 小时前
linux命令行快捷键
linux·运维·服务器
Dola_Pan5 小时前
Linux文件IO(二)-文件操作使用详解
java·linux·服务器
wang_book5 小时前
Gitlab学习(007 gitlab项目操作)
java·运维·git·学习·spring·gitlab