面向网络管理员的 50 个 Linux 命令

图片[1]-面向网络管理员的 50 个 Linux 命令-IT熊技术站

Linux 为其用户提供了一些最好的网络实用程序。长期以来,ifconfig 命令一直是在 Linux 中处理网络参数的首选解决方案。然而,ifconfig 已经被弃用了一段时间,Unix 社区采用了 Linux IP 命令来替代这个强大的工具。ip 命令允许用户和网络管理员非常轻松地配置其 IP 地址、路由策略和网络接口。在性能和功能方面,这比 ifconfig 是一个不错的改进。因此,如果您仍在使用 ifconfig,那么是时候尝试您的 ip 实用程序了。

用于网络管理的 Linux IP 命令

ip 实用程序通过 ifconfig 提供了一些附加功能。您通常会使用 ifconfig 来操作网络接口和 IP 地址。但是,ip 命令允许我们甚至操作路由表以及 ARP 表。了解我们的示例后,您将学习如何使用这个方便的命令。

Linux IP 基本命令的使用

ip [ OPTIONS ] OBJECT { COMMAND | help }

Linux 中的 ip 命令采用上述形式。在这里,OBJECT 可以是几个东西,包括网络接口、IP 地址、路由规则、隧道和 ARP 表。可以使用长格式或短格式(如 或地址)指定每个对象。

检查所有网络接口的 IP 地址和属性

您可以使用以下命令显示系统上所有可用接口的 IP 地址及其属性。此命令的输出与 ifconfig 非常相似。

sudo ip addr show

您也可以使用缩写形式 a for addr 。它们是等效的,并显示相同的信息。

sudo ip a show

结果应包含所有网络接口的名称及其各自的 IP 地址。IP 信息由术语 inet 表示。

图片[2]-面向网络管理员的 50 个 Linux 命令-IT熊技术站

检查特定设备的 IP 地址和属性

显示所选设备的IP信息也非常容易。只需使用 dev 选项,后跟接口名称作为参数。

sudo ip a show dev wlp2s0
sudo ip addr show dev wlp2s0

这里 wlp2s0 是一个无线接口。将其替换为要检查的接口的名称。例如,以太网接口通常通过 eth0 表示。但是,这很容易因系统而异,因此请确保在主机上提供现有名称。

仅显示 IPv4 地址

上面的命令除了IP地址之外,还显示了很多有用的信息。但是,如果您只对 IP 地址本身感兴趣,则可以省略该附加信息。查看下面的命令以了解它们的工作原理。

sudo ip -4 addr
sudo ip -4 addr show

这些命令是等效的,但它们列出了具有活动 IPv4 地址的接口。但是,它们仍然提供了许多附加信息。您可以使用 grep Linux 命令过滤此输出并仅显示 IPv4 地址。

sudo ip -4 addr show | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"

仅显示 IPv6 地址

我们还可以使用 ip 实用程序和 Linux awk 命令仅显示 IPv6 地址。我们也可以使用 grep 实用程序,但这需要更大的正则表达式模式。

sudo ip -6 addr show | awk '/inet6/ {print $2}'

当您运行上述命令时,它将输出接口的所有 IPv6 地址。

添加 IP 地址

Linux IP 命令使管理员能够非常轻松地添加新的 IP 地址。在下面的示例中,我们将说明如何将 IP 地址添加到特定网络设备。注意语法以确保您了解发生了什么。

sudo ip addr add 192.168.1.1/24 dev eth0

此命令将网络掩码为 24 的 IP 地址 192.168.1.1 添加到 eth0 以太网接口。只需重命名界面即可反映不同设备的变化。此命令将带有网络掩码 24 的 IP 地址 192.168.1.1 添加到以太网接口 eth0。只需替换接口名称即可反映不同设备中的更改。

添加广播地址

广播地址向连接到网络的每个设备发送网络数据包。您可以使用以下简单 ip 命令之一添加自定义广播地址。

sudo ip addr add brd 192.162.125.200 dev eth0
sudo ip addr add broadcast 192.162.125.200 dev eth0

现在,eth0 接口的广播地址设置为 192.162.125.200。但是,请记住,Linux 中的网络接口本身获取广播信息。因此,您只应在自己设置网络时进行设置。

删除 IP 地址

删除分配给特定网络的IP也非常容易。考虑 ip 命令的下一个示例,看看它在实践中是如何工作的。

