Linux系统之ip命令详解

ip 是 Linux 系统中用于管理网络配置的核心工具,支持路由表、网络接口、ARP 表、策略路由、隧道等操作。其功能覆盖网络层(IPv4/IPv6)、链路层(如 VLAN、桥接)、命名空间(NetNS)及 TCP/IP 协议栈的高级配置。

用法
ip [选项] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
核心对象(OBJECT)
对象功能
link管理网络接口(如启用/禁用、设置 MTU、查看状态)。
address管理 IPv4/IPv6 地址(如添加/删除 IP、查看地址分配)。
route管理路由表(如添加/删除路由、查看路由规则)。
neigh管理 ARP(IPv4)或邻居发现(IPv6)缓存表。
rule管理策略路由规则(多路由表切换)。
netns管理网络命名空间(创建、删除、切换)。
tunnel管理 IP 隧道(如 GRE、VXLAN、IP-in-IP)。
mroute管理组播路由缓存。
xfrm管理 IPSec 安全策略(如加密、认证)。
monitor实时监听网络状态变化(如路由、地址、接口事件)。
常用选项(OPTIONS)
1. 地址族与协议
  • -4:指定 IPv4(等价 -family inet)。
  • -6:指定 IPv6(等价 -family inet6)。
  • -0:指定链路层(-family link),如 MAC 地址操作。
  • -B:指定桥接(-family bridge)。
  • -M:指定 MPLS(-family mpls)。
2. 输出控制
  • -h, --human-readable:以易读单位(如 KB/MB)显示统计信息。
  • -s, --statistics:显示统计信息(多次使用增加详细度)。
  • -d, --details:显示更多详细信息。
  • -o, --oneline:每条记录占一行(换行符替换为 \)。
  • -r, --resolve:解析 DNS 名称而非显示 IP。
  • -c, --color:启用带颜色的输出。
3. 批量操作
  • -b, --batch <filename>:从文件或标准输入执行批量命令。
  • -force:批量模式下忽略错误继续执行。
4. 网络命名空间
  • -n, --netns <NAME>:切换到指定网络命名空间(无需 ip netns exec)。
5. 其他
  • -l, --loops <COUNT>:设置地址刷新最大循环次数(默认 10)。
  • -t, --timestamp:监控模式下显示时间戳。
  • -rc, --rcvbuf <SIZE>:设置 netlink 套接字接收缓冲区大小(默认 1MB)。
常见命令示例
1. 网络接口管理(ip link
  • 启用/禁用接口
    ip link set eth0 up    # 启用 eth0
    ip link set eth0 down  # 禁用 eth0
    
  • 查看接口状态
    ip link show           # 查看所有接口
    ip link show eth0      # 查看 eth0 详细状态
    
2. IP 地址管理(ip addr
  • 添加/删除 IP 地址
    ip addr add 192.168.1.100/24 dev eth0  # 添加 IPv4 地址
    ip addr del 192.168.1.100/24 dev eth0  # 删除 IPv4 地址
    
  • 查看地址分配
    ip addr show           # 显示所有接口的 IP 地址
    ip -6 addr show        # 仅显示 IPv6 地址
    
3. 路由表管理(ip route
  • 添加/删除路由
    ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0  # 添加静态路由
    ip route del 192.168.2.0/24                            # 删除静态路由
    
  • 查看路由表
    ip route show          # 显示默认路由表
    ip route show table 10 # 显示指定路由表(ID=10)
    
4. 策略路由(ip rule
  • 添加/删除规则
    ip rule add from 192.168.1.0/24 table 100  # 来自 192.168.1.0/24 的流量使用路由表 100
    ip rule del from 192.168.1.0/24           # 删除规则
    
  • 查看规则
    ip rule show
    
5. ARP/邻居缓存(ip neigh
  • 查看 ARP 表
    ip neigh show           # 显示 IPv4 ARP 表
    ip -6 neigh show        # 显示 IPv6 邻居缓存
    
  • 手动添加/删除 ARP 条目
    ip neigh add 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0
    ip neigh del 192.168.1.1 dev eth0
    
6. 网络命名空间(ip netns
  • 创建/删除命名空间
    ip netns add ns1        # 创建命名空间 ns1
    ip netns delete ns1     # 删除命名空间 ns1
    
  • 在命名空间中执行命令
    ip netns exec ns1 ip link show  # 查看 ns1 中的网络接口
    
7. 隧道管理(ip tunnel
  • 创建 GRE 隧道
    ip tunnel add gre1 mode gre remote 192.168.10.1 local 192.168.1.100 ttl 255
    ip link set gre1 up
    ip addr add 10.0.0.1/24 dev gre1
    
8. 监控网络事件(ip monitor
  • 实时监控路由/地址/接口变化
    ip monitor all         # 监控所有事件
    ip -6 monitor route    # 仅监控 IPv6 路由变化
    
注意事项
  1. 权限要求:大多数操作需要 root 权限(使用 sudo)。
  2. IPv4/IPv6 区分:通过 -4-6 明确指定协议版本。
  3. 批量脚本安全:使用 -b 批量模式时,建议先测试单条命令,避免误操作。
  4. 网络命名空间:需确保内核支持命名空间(Linux 3.0+)。
  5. 路由表持久化ip 命令修改的路由在重启后失效,需配合配置文件(如 /etc/network/interfaces)。
  6. 性能监控ip -s link show 可查看接口流量统计(收发包数、错误计数)。
退出状态
  • 0:命令成功。
  • 1:语法错误。
  • 2:内核返回错误(如无效参数、权限不足)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值