ip命令网络配置详解

文章目录

ip命令

Linux中的ip命令是一个功能强大的网络配置工具,用于显示或操作路由、设备、策略路由和隧道等网络参数。

基本格式

sh 复制代码
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命令时,必须指定相应的操作对象和操作命令。

sh 复制代码
# 显示所有网络接口的信息
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命令更强大和灵活的功能。

sh 复制代码
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命令允许用户创建、删除和修改虚拟网络接口,这对于网络隔离、虚拟化等高级应用场景非常有用。

sh 复制代码
# 显示网络设备的状态信息,如接口名称、类型、状态、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命令支持复杂的路由配置,包括静态路由、默认路由、策略路由等。通过精细的路由配置,可以实现更高效的网络通信和流量控制。

sh 复制代码
# 显示路由表信息,包括目的网络、网关、接口等。
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(策略路由管理)

功能:策略路由允许基于源地址、目的地址或其他标准来选择不同的路由。这在多路径网络环境中非常有用,可以实现更精细的流量控制和负载均衡。

sh 复制代码
#添加策略路由规则。
ip rule add

# 删除策略路由规则。
ip rule del

# 显示当前策略路由规则。
ip rule show

neigh(ARP缓存管理)

功能:ARP(地址解析协议)负责将IP地址映射到MAC地址。ARP缓存是存储最近通信过的IP地址和对应的MAC地址的地方。ip命令允许用户查看和清除ARP缓存,从而解决网络通信中的地址解析问题。

sh 复制代码
# 显示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隧道等。

sh 复制代码
# 添加隧道。
ip tunnel add [隧道名称] mode [隧道类型] remote [远程IP] local [本地IP] dev [网络接口]

# 删除隧道。
ip tunnel del [隧道名称]

# 显示当前隧道配置。
ip tunnel show

monitor(监视和调试)

功能:ip命令提供了监视网络设备和路由表状态变化的功能,这对于调试网络问题非常有用。

sh 复制代码
# 实时显示网络设备和路由表的状态变化。
ip monitor

组播和maddr(多播管理)

功能:组播和多播是网络通信中的两种重要方式,用于将数据包发送给多个接收者。ip命令可以管理系统中的组播和多播设置,包括加入、离开、查看组播组等操作。

sh 复制代码
ip maddr #管理多播地址。
ip mroute #查看多播路由缓存表。

# 显示当前系统的多播组信息
ip maddr show

# 将指定网络接口加入一个多播组
ip maddr add [多播地址] dev [网络接口]

# 将指定网络接口从一个多播组中删除
ip maddr del [多播地址] dev [网络接口]
相关推荐
车载诊断技术43 分钟前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
KevinRay_1 小时前
Python超能力:高级技巧让你的代码飞起来
网络·人工智能·python·lambda表达式·列表推导式·python高级技巧
2301_819287122 小时前
ce第六次作业
linux·运维·服务器·网络
CIb0la2 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
Black_mario2 小时前
链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景
网络·人工智能·web3
Aileen_0v02 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
中科岩创3 小时前
中科岩创边坡自动化监测解决方案
大数据·网络·物联网
花鱼白羊4 小时前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
brrdg_sefg5 小时前
WEB 漏洞 - 文件包含漏洞深度解析
前端·网络·安全