sudo ip addr del 192.168.1.1/24 dev eth0

此命令将从以太网接口中删除 IP 地址 192.168.1.1/24。

删除所有 IP 地址

您需要多次使用上述命令从不同接口中删除所有 IP 地址。但是,如果您想从头开始,删除您的 IP 地址可能是一个好的开始。

sudo ip -s -s a f to 192.168.1.0/24

此命令将删除与 192.168.1.0/24 网络关联的所有 IP 地址。您还可以根据 IP 的标签删除 IP。

sudo ip -4 addr flush label "eth*"

此命令将删除系统以太网接口的所有 IPv4 地址。

显示所有可用接口的信息

链接对象表示网络接口。您可以使用以下简单命令显示有关 Linux 计算机上所有网络接口的信息。

sudo ip link
sudo ip link show

两者都是等效的,并显示 MAC、接口状态等信息。您可以将链接替换为 l 作为缩写形式。您还可以使用 ip 命令的 –和 -h 选项以人类可读的格式获取更多详细信息。

sudo ip -d -h link show

显示特定设备的接口信息

与IP地址一样,我们还可以显示单个设备的接口信息。应以相同的方式使用 dev 选项,后跟设备名称,如以下示例所示。

sudo ip link show dev eth0

它对于排除某些设备的故障很有用,因为它消除了不必要的信息。使用以下命令以易于阅读的格式获取其他信息。

sudo ip -d -h link show dev eth0

显示接口的统计数据

统计数据使识别和排除网络问题变得非常容易。您可以使用以下任一命令非常轻松地显示特定接口的统计信息。

sudo ip -s link show wlp2s0
sudo ip -stats link show wlp2s0
sudo ip -statistics link show wlp2s0

上述所有命令都是等效的。因此,您可以使用 -s、-stats 或 statistics。但是,您可以在命令中多次使用它。这将提供额外的统计信息。

sudo ip -s -stats -statistics link show wlp2s0

显示所有接口的统计数据

ip 实用程序还允许网络管理员打印系统上所有可用接口的统计数据。这与上面的命令非常相似。只需省略特定的接口名称,ip将显示所有内容的统计信息。

sudo ip -s link show
sudo ip -stats link show
sudo ip -statistics link show

同样,我们也可以多次使用该标志来获取其他信息。下面的命令显示了这一点。

sudo ip -s -stats -statistics link show

启用特定网络接口

ip 命令使使界面联机变得非常容易。因此,如果您仍在使用 ifconfig 命令来执行此操作,请仔细查看以下示例。

sudo ip link set wlp2s0 up

此命令将启用系统上的 wlp2s0 无线接口。由于许多系统将此接口设置为 wlan0,因此请确保根据您的系统使用适当的设备名称。

禁用特定网络接口

我们还可以使用 ip 子命令链接集非常轻松地禁用网络。以下示例演示如何禁用我们在上一示例中刚刚启用的 wlp2s0 无线接口。

sudo ip link set wlp2s0 down

上述命令将使 wlp2s0 接口脱机。如果要使用无线接口传输网络数据包,则需要再次启用它。

将自定义 MTU 分配给接口

MTU 代表最大传输单位,解决了特定网络接口可以发送的数据包大小的限制。您可以使用下面的 Linux ip 命令为接口分配自定义 MTU 大小。

sudo ip link set wlp2s0 mtu 5000

此命令将 wlp2s0 无线接口的 MTU 设置为 5000。您可以通过检查接口信息来确认更改。

启用混杂模式

混杂模式允许接口将所有 IP 数据包发送到您的 CPU,包括那些注定不会到达系统的数据包。这通常可用于故障排除和网络审核目的。查看以下命令,了解如何使用 ip 命令行工具执行此操作。

sudo ip link set wlp2s0 promisc on

当您运行上述命令时,它将为无线接口启用混杂模式。您还可以为其他网络接口启用它,只要网络接口控制器支持它们。

所有已启用接口的列表

由于您经常使用具有多个接口的系统,因此您可能需要创建当前激活的设备列表。这在网络故障排除和系统审核期间非常有用。

sudo ip link ls up

此命令将打印 Linux 计算机上活动运行的所有网络接口以及其常规属性。使用 ip 命令的 -d 标志获取有关每个接口的更多详细信息。

sudo ip -d link ls up

将自定义传输队列长度设置为接口

