一、概述
Linux 的 ip
命令是一个功能强大的网络配置工具,属于 iproute2
软件包,用于替代传统的 ifconfig
、route
、arp
等命令。
二、对象、选项、参数详解
以下是 ip
命令的详细分类说明,涵盖常用子命令、参数及其用途。
2.1基本语法
ip [OPTIONS] OBJECT { COMMAND | help }
-
OPTIONS:全局选项(如
-s
显示统计信息)。 -
OBJECT:操作对象(如
address
、link
、route
等)。 -
COMMAND:对对象的操作(如
show
、add
、delete
)。
2.2全局选项(OPTIONS)
选项 | 说明 |
---|---|
-s 或 --stats | 在显示信息时提供更详细的统计数据。例如 ip -s link show eth0 会显示 eth0 网卡更详细的流量统计信息(统计信息,如 -s -s 显示更详细统计)。 |
-c 或 --color | 在输出中使用颜色来区分不同类型的信息,增强可读性。例如 ip -c addr show 。 |
-d | 显示简化的输出(调试模式)。 |
-4 | 仅显示 IPv4 相关信息。 |
-6 | 仅显示 IPv6 相关信息。 |
-j | 输出 JSON 格式(适用于脚本处理)。 |
-p | 人性化格式输出(如时间单位、可读性更高的数值)。 |
2.3对象(OBJECT)分类及用法
2.3.1 网络接口管理(link
)
管理物理或虚拟网络接口的状态和属性。
子命令/参数 | 说明 |
---|---|
ip l /ip link /ip link show(show是默认值,所以可以缺省) | 显示所有网络接口的简要信息。 |
ip link show dev eth0 | 显示指定接口(如 eth0 )的详细信息。 |
ip link set dev eth0 up | 启用接口 eth0 (down 为禁用)。 |
ip link set dev eth0 mtu 1500 | 设置接口的 MTU 值。 |
ip link add name veth0 type veth peer name veth1 | 创建一对虚拟以太网接口(veth pair)。 |
ip link delete dev veth0 | 删除虚拟接口。 |
2.3.2 IP 地址管理(address
或 addr
)
管理接口的 IPv4/IPv6 地址。
子命令/参数 | 说明 |
---|---|
ip a/ ip addr/ ip address show(show是默认值,所以可以缺省) | 显示所有接口的 IP 地址信息。 |
ip address add 192.168.1.2/24 dev eth0 | 为 eth0 添加 IP 地址。 |
ip address del 192.168.1.2/24 dev eth0 | 删除 eth0 的 IP 地址。 |
ip address flush dev eth0 | 清除 eth0 的所有 IP 地址。 |
关键参数:
-
local
: 指定 IP 地址(如192.168.1.2
)。 -
dev
: 指定操作的接口(如eth0
)。 -
broadcast
: 设置广播地址(默认自动计算)。 -
scope
: 作用域(global
、link
、host
)。
2.3.3 路由管理(route
或 r
)
管理 IPv4/IPv6 路由表。
子命令/参数 | 说明 |
---|---|
ip r/ ip route/ip route show(show是默认值,所以可以缺省) | 显示当前路由表。 |
ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0 | 添加静态路由:目标 10.0.0.0/24 通过网关 192.168.1.1 。 |
ip route add default via 192.168.1.1 | 设置默认网关。 |
ip route delete 10.0.0.0/24 | 删除指定路由。 |
ip route flush cache | 刷新路由缓存。 |
关键参数:
-
via
: 指定下一跳网关。 -
dev
: 指定出口接口。 -
metric
: 路由优先级(数值越小优先级越高)。 -
src
: 指定路由的源地址。
2.3.4 邻居表(ARP/NDP)管理(neigh
或 neighbor
)
管理 ARP(IPv4)或 NDP(IPv6)缓存表。
子命令/参数 | 说明 |
---|---|
ip n/ ip neigh/ ip neigh show(show是默认值,所以可以缺省) | 显示所有邻居表条目。 |
ip neigh add 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0 | 添加静态 ARP 条目。 |
ip neigh del 192.168.1.1 dev eth0 | 删除指定邻居表条目。 |
2.3.5 策略路由(rule
)
管理路由策略数据库(高级路由场景)。
子命令/参数 | 说明 |
---|---|
ip ru/ ip rule/ ip rule show(show是默认值,所以可以缺省) | 显示所有路由策略规则。 |
ip rule add from 192.168.1.0/24 lookup 100 | 添加规则:源 IP 为 192.168.1.0/24 时使用路由表 100。 |
ip rule del priority 32766 | 删除指定优先级的规则。 |
2.3.6 隧道管理(tunnel
)
管理 IP 隧道(如 GRE、IPIP 隧道)。
子命令/参数 | 说明 |
---|---|
ip tunnel add gre0 mode gre remote 203.0.113.1 local 198.51.100.1 | 创建 GRE 隧道。 |
ip tunnel del gre0 | 删除隧道。 |
2.3.7 VLAN 管理(vlan
)
管理虚拟局域网(VLAN)。
子命令/参数 | 说明 |
---|---|
ip link add link eth0 name eth0.10 type vlan id 10 | 在 eth0 上创建 VLAN 接口 eth0.10 ,ID 为 10。 |
2.3.8 组播地址管理(maddress
)
管理接口的组播地址。
子命令/参数 | 说明 |
---|---|
ip maddress show | 显示所有组播地址。 |
ip maddress add 224.0.0.1 dev eth0 | 为 eth0 添加组播地址。 |
三、一些其它功能
3.1 网络命名空间(netns
)
管理网络命名空间(用于容器化或网络隔离)。
ip netns add ns1 # 创建命名空间
ip netns exec ns1 ip link show # 在命名空间内执行命令
3.2 监控网络事件(monitor
)
实时监控网络接口、地址、路由等变化。
ip monitor all
四、一些应用场景示例
4.1 配置静态 IP(临时配置,重启系统后失效):
ip link set dev eth0 up
ip address add 192.168.1.2/24 dev eth0
ip route add default via 192.168.1.1
4.2 查看IP地址信息
ip -c a #or
ip -c address
4.3 查看路由表信息
ip -c r #or
ip -c route
4.4 查看接口统计信息:
ip -s link show eth0
4.5 创建 VLAN 接口
ip link add link eth0 name eth0.100 type vlan id 100
ip address add 10.0.100.1/24 dev eth0.100
以上介绍了ip命令的全局选项、对象、参数,也可以通过 ip help
或 man ip
可获取更详细的帮助信息。