ip命令详解

说明

可用来显示或配置Linux主机的路由、网络设备、策略路由、隧道等功能的网络配置&查看工具

语法

ip <选项OPTIONS> <对象OBJECT>
image

<选项>:对指定的网络对象完成具体操作;
<对象>:指定要管理的网络对象;
help:显示网络对象支持的操作命令的帮助信息。

选项

OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
        -h[uman-readable] | -iec | -j[son] | -p[retty] |
        -f[amily] { inet | inet6 | ipx | dnet | bridge | link } |
        -4 | -6 | -I | -D | -M | -B | -0 |
        -l[oops] { maximum-addr-flush-attempts } | -br[ief] |
        -o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
        -rc[vbuf] [size] | -n[etns] name | -a[ll] |
        -c[olor]}

-V:显示指令版本信息;
-s:输出更详细的信息;
-f:强制使用指定的协议族;
-4:指定使用的网络层协议是IPv4协议;
-6:指定使用的网络层协议是IPv6协议;
-0:输出信息每条记录输出一行,即使内容较多也不换行显示;
-r:显示主机时,不使用IP地址,而使用主机的域名。

对象

OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
       tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
       netns | l2tp | macsec | tcp_metrics | token | netconf | ila |
       vrf | sr | nexthop }

show:显示信息
show <dev>:显示特定接口信息
list:与show一致

输出字段含义

接口标志: <...>部分

通常包含2-4个标志,例如:

  1. <LOOPBACK,UP,LOWER_UP>
  2. <BROADCAST,MULTICAST,UP,LOWER_UP>
  3. <NO-CARRIER,BROADCAST,MULTICAST,UP>
  4. <POINTOPOINT,MULTICAST,NOARP>
  5. ...
  • LOOPBACK:回环接口,如lo,数据仅在本地处理。
  • UP:接口已启用,逻辑状态为激活。
  • LOWER_UP:物理链路已连接,如网线插入或无线连接。
  • BROADCAST:支持广播,如以太网接口。
  • MULTICAST:支持多播通信,可接收多播数据包,如视频流、组播。
  • NO-CARRIER:网卡已处于UP启用状态,但因物理层原因导致无连接。
  • PROMISC:混杂模式,接收所有经过的数据包,常用于抓包工具。
  • POINTOPOINT:点到点连接,如PPP或隧道,仅与对端通信,无需广播。
  • NOARP:不使用ARP协议。隧道通常通过IP层直接通信,无需解析链路层地址。

最大传输单元 MTU

  1. mtu 1420 隧道常用
  2. mtu 65535 本地回环常用
  3. mtu 1500 以太网常用
  • 接口能传输的最大数据包大小(含 IP 首部)为 1420 字节,数据包若超出MTU,IP层就会进行分片传输。
  • PPPoE:1492字节
  • IPv6强制最小值:1280字节
  • 华为设备:1000-1700字节(VLANIF接口)?

临时设置:ip link set trwg0 mtu 1420

排队规则 qdisc

  • noop:不使用任何排队规则,数据直接发送。低负载适用,高负载可能丢包。
  • noqueue:不使用队列规则。
  • pfifo_fast:默认的FIFO队列,分三个优先级波段
  • htb:层次化流量控制,支持带宽分配和优先级管理。
  • fq_codel:公平队列+拥塞控制, 减少延迟和缓冲区膨胀,适用实时应用(在线视频、游戏等),隧道常用。

启用fq_codel:tc qdisc replace dev wg0 root fq_codel
恢复默认:tc qdisc del dev wg0 root

接口状态 state

  • DOWN:接口未激活,或因未配置IP、未启用。
  • UP:接口已激活,但未能建立物理连接。
  • UNKNOWN:状态未知,常见回环接口、驱动未完全初始化。
  • LOOWER_UP:物理链路已连接,但未配置IP。

激活接口:ip link set wg0 up
状态异常

  • state DOWN但LOWER_UP:检查IP配置
  • state UP但无法通信:检查MTU是否匹配或禁用ARP(arp off)