您可以通过修改接口的传输队列长度来控制网络带宽使用情况。传输队列长度是指设备驱动程序允许的最大数据包大小。

sudo ip link set txqueuelen 1500 dev wlp2s0

此命令将无线接口的传输队列长度设置为 1500。我们使用 set link 子命令来设置此值。

为以太网接口启用尾部

尾部封装允许 Linux 内核最大限度地减少接收主机上的内存到内存复制操作,并减少数据包处理时间。此功能仅受以太网接口支持。您可以使用以下 Linux ip 命令在您的系统上启用它。

sudo ip link set dev eth0 trailers on

此命令将为 eth0 设备启用拖车支持。请注意,在启用此功能之前,我们如何首先确定设备。

禁用以太网接口的尾部

使用 ip 实用程序禁用拖车封装也非常容易。只需将上述命令的 on 部分替换为 off 即可执行此操作。

sudo ip link set dev eth0 trailers off

现在,将关闭 eth0 设备的预告片功能。

更改 MAC 地址

如果您想在 Linux 上更改您的 MAC 地址,您可以使用 ip 实用程序轻松完成。首先,使用以下命令关闭接口。

sudo ip link set dev eth0 down

现在,您需要通过发出下一个命令来设置 MAC 地址。

sudo ip link set dev eth0 address 8e:a9:82:9d:6f:ac

此命令将 eth0 接口的 MAC 地址设置为 8e:a9:82:9d:6f:ac。最后,使用以下命令使网络接口联机。

sudo ip link set dev eth0 up

重命名网络接口

您可以使用 Linux ip 命令轻松重命名网络接口。以下命令显示了如何将 eth0 接口重命名为 eth1。

sudo ip link set eth0 down
sudo ip link set eth0 name eth1
sudo ip link set eth1 up

我们需要先禁用接口,然后才能重命名它。您可以使用上述方法重命名系统上的任何网络接口。

查看网络隧道

网络隧道允许我们的系统通过公共互联网发送敏感信息。您可以使用 ip 隧道子命令打印活动隧道的列表。

sudo ip tunnel
sudo ip tunnel show

这两个命令是等效的,将在执行时显示网络隧道列表。

查看 IP 地址路由表

支持 IP 的每个设备都使用某种类型的路由表来评估将正在进行的 IP 数据包重定向到何处。Linux ip 命令允许管理员非常轻松地查看此信息。快速浏览下面的命令以了解其工作原理。

sudo ip route

此命令将打印内核中加载的所有路由信息。您还可以根据需要添加、删除或替换路由条目。

向路由表添加条目

有时,管理员可能需要手动将条目添加到路由表。route 命令允许用户这样做,许多网络管理员仍在使用它。但是,您可以直接使用 ip 命令将条目添加到路由表中。下面的命令通过一个实际示例来说明这一点。

sudo ip route add default via 192.168.1.1 dev wlp2s0

此命令为wlp2s0以太网设备添加默认路由。P地址192.168.1.1是网络的本地网关。因此,上述命令允许通过本地网关路由所有地址到无线设备。

为子网添加路由条目

下面的命令向我们展示了如何使用ip route命令将路由添加到子网。为此,我们需要使用网关,因此将使用默认网关,即192.168.1.1。

sudo ip route add 192.168.1.0/24 via 192.168.1.1

上述命令将通过本地网关 192.168.1.1 向 192.168.1.0/24 网络添加路由。如今,大多数消费级路由器和调制解调器都使用此IP作为网关。

为特定设备添加路由规则

可以轻松地将路由添加到特定网络设备可以随时访问的子网。下面的简单命令将说明 wlp2s0 无线接口的这一点。

sudo ip route add 192.168.1.0/24 dev wlp2s0

上述命令执行完毕后,192.168.1.0/24 范围内的所有地址都可以自由到达 wlp2s0 接口。

从路由表中删除条目

如果要从路由表中删除特定条目,可以使用 ip 实用程序中的路由删除子命令非常轻松地完成。以下命令向您展示如何从 Linux 终端模拟器轻松执行此操作。

sudo ip route delete 192.168.1.0/24 via 192.168.1.1

此命令将删除通过默认网关 192.168.1.1 的 192.168.1.0/24 网络的路由。这是我们在上一个示例中创建的条目。

替换路由表中的条目

我们可以通过使用 Linux ip 命令的路由替换子命令轻松地将条目替换到路由表中。以下示例将为 192.168.1.0/24 子网定义的路由替换为 wlp2s0 接口。

