iproute2 工具集使用详解

在这里插入图片描述

iproute2 是现代 Linux 系统中替代传统网络工具(如 ifconfigroutearp)的集成工具集,功能更强大且设计更统一。以下是其核心命令 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 命令的修改是临时的,需通过以下方式持久化:

  1. Debian/Ubuntu:编辑 /etc/network/interfaces
  2. RHEL/CentOS:编辑 /etc/sysconfig/network-scripts/ifcfg-eth0
  3. 通用方法:使用 NetworkManagernetplan(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 导致,可通过以下方式禁用:

  1. 编辑 /etc/default/grub,添加 net.ifnames=0
  2. 运行 sudo update-grub 并重启。

七、总结

  • 优势:功能全面、语法统一、支持现代网络特性(如 VRF、网络命名空间)。
  • 学习建议
    • 掌握常用对象:linkaddrroute
    • 使用 man ipip help 查看详细文档。
    • 逐步替换旧脚本中的 ifconfig/route 命令。

掌握 iproute2 是 Linux 网络管理的必备技能,尤其适用于容器化、虚拟化等复杂网络环境。

猜你喜欢

转载自blog.csdn.net/qq_44653106/article/details/147010884
今日推荐