网络组 group

  • default:接口属于默认网络组,用于分类管理。
  • multicast:多播组。
  • broadcast:广播组,如以太网接口。
  • 自定义组:通过ip link set group [name]设置

队列长度 qlen

  • 含义:待发送数据包队列的最大长度,常见取值500、1000。
  • 作用:队列满时丢弃新数据包,故高负载需调整。

常用实例

常见

ip link show                     # 显示网络接口信息
ip -s link show wg0              # 查看网络接口信息及其数据包数据
ip -d link show wg0              # 显示更详细的网络接口信息
ip link set eth0 up              # 开启网卡
ip link set eth0 down            # 关闭网卡
ip link set eth0 promisc on      # 开启网卡的混合模式
ip link set eth0 promisc offi    # 关闭网卡的混合模式
ip link set eth0 txqueuelen 1200 # 设置网卡队列长度
ip link set eth0 mtu 1400        # 设置网卡最大传输单元

ip addr show     # 显示网卡IP信息
ip addr add 192.168.0.1/24 dev eth0 # 为eth0网卡添加一个新的IP地址192.168.0.1
ip addr del 192.168.0.1/24 dev eth0 # 为eth0网卡删除一个IP地址192.168.0.1

ip route show # 显示系统路由
ip route add default via 192.168.1.254   # 设置系统默认路由
ip route list                 # 查看路由信息
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 add default via  192.168.0.254  dev eth0        # 设置默认网关为192.168.0.254
ip route del 192.168.4.0/24   # 删除192.168.4.0网段的网关
ip route del default          # 删除默认路由
ip route delete 192.168.1.0/24 dev eth0 # 删除路由

显示邻居表(同网段的其他在线IP)

  1. arp命令
arp -n

用于显示系统的ARP缓存表,IP地址与MAC地址的映射关系,只支持IPv4。
字段含义:

  • Address:IPv4地址
  • HWtype:硬件类型,指链路层协议类型。
    • ether:以太网,对应mac地址
    • none:无硬件地址,如隧道接口
  • HWaddress:硬件地址 => 链路层地址 => MAC地址, 6字节十六进制数。
  • Flags:ARP缓存项的标志状态
    • C (Complete):缓存项有效,已完成ARP解析;
    • M (Manual):手动配置,静态ARP;
    • P (Published):本地设备发布的代理ARP条目。
  • Mask:子网掩码,仅用于代理ARP场景,通常为*或空表示不适用。
  • Iface:关联的网络接口名,即通过该接口与目标IP通信。
  1. ip n l命令
ip neigh list
ip neigh show
ip n l

更现代的 ARP 缓存查看命令(支持 IPv6 邻居表)。
示例:192.168.1.1 dev enp3s0 lladdr 1c:1b:0d:49:d0:10 STALE
字段含义:

  • Address:192.168.1.1 目标IP地址,支持IPv6.
  • dev enp3s0:关联的通信网络接口enp3s0。
  • lladdr 1c:1b:0d:49:d0:10:链路层MAC地址。
  • STALE:邻居状态
    • REACHABLE: 已验证可达,缓存项有效,通常持续30s;
    • STATE:未验证可达,可能失效,通信时重新验证;
    • DELAY:正在等待验证响应(延迟1s后重试);
    • PROBE:主动发送ARP请求验证;
    • FAILED:多次验证失败,缓存项无效;
    • PERMANENT:手动配置的静态条目(不会过期)。

静态ARP配置:避免ARP欺骗,手动绑定IP与MAC

  • 方式一:arp -s 192.168.1.1 1c:1b:0d:49:d0:10
  • 方式二:ip neigh add 192.168.1.1 lladdr 1c:1b:0d:49:d0:10 dev enp3s0 nud permanent
    清理无效缓存:当网络设备更换(MAC地址变化)时,需清理旧缓存
  • 单个:ip neigh flush 192.168.1.1
  • 所有:ip neigh flush all
posted @ 2025-08-11 16:22  TechLattice  阅读(109)  评论(0)    收藏  举报