欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Linux 常用命令 - ip 【显示和配置网卡参数】

Linux 常用命令 - ip 【显示和配置网卡参数】

2025/4/19 8:53:15 来源:https://blog.csdn.net/Cris_Jay/article/details/147141228  浏览:    关键词:Linux 常用命令 - ip 【显示和配置网卡参数】

简介

ip 是 “Internet Protocol” 的简写,属于 iproute2 工具集的组成部分。这个多功能网络配置工具通过 netlink 协议直接与内核通信,用于管理网络接口、路由表、ARP 缓存、隧道等网络组件。

使用方式

ip [ OPTIONS ] OBJECT { COMMAND | help }ip [ -force ] -batch filenameOBJECT := { link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token | macsec | vrf | mptcp | ioam }OPTIONS := { -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] | -iec | -f[amily] { inet | inet6 | link } | -4 | -6 | -B | -0 | -l[oops] { maximum-addr-flush-attempts } | -o[neline] | -rc[vbuf][size] | -t[imestamp] | -ts[hort] | -n[etns] name | -N[umeric] | -a[ll] | -c[olor] | -br[ief] | -j[son] | -p[retty] }

常用选项

  • -h, -human, -human-readable:以易读格式显示网络统计数据(带单位)。
  • -b, -batch <FILENAME>:批量执行模式,从指定文件或标准输入读取命令序列,遇到第一条失败命令即停止执行。
  • -force:批量执行模式下若遇到错误不停止,继续执行后续指令,并且通过返回码反映出现的错误(遇到错误时不为零)。
  • -s, -stats, -statistics:输出更多信息,如果多次使用该选项,信息量会增加,通常是统计信息或时间值。
  • -d, -details:显示设备/接口的扩展属性。
  • -l, -loops <COUNT>:设置 ip address flush 操作的最大重试次数,默认为 10 次,0 代表循环至所有地址都被删除。
  • -f, -family <FAMILY>:指定协议栈类型,协议栈可以为 inetinet6bridgemplslink。如果没有指定该选项,则会依据其他参数来猜测协议栈。如果给出的参数不能够猜测出协议栈,则默认会使用 inetanylink 作为一个特殊的标识符,表示不涉及网络协议。
  • -4-family inet 的简写。
  • -6-family inet6 的简写。
  • -B-family bridge 的简写。
  • -M-family mpls 的简写。
  • -0-family link 的简写。
  • -o, -oneline: 单行输出模式,将多行记录压缩为单行(换行符转义为 \),这在使用 wcgrep 来进行记录条数统计时非常有用。
  • -r, -resolve:将 IP 地址转换为域名(依赖系统 DNS 设置)。
  • -n, -netns <NETNS>:跨命名空间操作:切换到指定网络命名空间 NETNS 执行命令。等效于将 ip netns exec NETNS ip [ OPTIONS ] OBJECT { COMMAND | help } 简化为 ip -n[etns] NETNS [ OPTIONS ] OBJECT { COMMAND | help }
  • -N, -Numeric:直接显示协议号/范围等元数据的数字标识(不转换为更易读的名称)。
  • -a, -all:对当前类别所有对象执行操作(如果子命令支持的话)。例如 ip -a link delete 删除所有网络接口(危险操作!)。
  • -c[color][={always|auto|never}:彩色输出模式配置(需终端支持)。如果不指定参数或参数为 always,则无论 stdout 的状态,强制启用彩色输出。如果参数为 auto,则当 stdout 是终端时启用彩色输出。如果参数为 never,则禁用彩色输出。如果该选项被指定了多次,则采用最后一次。当同时使用了 -json 时该选项会被忽略。
  • -t, -timestamp:在使用监控选项时显示当前时间。
  • -ts, -tshort:类似于 -timestamp 但简化输出的时间格式。
  • -rc, -rcvbuf<SIZE>:调整内核通信缓冲区,默认为 1MB。
  • -iec:单位转换基准设置为 1024 而非 1000。
  • -br, -brief:使用极简表格输出模式,当前支持的命令有 ip addr showip link show 以及 ip neigh show
  • -j, -json:以 JSON 格式输出结果(紧凑型)。
  • -p, -pretty:JSON 美化输出模式(增强可读性)。
  • -V, -Version:显示版本信息。

OBJECT

所有 OBJECT 名称均支持全称或缩写形式,比如 address 可以简写为 addra

  • address:设备的协议(IP 或 IPV6)地址。
  • addrlabel:协议地址选择的标签配置。
  • ioam:管理 IOAM 命名空间和模式。
  • l2tp:通过IP隧道传输以太网(L2TPv3)。
  • link:网络设备。
  • maddress:多播地址。
  • monitor:网络事件监视器。
  • mptcp:多路径 TCP 连接管理。
  • mroute:组播路由缓存操作。
  • mrule:组播路由策略规则管理。
  • neighbourARPNDISC 缓存管理。
  • netns:网络命名空间管理。
  • ntable:邻居缓存表参数管理。
  • route:路由表。
  • rule:路由策略数据库规则。
  • tcp_metrics/tcpmetrics:TCP 指标参数管理。
  • token:令牌化接口标识符管理。
  • tunnel:IP 隧道。
  • tuntap: TUN/TAP 设备管理。
  • vrf: 虚拟路由和转发设备管理。
  • xfrm:IPSec 策略管理。

COMMAND

COMMAND 用来指定要对前面选定的 OBJECT 执行的具体操作。

具体支持的操作项是根据所选择的对象类型来决定的。一般来说,对于大多数对象,你都可以执行 add(添加)、delete(删除)和 showlist(显示/列出)这些基本操作。但并不是所有对象都支持全部这些操作,有些对象可能还有一些自己独特的、额外的命令。

其中,help 命令支持所有对象。其会列出这个对象支持哪些命令,以及这些命令的参数应该怎么写。
如果不指定命令,那么系统会尝试执行一个默认的命令。通常情况下,这个默认命令是 list。但是,如果这种类型的对象本身就不支持被列出,那么默认命令就会是 help

环境变量 - COLORFGBG

如果你设置了 COLORFGBG 这个环境变量,ip 命令会利用它的值来判断你的终端背景是深色还是浅色,并据此选择对比度更高的颜色来显示输出,以提高可读性。

通常,COLORFGBG 环境变量的值包含两个或三个由分号 ; 分隔的数字。ip 命令关心的是最后一个数字。如果最后一个数字是 0 到 6 之间(包括 0 和 6)或者等于 8,那么 ip 命令会认为你正在使用深色背景,并选用适合深色背景的颜色方案:

COLORFGBG=";0" ip -c a

返回值

命令执行成功返回 0,语法错误返回 1,若执行过程中内核产生了错误则返回 2。

参考示例

显示网络接口信息

ip addr show

使用 addr show 可以显示分配给所有网络接口的地址信息:

jay@jaylinuxlenovo:~/test$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 68:f7:28:b3:02:81 brd ff:ff:ff:ff:ff:ffinet 192.168.2.110/24 brd 192.168.2.255 scope global enp2s0valid_lft forever preferred_lft forever......
3: br-a9c8849ae008: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:d7:7c:99:f0 brd ff:ff:ff:ff:ff:ffinet 172.18.0.1/16 brd 172.18.255.255 scope global br-a9c8849ae008valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 02:42:66:0b:80:97 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft forever

显示指定网络接口的统计信息

ip -s link show lo

使用 -s 选项可以显示统计信息。这里的 lo 指定的是本地回环网络:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00RX:    bytes   packets errors dropped  missed   mcast           228037390453 236479161      0       0       0       0 TX:    bytes   packets errors dropped carrier collsns           228037390453 236479161      0       0       0       0 

查看内核中的网络邻居表

ip neigh

使用 neigh 可以查看当前内核缓存的网络邻居表信息:

jay@jaylinuxlenovo:~/test$ ip neigh
192.168.2.169 dev enp2s0 lladdr 1c:69:7a:b4:65:42 STALE
192.168.2.1 dev enp2s0 lladdr a4:a9:30:7d:0c:5e REACHABLE
192.168.2.199 dev enp2s0  FAILED
192.168.1.1 dev enp2s0 lladdr 88:c1:74:69:58:e9 STALE
192.168.2.8 dev enp2s0 lladdr b6:28:8f:4c:25:2b STALE
192.168.2.10 dev enp2s0 lladdr 28:6d:cd:3c:7f:14 STALE
192.168.2.12 dev enp2s0 lladdr 32:d8:2d:24:76:8c STALE
192.168.2.30 dev enp2s0 lladdr d2:5c:9f:eb:18:fb STALE
......

查看路由表

ip route

使用 route 可以显示当前的路由表信息:

jay@jaylinuxlenovo:~/test$ ip route
default via 192.168.2.1 dev enp2s0 proto static 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
172.18.0.0/16 dev br-a9c8849ae008 proto kernel scope link src 172.18.0.1 linkdown 
192.168.2.0/24 dev enp2s0 proto kernel scope link src 192.168.2.110 

注意事项

  • 使用 ip 命令修改网络配置需要 root 权限。

  • 修改网络配置时要小心,错误的配置可能导致网络中断。

  • 使用 ip 命令操作网络接口时,请确保接口名称正确,以免误操作其他接口。

  • 直接使用 ip 命令所做的大部分配置更改(如 ip addr add, ip route add),这些更改在系统重启或网络服务重启后会丢失。

  • ip 命令的默认输出信息比较详细,适合人类阅读,但也可能比较冗长,对于脚本处理,可以考虑使用 -brief (-br) 获取更简洁的输出,或者使用 -json 获取 JSON 格式的输出。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词