iproute2 工具集使用详解

目录
- 一、iproute2 核心命令:`ip`
- 二、常用功能详解
- 1. 管理网络接口(`link` 对象)
- 2. 管理 IP 地址(`address` 对象)
- 3. 管理路由表(`route` 对象)
- 4. 管理 ARP 和邻居缓存(`neigh` 对象)
- 5. 管理网络命名空间(`netns` 对象)
- 三、其他实用工具
- 四、与 `ifconfig` 的对比
- 五、配置持久化
- 六、常见问题
- 1. 如何安装 iproute2?
- 2. 接口名称变化(如 eth0 → enp0s3)?
- 七、总结
iproute2 是现代 Linux 系统中替代传统网络工具(如 ifconfig、route、arp)的集成工具集,功能更强大且设计更统一。以下是其核心命令 ip 的详细使用指南:
一、iproute2 核心命令:ip
基本语法:
ip [选项] 对象 {操作} [参数]
- 对象:
address(IP地址)、link(网络接口)、route(路由表)、neigh(ARP缓存)等。 - 操作:
show(查看)、add(添加)、del(删除)、set(设置)等。
二、常用功能详解
1. 管理网络接口(link 对象)
-
查看所有接口状态:
ip link show # 简写 ip l输出关键字段:
UP/DOWN:接口启用状态mtu:最大传输单元LOWER_UP:物理连接状态
-
启用/禁用接口:
sudo ip link set eth0 up # 启用 sudo ip link set eth0 down # 禁用 -
修改接口属性(如 MTU、MAC 地址):
sudo ip link set eth0 mtu 9000 # 设置 MTU sudo ip link set eth0 address 00:11:22:33:44:55 # 修改 MAC 地址
2. 管理 IP 地址(address 对象)
-
查看接口 IP 地址:
ip address show # 查看所有接口 ip addr show eth0 # 指定接口 # 简写 ip a -
添加/删除 IP 地址:
sudo ip addr add 192.168.1.100/24 dev eth0 # 添加 IPv4 sudo ip addr del 192.168.1.100/24 dev eth0 # 删除 IPv4 -
清空接口所有 IP 地址:
sudo ip addr flush dev eth0
3. 管理路由表(route 对象)
-
查看路由表:
ip route show # 简写 ip r -
添加/删除路由:
# 添加默认网关 sudo ip route add default via 192.168.1.1 dev eth0# 添加静态路由 sudo ip route add 10.0.0.0/24 via 192.168.1.2 dev eth0# 删除路由 sudo ip route del 10.0.0.0/24 -
策略路由(高级):
ip rule add from 192.168.1.100 lookup 100 # 根据源 IP 选择路由表 ip route add default via 10.0.0.1 table 100
4. 管理 ARP 和邻居缓存(neigh 对象)
-
查看 ARP 缓存:
ip neigh show -
添加/删除 ARP 条目:
sudo ip neigh add 192.168.1.2 lladdr 00:11:22:33:44:55 dev eth0 sudo ip neigh del 192.168.1.2 dev eth0
5. 管理网络命名空间(netns 对象)
-
创建/删除网络命名空间:
sudo ip netns add ns1 # 创建 sudo ip netns delete ns1 # 删除 -
在命名空间中执行命令:
sudo ip netns exec ns1 ip a # 查看 ns1 中的网络接口
三、其他实用工具
iproute2 工具集还包含以下命令:
ss:替代netstat,查看套接字统计。ss -tunlp # 查看所有 TCP/UDP 监听端口tc:流量控制(限速、优先级管理)。tc qdisc add dev eth0 root netem delay 100ms # 模拟 100ms 网络延迟bridge:管理网桥。bridge link show # 查看网桥接口
四、与 ifconfig 的对比
| 操作 | ifconfig | iproute2 |
|---|---|---|
| 查看接口状态 | ifconfig | ip link show |
| 设置 IP 地址 | ifconfig eth0 192.168.1.100 | ip addr add 192.168.1.100/24 dev eth0 |
| 查看路由表 | route -n | ip route show |
| 修改 MAC 地址 | ifconfig eth0 hw ether... | ip link set eth0 address... |
五、配置持久化
ip 命令的修改是临时的,需通过以下方式持久化:
- Debian/Ubuntu:编辑
/etc/network/interfaces。 - RHEL/CentOS:编辑
/etc/sysconfig/network-scripts/ifcfg-eth0。 - 通用方法:使用
NetworkManager或netplan(Ubuntu 18.04+)。
六、常见问题
1. 如何安装 iproute2?
大多数 Linux 系统已预装。若缺失:
sudo apt install iproute2 # Debian/Ubuntu
sudo yum install iproute # RHEL/CentOS
2. 接口名称变化(如 eth0 → enp0s3)?
这是由 systemd 的 Predictable Network Interface Names 导致,可通过以下方式禁用:
- 编辑
/etc/default/grub,添加net.ifnames=0。 - 运行
sudo update-grub并重启。
七、总结
- 优势:功能全面、语法统一、支持现代网络特性(如 VRF、网络命名空间)。
- 学习建议:
- 掌握常用对象:
link、addr、route。 - 使用
man ip或ip help查看详细文档。 - 逐步替换旧脚本中的
ifconfig/route命令。
- 掌握常用对象:
掌握 iproute2 是 Linux 网络管理的必备技能,尤其适用于容器化、虚拟化等复杂网络环境。
相关文章:
iproute2 工具集使用详解
目录 一、iproute2 核心命令:ip二、常用功能详解1. 管理网络接口(link 对象)2. 管理 IP 地址(address 对象)3. 管理路由表(route 对象)4. 管理 ARP 和邻居缓存(neigh 对象࿰…...
项目总结之常问的一些问题
1.项目功能介绍,重难点 重难点: mock工具使用(涉及到的三方接口过多,由于网络等原因无法调通,所以测试的时候,采用mock工具来模拟返回接口真正调用后响应数据) 2.项目负责哪部分?…...
C语言查漏补缺:占位符篇
占位符篇 1. 整数类型2. 字符类型3. 浮点数类型4. 指针类型5. 字符串6. 修饰符 1. 整数类型 %d / %i:用于 int(有符号十进制整数)。int num -42; printf("%d", num); // 输出: -42%u:用于 unsigned int(无…...
cut命令用法
cut 是 Linux/Unix 系统中一个用于按列提取文本内容的命令,常用于处理结构化文本(如 CSV、日志、配置文件等)。它通过分隔符、字符位置或字节位置来切割文本,提取指定部分。 核心功能 按字段(列)提取&#…...
java 正则表达式优化
1,什么是正则表达式 正则表达式使用一些特定的元字符来检索、匹配以及替换符合规则的字符串。 构造正则表达式语法的元字符,由普通字符、标准字符、限定字符(量词)、定位字符(边界字符)组成 普通字符 字母[…...
AD(Altium Designer)更换PCB文件的器件封装
一、确定是否拥有想换的器件PCB封装 1.1 打开现有的原理图 1.2 确定是否拥有想换的器件PCB文件 1.2.1 如果有 按照1.3进行切换器件PCB封装 1.2.2 如果没有 按照如下链接进行添加 AD(Altium Designer)已有封装库的基础上添加器件封装-CSDN博客https://blog.csdn.net/XU15…...
【文献研究】含硼钢中BN表面偏析对可镀性的影响
《B 添加钢的溶融 Zn めっき性に及ぼす BN 表面析出の影響》由JFE公司田原大輔等人撰写。研究聚焦 B 添加钢在低露点退火时 BN 形成对镀锌性的影响,对汽车用高强度钢镀锌工艺优化意义重大。通过多组对比实验,结合多种分析手段,明确了相关因素…...
React学习-css
W3Schools Tryit Editor CSS 教程 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: p { /* 这是个注释 */ color:red; text-align:center; }选择器 CSS Id: #para1{ text-align:center; color:red; } Class: .center {text-align:center;} p…...
AIP-215 API特定proto
编号215原文链接AIP-215: API-specific protos状态批准创建日期2018-10-01更新日期2018-10-01 API通常使用API特定proto定义,偶尔依赖通用组件。保持API相互隔离可以避免版本问题和客户端库打包问题。 指南 所有特定于某个API的protos 必须 位于带有主版本号的包…...
C++ 获取一整行(一行)字符串并转换为数字
代码很简单,主要是自己总是忘记,记录一下: #include <iostream> #include <cstdlib> #include <cstring>#include <string> #include <vector> #include <sstream>using namespace std;void print_int_…...
数据分析-Excel-学习笔记Day1
Day1 复现报表聚合函数:日期联动快速定位区域SUMIF函数SUMIFS函数环比、同比计算IFERROR函数混合引用单元格格式总结汇报 拿到一个Excel表格,首先要看这个表格的构成(包含了哪些数据),几行几列,每一列的名称…...
树莓派PICO 设备烧录成cmsis dap
文章目录 1. 实际操作2. IO连接 1. 实际操作 2. IO连接...
【数据结构】图的存储
目录 邻接矩阵 表示方法 代码定义 结构特点与度的信息 邻接表 表示方法 代码定义 结构特点与度的信息 十字链表 表示方法 第二步,将顶点x的firstIn域与所有headvex域为x的弧连起来。 结构特点与度的信息 邻接多重表 表示方法 结构特点与度的信息 图…...
如何解决uniapp打包安卓只出现功能栏而无数据的问题
如何解决uniapp打包安卓只出现功能栏而无数据的问题 经验来自:关于Vue3中调试APP触发异常:exception:white screen cause create instanceContext failed,check js stack -> at useStore (app-service.js:2309:15)解决方案 - 甲辰哥来帮你算命 - 博客…...
kotlin,数字滚动选择
用国内的通义灵码和codegeex都没有弄出来,最后只得用墙外的chatgpt才弄出一个满意的。kotlin真的有点难,好在有AI,让学习没这难了。 package com.example.mynumsetimport android.os.Bundle import androidx.activity.ComponentActivity imp…...
【4】搭建k8s集群系列(二进制部署)之安装master节点组件(kube-apiserver)
一、下载k8s二进制文件 下载地址: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG -1.20.md 注:打开链接你会发现里面有很多包,下载一个 server 包就够了,包含了 Master 和 Worker Node 二进制文件。…...
每日c/c++题 备战蓝桥杯(小球反弹)[镜像思路求解,最小公倍数]
思路: 错解:对于这道题而言,有的同学会选择用计算每次碰撞的坐标,直到坐标等于原点的方法来做,但这种方法实现起来比较繁琐,并且由于碰撞点的坐标有可能是浮点数,而浮点数会丢失精度࿰…...
新潮透明液体水珠水滴失真故障扭曲折射特效海报字体标题设计ps样机动作素材 Bubble Photoshop Templates
只需单击几下即可创建引人注目的视觉效果!您需要做的就是将您的文本或图像放入智能对象中并应用作。 包中包含: 15 个静态 Photoshop 模板(PS 2019 及更高版本) 01-05 垂直布局 (22504000)06-10 水平布局…...
谷歌洽谈租赁英伟达AI服务器:算力争夺战再升级
近日,全球科技巨头谷歌被曝正与英伟达(NVIDIA)洽谈租赁AI服务器,这一动态引发了行业广泛关注。若合作达成,谷歌将借助英伟达的高性能GPU进一步强化其AI算力储备,同时也折射出当前AI竞赛中算力资源的战略重要…...
从零开始玩python--python版植物大战僵尸来袭
大家好呀,小伙伴们!今天要给大家介绍一个超有趣的Python项目 - 用pygame制作植物大战僵尸游戏的进阶版本。相信不少小伙伴都玩过这款经典游戏,今天我们就用Python来实现它,让编程学习变得更加有趣!🌟 一、…...
深入理解MySQL:核心特性、优化与实践指南
MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,目前属于Oracle公司。它是目前世界上最流行的开源数据库之一,广泛应用于各种规模的Web应用和企业系统中。 目录 一、核心特点 关系型数据库: 开源免费&am…...
Visual Studio Code SSH 连接超时对策( keep SSH alive)
文章目录 问题解决方法一:配置服务端关于ClientAliveInterval和ClientAliveCountMax1、打开终端,打开SSH配置文件:输入以下命令:2、打开配置文件后,添加以下内容:3、添加后,Esc按 <Enter>…...
【C语言入门】由浅入深学习指针 【第二期】
目录 1. 指针变量为什么要有类型? 2. 野指针 2.1 未初始化导致的野指针 2.2 指针越界导致的野指针 2.3 如何规避野指针 3. 指针运算 3.1 指针加减整数 3.2 指针减指针 3.3 指针的关系运算 4. 二级指针 5. 指针数组 5.1 如何使用指针数组模拟二维数组 上…...
关于Ubuntu系统的远程控制及文件传输
目录 1. 网络配置1.1 虚拟机Ubuntu网络配置1.2树莓派网络配置 2. 远程终端登录3. FTP文件传输4. 安装Xming和PuTTY5. 使用X11转发6. 安装和使用VNC思考题解答参考资料 1. 网络配置 1.1 虚拟机Ubuntu网络配置 将虚拟机的网络连接设置为“桥接模式”,这样虚拟机的网…...
IS-IS-单区域的配置
一、IS-IS的概念 IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是一种链路状态路由协议,最初设计用于OSI(Open Systems Interconnection)参考模型的网络层(CL…...
Flask使用MySQL数据库通过Flask-SQLAlchemy 迁移数据库,实际更新文件,但是提示没有检测到数据更新。
本地写了一个model的用户类,数据库连接信息正确,执行下面2条命令进行数据库迁移。 flask db migrate 生成迁移文件 flask db upgrade 执行迁移文件的升级 发现执行完后:提示没有检测到数据的更新 PS C:\Users\mu> flask db migrate IN…...
React DndKit 实现类似slack 类别、频道拖动调整位置功能
一周调试终于实现了类 slack 类别、频道拖动调整位置功能。 历经四个版本迭代。 实现了类似slack 类别、频道拖动调整功能 从vue->react ;更喜欢React的生态及编程风格,新项目用React来重构了。 1.zustand全局状态 2.DndKit 拖动 功能视频&…...
OpenCV 图形API(14)用于执行矩阵(或图像)与一个标量值的逐元素乘法操作函数mulC()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 描述 将矩阵与标量相乘。 mulC 函数将给定矩阵 src 的每个元素乘以一个给定的标量值: dst ( I ) saturate ( src1 ( I ) ⋅ multiplier ) \…...
flutter provider状态管理使用
在 Flutter 中,Provider 是一个轻量级且易于使用的状态管理工具,它基于 InheritedWidget,并提供了一种高效的方式来管理和共享应用中的状态。相比其他复杂的状态管理方案(如 Bloc 或 Riverpod),Provider 更…...
1. 标准库的强依赖(核心原因)
1. 标准库的强依赖(核心原因) 容器操作(如 std::vector 扩容) 当标准库容器(如 std::vector)需要重新分配内存时,它会尝试移动现有元素到新内存,而非拷贝(为了性能&…...
