[网络] iproute工具包:Linux核心网络工具

ChatGPT生成(2025年10月26日00:17:30)
修订时间:2025年10月26日18:16:23

🧰 iproute2 工具包详解

📘 一、概述

什么是 iproute2

iproute2 是 Linux 下用于网络配置和管理的一组命令行工具包,是早期 net-tools(如 ifconfig, route, netstat)的现代替代品。

功能分类 旧工具 (net-tools) 新工具 (iproute2) 功能说明
网络接口管理 ifconfig ip addr, ip link 查看/配置网络接口与IP地址
路由管理 route ip route 管理路由表,配置网关和转发规则
ARP 表管理 arp ip neigh 管理邻居表(ARP/NDP)
Socket 信息 netstat ss 显示网络连接、监听端口和统计信息
流量控制与QoS tc(同名) tc 流量整形、带宽限制、QoS 策略配置
网桥管理 brctl bridge 管理以太网桥接与虚拟交换机
VLAN 管理 (无专用命令) ip link add link eth0 name eth0.10 type vlan id 10 创建与管理 VLAN 接口
隧道与虚拟接口 (无专用命令) ip tunnel, ip link 创建 GRE/IPIP/VXLAN 等隧道接口
驱动级设备管理 (无对应) devlink 管理底层网络驱动与硬件资源
网络命名空间管理 (无对应) ip netns 管理 Linux 网络命名空间
规则与策略路由 (无对应) ip rule, ip route 定义多策略路由与优先级规则

✅ 总结

  • iproute2 是现代 Linux 网络的标准工具集,几乎完全取代了早期的 net-tools

  • 常用核心命令包括:

    • ip:接口、地址、路由、邻居等全能网络命令
    • ss:Socket 状态与统计信息
    • tc:流量控制和 QoS 管理
    • bridge:网桥与虚拟交换管理
    • devlink:驱动级设备控制
  • 建议逐步用 iproute2 替代旧命令,保证脚本与系统兼容性。


🧩 二、iproute2 包含的主要工具

1️⃣ ip —— 核心工具(接口、地址、路由、邻居)

ip 是最常用的命令,用来管理网络接口、路由、IP 地址、邻居(ARP/NDP)等。

常用子命令分类

功能 命令示例 说明
网络接口 ip link show 查看接口
IP 地址 ip addr add 192.168.1.10/24 dev eth0 添加IP
路由表 ip route show 查看路由
邻居表 ip neigh show 查看 ARP 表
状态控制 ip link set eth0 up 启动接口

常见示例

# 查看所有网卡
ip addr show

# 给 eth0 添加一个IP地址
ip addr add 192.168.1.100/24 dev eth0

# 删除IP
ip addr del 192.168.1.100/24 dev eth0

# 添加静态路由
ip route add 10.0.0.0/8 via 192.168.1.1

# 查看ARP缓存
ip neigh

💡 提示:
ip 命令功能非常丰富,可以统一替代 ifconfigroutearp 等老旧命令。


2️⃣ ss —— Socket 状态统计(Socket Statistics)

ssnetstat 的替代工具,用来查看系统当前的网络连接和监听状态。

常用示例

# 查看所有TCP连接
ss -t

# 查看监听端口
ss -lnt

# 查看UDP连接
ss -u

# 查看哪个进程占用了端口
ss -lntp

# 查看连接统计信息
ss -s

典型输出说明

列名 含义
State 连接状态(LISTEN, ESTAB, TIME-WAIT等)
Recv-Q / Send-Q 接收/发送队列长度
Local Address 本地地址
Peer Address 远程地址
PID/Program name 占用该连接的进程

💡 用途

  • 调试 TCP 连接
  • 分析端口占用
  • 网络性能监控

3️⃣ tc —— 流量控制(Traffic Control)

tc 是 Linux 流量控制框架的命令工具,用于:

  • 流量整形(限速、优先级)
  • 队列管理(QoS)
  • 网络模拟(延迟、丢包)

常用示例

# 查看网卡队列状态
tc qdisc show dev eth0

# 限制 eth0 出口速率为 1Mbit/s
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms

# 删除流控规则
tc qdisc del dev eth0 root

💡 用途:

  • 模拟网络延迟或丢包(用于测试)
  • 做带宽限速或优先级管理(QoS)
  • 网络性能调优

4️⃣ bridge —— 网桥管理工具

bridge 是 Linux 内核的桥接子系统管理工具,用来配置:

  • 网桥(Bridge)
  • 端口(Ports)
  • FDB 表(转发表)

常用示例

# 查看所有网桥
bridge link show

# 创建网桥 br0
ip link add name br0 type bridge

# 把接口 eth0 加入 br0
ip link set eth0 master br0

# 启动网桥
ip link set br0 up

# 查看网桥转发表
bridge fdb show

💡 用途:

  • 虚拟机网络桥接(如 KVM、Docker)
  • 软件交换机(类似二层交换机)
  • VLAN 管理

devlink 是高级网络设备管理工具,主要用于:

  • 驱动级参数配置
  • 设备固件更新
  • 端口与链路属性管理

主要用于高端网卡(如 Mellanox、Intel 网卡)。

常用示例

# 查看设备列表
devlink dev show

# 查看端口信息
devlink port show

# 查看驱动信息
devlink health show

💡 用途:

  • 高性能网络设备调试
  • 驱动层管理(SR-IOV、DPDK 环境)

⚙️ 三、iproute2 安装与版本查看

大多数 Linux 发行版默认已安装。

# Debian/Ubuntu
sudo apt install iproute2

# CentOS/RHEL
sudo yum install iproute

# 查看版本
ip -V

🔍 四、iproute2 的结构与命令组织逻辑

iproute2 的命令风格遵循统一格式:

ip [对象] [操作] [参数...]

例如:

命令 含义
ip addr show 查看地址
ip link set eth0 up 启动网卡
ip route add ... 添加路由
ip neigh flush all 清除邻居表

这种结构化的语法让命令易于记忆和组合,非常适合脚本自动化。


📈 五、iproute2 在实际中的作用

场景 工具 作用
设置 IP 和路由 ip 网络基础配置
检查连接状态 ss 代替 netstat
模拟网络性能 tc 延迟/丢包测试
桥接虚拟机接口 bridge 软件交换机
调试网卡驱动 devlink 驱动管理

📚 六、推荐参考资料

posted on 2025-10-26 18:16  风惊庭前叶  阅读(15)  评论(0)    收藏  举报