文章目录
- ip命令
- 基本格式
- 常用选项
- 常用操作对象及命令(默认忽略show参数)
- 常用示例:
- address(设备上的协议地址)
- link(网络设备)
- route(路由表条目)
- rule(策略路由管理)
- neigh(ARP缓存管理)
- tunnel(隧道管理)
- monitor(监视和调试)
- 组播和maddr(多播管理)
ip命令
Linux中的ip命令是一个功能强大的网络配置工具,用于显示或操作路由、设备、策略路由和隧道等网络参数。
基本格式
ip [OPTIONS] OBJECT {COMMAND | help}
- OPTIONS:选项,用于指定命令的行为或输出格式。
- OBJECT:操作对象,如link(网络设备)、address(设备上的协议地址)、route(路由表条目)等。
- COMMAND:对指定的操作对象执行的操作命令,如show(显示)、add(添加)、del(删除)等。
常用选项
-V 或 --version:显示ip命令的版本信息。
-s 或 --stats 或 --statistics:输出更详细的信息。
-f <协议> 或 -family <协议>:指定协议类型,如inet(IPv4)、inet6(IPv6)等。
-r:在显示主机时,不使用IP地址,而使用主机的域名。
-4:指定使用IPv4协议。
-6:指定使用IPv6协议。
-0:输出信息时,每条记录输出一行,即使内容较多也不换行显示。
常用操作对象及命令(默认忽略show参数)
常用示例:
注意事项:在使用ip命令时,必须指定相应的操作对象和操作命令。
# 显示所有网络接口的信息
ip a
ip address show
ip link | grep -E '^[0-9]' | awk -F: '{print $2}' # 获取主机所有网络接口
# 显示指定网络接口(如eth0)的信息
ip address show eth0
ip a s eth0
# 为指定网络接口(如eth0)添加IP地址
ip addr add 192.168.1.100/24 dev eth0
# 删除指定网络接口(如eth0)上的IP地址
ip addr del 192.168.1.100/24 dev eth0
# 显示路由表信息
ip route show
ip r
# 添加新的路由条目
ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
# 删除指定的路由条目
ip route del 192.168.2.0/24 via 192.168.1.1 dev eth0
address(设备上的协议地址)
功能:用于显示和配置网络接口信息的重要命令。它属于iproute2套件的一部分,提供了比传统ifconfig命令更强大和灵活的功能。
ip addr show:显示设备上的协议地址配置,如IP地址、子网掩码、广播地址等。
# 给指定网络接口添加一个IP地址
ip addr add [IP地址/子网掩码] dev [网络接口]
ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
# 从指定网络接口删除一个IP地址
ip addr del [IP地址/子网掩码] dev [网络接口]
ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址
link(网络设备)
功能:ip命令允许用户创建、删除和修改虚拟网络接口,这对于网络隔离、虚拟化等高级应用场景非常有用。
# 显示网络设备的状态信息,如接口名称、类型、状态、MTU、队列长度等。
ip link show
ip link list
ip -s link list # 显示更加详细的设备信息
# 设置网络设备的状态或属性,如启用或禁用接口、修改MAC地址等。
ip link set
ip link set [网络接口] up:启用指定网络接口
ip link set eth0 up # 开启网卡
ip link set [网络接口] down:禁用指定网络接口
ip link set eth0 down # 关闭网卡
# 添加虚拟网络接口。
ip link add
# 删除虚拟网络接口。
ip link del
route(路由表条目)
功能:ip命令支持复杂的路由配置,包括静态路由、默认路由、策略路由等。通过精细的路由配置,可以实现更高效的网络通信和流量控制。
# 显示路由表信息,包括目的网络、网关、接口等。
ip route show
ip route list
# 添加新的路由条目。
ip route add [目标网络] via [网关IP] dev [网络接口]
ip route add default via 192.168.1.254 # 设置系统默认路由
ip route add default via 192.168.0.254 dev eth0 # 设置默认网关为192.168.0.254
ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
# 删除指定的路由条目。
ip route del [目标网络]
ip route del 192.168.4.0/24 # 未指定网络接口,所以删除所有匹配这个目的网络192.168.4.0/24的路由条目
ip route del 192.168.1.0/24 dev eth0 # 删除路由(推荐)
ip route del default # 删除默认路由
# 替换默认路由或静态路由。
ip route replace
rule(策略路由管理)
功能:策略路由允许基于源地址、目的地址或其他标准来选择不同的路由。这在多路径网络环境中非常有用,可以实现更精细的流量控制和负载均衡。
#添加策略路由规则。
ip rule add
# 删除策略路由规则。
ip rule del
# 显示当前策略路由规则。
ip rule show
neigh(ARP缓存管理)
功能:ARP(地址解析协议)负责将IP地址映射到MAC地址。ARP缓存是存储最近通信过的IP地址和对应的MAC地址的地方。ip命令允许用户查看和清除ARP缓存,从而解决网络通信中的地址解析问题。
# 显示ARP缓存中的条目。
ip neigh show
ip neigh list
# 手动添加ARP缓存条目。
ip neigh add [IP地址] lladdr [MAC地址] dev [网络接口]
# 删除ARP缓存条目。
ip neigh del [IP地址]
tunnel(隧道管理)
功能:隧道技术允许在不同网络之间建立直接的通信路径,即使这些网络之间没有直接的物理连接。ip命令可以创建和管理各种隧道,如GRE隧道、IP-in-IP隧道等。
# 添加隧道。
ip tunnel add [隧道名称] mode [隧道类型] remote [远程IP] local [本地IP] dev [网络接口]
# 删除隧道。
ip tunnel del [隧道名称]
# 显示当前隧道配置。
ip tunnel show
monitor(监视和调试)
功能:ip命令提供了监视网络设备和路由表状态变化的功能,这对于调试网络问题非常有用。
# 实时显示网络设备和路由表的状态变化。
ip monitor
组播和maddr(多播管理)
功能:组播和多播是网络通信中的两种重要方式,用于将数据包发送给多个接收者。ip命令可以管理系统中的组播和多播设置,包括加入、离开、查看组播组等操作。
ip maddr #管理多播地址。
ip mroute #查看多播路由缓存表。
# 显示当前系统的多播组信息
ip maddr show
# 将指定网络接口加入一个多播组
ip maddr add [多播地址] dev [网络接口]
# 将指定网络接口从一个多播组中删除
ip maddr del [多播地址] dev [网络接口]