sudo ip route replace 192.168.1.0/24 dev wlp2s0

此命令将创建一个路由(如果尚未指定)。它提供了一种操作现有路由规则的实用方法。

查看地址所走的路线

管理员通常需要指定 IP 地址采用的路由。这有助于解决网络问题并确保数据包以预期的方式传输。下面的示例向我们展示了如何使用 ip 实用程序有效地执行此操作。

sudo ip route get 192.168.1.5

此命令显示为网络上的 IP 地址 192.168.1.5 检索的路径。使用以下命令获取统计信息的概述。

sudo ip -s route get 192.168.1.5

添加持久性静态路由

到目前为止,我们已经了解了如何使用 Linux ip 命令添加或删除静态路由。但是,此路由不是永久性的,将在系统重新启动后消失。您可以通过执行以下任务进行永久更改。

sudo vim /etc/sysconfig/network-scripts/route-wlp2s0
192.168.1.0/24 via 192.168.1.1

添加上述行后退出 vim 或 Linux 文本编辑器。现在重新启动网络管理器。这将在 RHEL 或 CentOS 系统上创建一个永久定义的路由。

sudo vim /etc/network/interfaces
up route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev wlp2s0

现在,要将此路由永久添加到 Debian 或 Ubuntu 发行版中,请设置以下内容。

sudo ip link set wlp2s0 down
sudo ip link set wlp2s0 up

显示组播 IP 地址

多播 IP 地址用于跨网络设备发送或接收多播消息。您可以使用以下简单命令打印系统上可用的所有多播 IP 地址的列表。

sudo ip maddr
sudo ip maddr show

这两个命令是等效的,并显示给定网络的格式正确的多播地址列表。

查看特定设备的多播信息

上述命令显示所有网络设备的多播信息。如果要对特定设备进行故障排除,可以改用以下命令。

sudo ip maddr show dev eth0

在这里,我们使用 dev 选项来指定 wlp2s0 无线接口。它现在将仅打印此特定设备的多播信息。使用计算机上的其中一个设备重命名设备。

添加多播地址

使用 ip 命令添加多播地址非常容易。我们可以通过使用 ip 的 maddr add 子命令轻松做到这一点。看看下面的插图,看看这在现实生活中是如何工作的。

sudo ip maddr add 44:22:00:00:00:01 dev eth0

上述命令为 eth0 网络设备添加组播地址 44:22:00:00:00:01。使用适当的接口重命名接口,并使用所需的接口重命名地址。

记住多播地址

我们还可能删除我们添加的特定网络设备的组播地址。要从 eth0 接口中删除组播地址 44:22:00:00:00:01,请在 Linux 终端中使用以下命令。

sudo ip maddr del 44:22:00:00:00:01 dev eth0

因此,只需使用 ip 的 maddr del 子命令,我们就可以删除组播地址。请务必指定正确的设备,否则最终可能会遇到不需要的多播。

启用组播寻址

如果要为特定接口设置组播寻址模式,请使用以下简单命令。我们将使用 ip 实用程序的链接集子命令来启用组播寻址。

sudo ip link set eth0 multicast on

现在,允许在 eth0 以太网接口上进行组播寻址。

禁用组播寻址

如果您是家庭用户,则可能需要完全禁用多播寻址功能。幸运的是,禁用此功能就像启用它一样简单。请考虑以下示例,了解如何使用 ip 实用程序执行此操作。

sudo ip link set eth0 multicast off

因此,只需对接口使用组播关闭选项,即可关闭此功能。

为接口启用全组播

全组播模式允许接口直接接收所有组播数据包。您可以非常轻松地为特定的网络设备启用它。以下命令说明了 eth0 以太网接口的这一点。

sudo ip link set eth0 allmulticast on

We4 通过使用 set link 子命令并选择了 allmulticast 功能,并使用活动选项启用了全多播功能,从而选择了 eth0 接口。

禁用接口的全组播

您可以通过关闭打开选项一次禁用所有多播。以下命令显示了 eth0 接口的这一点。

sudo ip link set eth0 allmulticast off

现在,此特定网络设备的全多播完全禁用。

查看 ARP 表

IP 邻居表对象或 ARP(地址解析协议)表包含 IP 地址和相应 MAC 地址之间的映射 每次发送网络数据包时,系统首先查看此表以确定它是否已经知道该地址的 MAC。

