Linux IP 命令

2025年3月17日 | 阅读 7 分钟

Linux IP 命令是 ifconfig 命令的较新版本。对于 Linux 管理员来说,它是一个方便配置网络接口的工具。它可以用来分配和移除地址,激活或关闭接口,以及执行更多有用的任务。

语法

IP 命令的基本语法如下:

选项

IP 命令支持以下命令行选项:

-V 或 -Version: 用于显示 IP 命令的版本。

-h, -human, -human-readable: 用于以人类可读的格式显示统计信息。

-b, -batch <文件名>: 用于从给定的文件或输入读取并调用命令。失败可能导致 IP 工具的终止。'-force' 选项在批处理模式下不会因为错误而终止 IP。如果在执行过程中出现任何错误,返回码将非零。

-s, -stats, -statistics: 用于显示更多信息,如统计数据或时间值。

-d, -details: 用于显示详细的输出。

-l, -loops <计数>: 用于指定最大循环次数。

-f, -family <系列>: 用于确定协议系列。这些协议系列标识符可以是 inet, inet6, bridge, ipx, dnet, mpls, 或 link。以下快捷方式用于协议系列:

  • -4: 用于 inet 系列。
  • -6: 用于 inet6 系列。
  • -B: 用于 bridge 系列。
  • -D: 用于 decnet 系列。
  • -I: 用于 ipx 系列。
  • -M: 用于 mpls 系列。
  • -0: 用于 link 系列。

-o, -oneline: 用于在单行上显示每条记录。它用反斜杠 '\' 字符替换行字段。这对于使用 wc 和 grep 命令计数记录很有用。

-r, -resolve: 在我们希望使用系统的名称解析器打印 DNS 名称而不是主机地址时指定。

-n, -netns <NETNS>: 用于将 IP 切换到指定的 NETNS(网络命名空间)。

-a 或 -all: 用于在所有对象上执行给定的命令。

-c, -color: 用于显示彩色输出。

-t, -timestamp: 用于显示当前时间。

-ts, -tshort: 与 'timestamp' 选项非常相似,但使用更短的格式。

-rc, -rcvbuf<大小>: 用于设置 Netlink 套接字接收缓冲区的大小,默认值为 1MB。

-iec: 用于以 IEC 单位显示人类可读的速率(例如,1Ki = 1024)。

-br,-brief: 用于以表格格式显示仅必需的信息,以便于阅读。

有用的 IP - 命令语法

下面表格中给出了一些 IP 命令的有用命令语法。

Object用途
地址用于设备上的协议(IP 或 IPv6)地址。
addrlabel用于协议地址选择的配置标签。
l2tp用于隧道以太网(L2TPv3)。
link用于网络设备
maddress用于组播地址。
monitor用于监视 Netlink 消息。
mroute用于组播路由缓存条目。
mrule用于组播路由策略数据库中的规则。
neighbour用于管理 ARP 或 NDISC 缓存条目。
netns用于管理网络命名空间。
ntable用于管理邻居缓存的操作。
route用于路由表条目。
rule用于路由策略数据库中的规则。
tcp_metrics/tcpmetrics用于管理 TCP 指标。
令牌用于管理标记接口标识符。
tunnel用于 IP 隧道。
tuntap用于管理 TUN/TAP 设备。

对象名称也可以写成缩写形式。例如,地址对象可以写成 addr 或仅 a。

IP 命令如何工作?

IP 命令管理 Linux 系统如何处理 IP 地址、网络接口控制器等。通过 IP 命令所做的更改会立即在系统上生效;我们不需要重新启动它。

IP 命令有许多其他应用。它有很多子命令;每个命令都作用于特定的对象,如路由和 IP 地址。它提供了丰富的功能。

以下是 IP 命令使用的一些有用对象:

地址 (Address): 包含 IP 地址和范围。

链路 (Link): 包含网络接口,如连接和 Wi-Fi 适配器。

路由 (Route): 包含通过接口(链路)将流量发送到地址的路由协议。

IP 命令的用法

让我们看一下 IP 命令的以下用法:

  • 列出 IP 地址
  • 显示 IPv4 和 IPv6 地址
  • 显示单个接口
  • 向接口添加 IP 地址
  • 删除 IP 地址
  • IP 与网络接口
  • 启动或停止网络接口
  • IP 与路由

列出 IP 地址

IP 命令的基本用途是了解我们系统的设置和地址。要显示我们计算机的 IP 地址,请执行带有地址的 IP 命令,如下所示:

上面的命令将显示我们系统的设置和地址。但是,我们也可以使用以下命令之一获得相同的结果:

以上所有命令都将产生相同的结果。考虑下面的输出:

Linux IP

从上面的输出中,我们可以看到两个 IP 地址和许多其他相关信息。此外,还显示了关于接口的其他信息。第一个 IP 地址是内部 IP 地址,用于本地通信。第二个是外部 IP 地址,用于 LAN(局域网)。

显示 IPv4 和 IPv6 地址

如果你只想显示 IPv4 地址,请执行以下命令:

上面的命令将仅显示 IP 版本 4 地址。考虑下面的输出:

Linux IP

要显示 IPv6 地址,请执行以下命令:

上面的命令将仅显示 IP 版本 6 地址。考虑下面的输出:

Linux IP

显示单个接口

要显示单个接口的信息,请使用 **"show dev"** 选项加上接口名称。例如,要查看 **'wlp6s0'** 接口的详细信息,请执行以下命令:

上面的命令将显示类似以下的输出:

Linux IP

我们还可以使用 '-4' 和 '-6' 标志来过滤输出,以显示与给定接口相关的 **IPv4 和 IPv6** 信息。

向接口添加 IP 地址

**'add'** 和 **'dev'** 选项用于向接口添加 IP 地址。我们必须指定要添加的 IP 地址和接口。例如,向 'wlp6s0' 接口添加 IP 地址 "192.168.7.22"。要添加此 IP 地址,请执行以下命令:

上面的命令会将给定的 IP 地址添加到指定的接口。如果成功添加,将不会产生任何输出。考虑下面的输出:

Linux IP

要验证已添加的 IP 地址,请执行以下命令:

考虑下面的输出

Linux IP

从上面的输出中,我们可以看到给定的 IP 地址已添加到指定的接口。

删除 IP 地址

删除 IP 地址与添加 IP 地址相同,只是我们必须用 'del' 替换 'add' 选项。要删除 IP 地址,请执行以下命令:

上面的命令将从 'wlp6s0' 接口中删除给定的 IP 地址。考虑下面的输出:

Linux IP

IP 与网络接口

我们可以使用 **link 对象** 来操作和检查网络接口。要显示我们系统上安装的接口,请执行以下命令:

上面的命令将显示我们机器上安装的接口。考虑下面的输出:

Linux IP

启动或停止网络接口

**'set'** 选项与 **up** 和 **down** 参数一起用于启动和停止网络接口。考虑以下命令:

上面的命令将关闭 'wlp6s0' 接口。要显示接口的状态,请执行以下命令:

考虑下面的输出

Linux IP

要启动接口,请执行以下命令:

上面的命令将启动给定的接口。考虑下面的输出:

Linux IP

IP 与路由

**root 对象**用于检查和操作路由。路由定义了网络流量的转发过程以及应用的网络接口。在共享网络的情况下,发送设备可以直接转发数据包。但是,如果目标设备不直接连接,发送设备会将数据包发送到默认路由器。在这种情况下,路由器会处理数据包。

要显示我们系统的已定义路由,请执行以下命令: