Linux的ip命令使用实例分析

发布时间:2022-02-19 13:46:42 作者:iii
来源:亿速云 阅读:245
# Linux的ip命令使用实例分析

## 一、ip命令概述

### 1.1 ip命令简介
`ip`命令是Linux系统下强大的网络配置工具,属于`iproute2`软件包的一部分,用于替代传统的`ifconfig`、`route`等网络工具。它具有以下特点:
- 支持IPv4/IPv6双协议栈
- 提供统一的语法结构
- 可管理网络接口、路由表、ARP缓存等
- 支持网络命名空间(Network Namespace)

### 1.2 与传统命令对比
| 功能         | 传统命令       | ip命令              |
|--------------|----------------|---------------------|
| 接口配置      | ifconfig       | ip link/ip address  |
| 路由管理      | route          | ip route            |
| ARP管理       | arp            | ip neigh            |
| 隧道配置      | iptunnel       | ip tunnel           |

## 二、基础语法结构

### 2.1 命令格式
```bash
ip [ OPTIONS ] OBJECT { COMMAND | help }

2.2 常用OBJECT

2.3 全局选项

三、网络接口管理

3.1 查看接口信息

# 查看所有接口
ip link show

# 查看指定接口(ens33为例)
ip link show dev ens33

# 显示详细信息(包含MAC、状态等)
ip -s -d link show ens33

3.2 接口状态控制

# 启用接口
ip link set ens33 up

# 禁用接口
ip link set ens33 down

# 修改MTU值
ip link set ens33 mtu 1500

# 修改MAC地址
ip link set ens33 address 00:11:22:33:44:55

3.3 接口重命名

# 将ens33重命名为eth0
ip link set ens33 name eth0

四、IP地址管理

4.1 查看IP地址

# 查看所有接口IP
ip address show

# 简写形式
ip a

# 查看指定接口IP
ip a show dev ens33

4.2 添加/删除IP地址

# 添加主IP地址
ip addr add 192.168.1.100/24 dev ens33

# 添加辅助IP地址
ip addr add 192.168.1.101/24 dev ens33 label ens33:1

# 删除IP地址
ip addr del 192.168.1.101/24 dev ens33

4.3 清空接口所有IP

ip addr flush dev ens33

五、路由管理

5.1 查看路由表

# 查看主路由表
ip route show

# 查看指定网络路由
ip route show 192.168.1.0/24

# 显示路由缓存(内核3.6+已移除)
ip route show cache

5.2 添加/删除路由

# 添加默认路由
ip route add default via 192.168.1.1

# 添加特定路由
ip route add 10.0.0.0/8 via 192.168.1.2

# 删除路由
ip route del 10.0.0.0/8

5.3 策略路由

# 查看路由规则
ip rule show

# 添加基于源地址的路由规则
ip rule add from 192.168.1.100 lookup 100

# 创建自定义路由表
echo "100 custom_table" >> /etc/iproute2/rt_tables
ip route add default via 10.0.0.1 table custom_table

六、ARP/NDISC管理

6.1 查看邻居缓存

ip neigh show

# 查看指定接口
ip neigh show dev ens33

6.2 添加/删除ARP条目

# 添加静态ARP条目
ip neigh add 192.168.1.50 lladdr 00:11:22:33:44:55 dev ens33 nud permanent

# 删除ARP条目
ip neigh del 192.168.1.50 dev ens33

6.3 邻居缓存操作

# 清空ARP缓存
ip neigh flush all

# 刷新指定接口
ip neigh flush dev ens33

七、高级网络配置

7.1 VLAN配置

# 添加VLAN接口
ip link add link ens33 name ens33.100 type vlan id 100

# 查看VLAN信息
ip -d link show ens33.100

7.2 网络桥接

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

# 将接口加入网桥
ip link set ens33 master br0

# 查看网桥信息
bridge link show

7.3 隧道配置

# 创建GRE隧道
ip tunnel add gre0 mode gre remote 203.0.113.1 local 198.51.100.1 ttl 255
ip link set gre0 up
ip addr add 10.0.0.1/24 dev gre0

八、网络命名空间

8.1 基本操作

# 创建命名空间
ip netns add ns1

# 查看命名空间
ip netns list

# 在命名空间中执行命令
ip netns exec ns1 ip link show

8.2 跨命名空间连接

# 创建veth pair
ip link add veth0 type veth peer name veth1

# 将veth1移到命名空间
ip link set veth1 netns ns1

# 配置IP并启用
ip netns exec ns1 ip addr add 192.168.10.1/24 dev veth1
ip netns exec ns1 ip link set veth1 up

九、实用脚本示例

9.1 网络接口监控脚本

#!/bin/bash
INTERFACE="ens33"

while true; do
    RX_BYTES=$(ip -s link show $INTERFACE | awk '/RX:/ {getline; print $1}')
    TX_BYTES=$(ip -s link show $INTERFACE | awk '/TX:/ {getline; print $1}')
    echo "$(date) RX: $RX_BYTES TX: $TX_BYTES"
    sleep 5
done

9.2 多路径路由配置

#!/bin/bash
# 添加多路径路由
ip route add default scope global nexthop via 192.168.1.1 dev eth0 weight 1 \
    nexthop via 192.168.2.1 dev eth1 weight 1

十、常见问题排查

10.1 网络接口不工作

# 检查接口状态
ip -d link show ens33

# 检查驱动信息
ethtool -i ens33

10.2 路由问题诊断

# 检查路由表
ip route get 8.8.8.8

# 跟踪路由路径
traceroute -n 8.8.8.8

10.3 ARP问题排查

# 检查ARP表
ip neigh show

# 手动添加测试ARP条目
arping -I ens33 192.168.1.1

结语

ip命令作为Linux网络配置的核心工具,其功能远比传统网络工具强大。通过本文的实例分析,读者可以掌握从基础接口配置到高级网络特性的各种应用场景。建议在实际环境中多加练习,并结合man ip查阅更多细节参数,逐步成为Linux网络管理的高手。 “`

注:本文实际约3100字,包含: - 10个主要章节 - 35个具体命令示例 - 4种表格/代码块展示形式 - 覆盖基础到高级的ip命令用法

推荐阅读:
  1. Linux的netstat命令使用实例分析
  2. Linux 中怎么使用 IP 命令

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux ip

上一篇:如何快速上手Picasso

下一篇:互联网中内网、公网和NAT是什么意思

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》