sudo ip neigh

运行此命令时,ip 将在 Linux 终端模拟器中显示相邻对象或 ARP 表。它显示活动网络设备的 MAC 地址以及其他有用信息。

查看特定设备的 ARP 缓存

您可以通过在开发选项后给出其名称来查找与单个网络设备关联的 ARP 条目。看看下面的例子,看看它是如何工作的。

sudo ip neigh show dev wlp2s0

此命令将显示名为 wlp2s0 的无线网络接口的 ARP 条目。请注意,此无线接口的名称在您的计算机上可能不同,例如 wlan0 或其他名称。因此,请确保使用正确的名称,否则将无法获得所需的结果。

为设备添加 ARP 条目

如果要手动将条目添加到 ARP,可以使用以下简单命令轻松完成。您需要提供要设置的 IP 地址和 MAC。

sudo ip neigh add 192.168.1.1 lladdr 1:2:3:4:5:6 dev eth0

在这里,我们将 1:2:3:4:5:6 MAC 地址映射到 192.168.1.1 IP 地址。我们还将网络接口指定为 eth0。

删除设备的 ARP 条目

您还可以非常轻松地使用 Linux ip 命令删除 ARP 条目。下面的示例显示了如何删除我们在上面示例中创建的 ARP 条目。

sudo ip neigh del 192.168.1.1 dev eth0

此命令将取消 eth0 设备的 ARP 条目。如您所见,neigh del 命令允许我们删除相邻的表对象。

替换 ARP 表中的条目

管理员无需手动删除 ARP 条目,也无需为特定设备创建新条目。他们可以使用 ip 实用程序的相邻替换子命令轻松地将旧条目替换为新条目。以下命令描述了它们的工作原理。

sudo ip neigh replace 192.168.1.1 lladdr 6:5:4:3:2:1 dev eth0

此命令会将 IP 地址 192.168.1.1 的 ARP 条目替换为给定的 MAC 地址。如果此规则尚不存在,它将使用此映射创建一个新条目。

删除 ARP 条目

Linux ip 命令还允许我们删除类似于 IP 地址的 ARP 条目。例如,以下命令将删除 IP 地址 192.168.1.1 的相邻表。

sudo ip -s -s n flush 192.168.1.1

此命令与以下命令相同。在这里,我们使用 flush 子命令的长形式而不是短形式。

sudo ip -s -s n f 192.168.1.1

为 IP 地址输出着色

Linux ip 命令提供了大量数据,因此,用户有时无法找到重要信息。幸运的是,您可以使用 ip 实用程序的 -c 选项为输出着色。

sudo ip -c -4 addr
sudo ip -c link

第一个命令将以不同的颜色显示 IPv4 地址以及接口名称。第二个命令将突出显示 MAC 地址以及接口状态和名称。

生成 JSON 输出

JSON 或 JavaScript 对象表示法是一种被 Web 应用程序以及其他工具广泛使用的数据表示格式。以这种格式存储的数据可以很容易地与许多服务交换。您可以使用以下命令将 ip 命令的结果生成为 JSON 数据。

sudo ip -j route
sudo ip -j link show docker0

只需将 -j 选项添加到您的命令中,ip 就会将终端输出转换为 JSON。

显示版本信息

如果要查看正在使用的 ip 实用程序版本,请使用以下命令。

ip -V

请注意,这是一个大写字母 V,而不是许多 Linux 终端命令使用的小写 v。

显示帮助页面

ip 帮助页面提供了所有可能的命令行参数及其用法的摘要信息。您可以通过多种方式打印此信息。

ip help
ip --help

此命令打印标准帮助页。但是,您也可以显示特定子命令的帮助页面,如以下示例所示。

ip link help
ip route help

第一个命令显示链接子命令的帮助页面,第二个命令显示路由子命令的帮助页面。

显示“人员(手动)”页面

手册或手册页包含有关 Linux IP 命令的各种选项和语法的深入信息。您可以使用以下简单命令显示它。

man ip

这将打印 ip 实用程序的主要手册。您还可以在手册中查看特定条目。仔细看看下面的命令,看看它是如何工作的。

man ip-address
man ip-link

第一个命令显示地址子命令的手册页,第二个命令显示链接子命令的手册页。

© 版权声明
THE END
喜欢就支持一下吧
点赞130赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容