长期以来,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命令采用上述形式。在这里,对象可以是几件事情,包括网络接口,IP地址,路由规则,隧道和ARP表。可以使用长格式或缩写形式(例如或地址)来指定每个对象。
1、检查所有网络接口的IP地址和属性
您可以使用以下命令显示系统中所有可用接口的IP地址及其属性。该命令的输出与ifconfig的输出非常相似。
$ sudo ip addr show
您也可以将缩写形式a用于addr。它们是等效的,并显示相同的信息。
$ sudo ip a show
结果应包含所有网络接口的名称及其各自的IP地址。IP信息用术语inet表示。
2、检查特定设备的IP地址和属性
显示所选设备的IP信息也非常容易。只需使用dev选项,然后使用接口名称作为参数即可。
$ sudo ip a show dev wlp2s0
$ sudo ip addr show dev wlp2s0
这里wlp2s0是无线接口。用您要检查的接口名称替换它。例如,以太网接口通常通过eth0表示。但是,这些名称在系统之间可能很容易变化,因此请确保提供主机中存在的名称。
3、仅显示IPv4地址
上面的命令在IP地址旁边显示了很多有用的信息。但是,如果您仅对IP地址本身感兴趣,则可以忽略该额外信息。关闭以下命令,查看其工作原理。
$ sudo ip -4 addr
$ sudo ip -4 addr show
这些命令是等效的,但它们列出了具有活动IPv4地址的接口。但是,它们仍然提供许多额外的信息。您可以使用Linux grep命令来过滤此输出并仅显示IPv4地址。
$ sudo ip -4 addr show | grep -oE ([0-9]{1,3}.){3}[0-9]{1,3}
4、仅显示IPv6地址
我们还可以使用ip实用程序和Linux awk命令仅显示IPv6地址。我们也可以使用grep实用程序,但是它将需要更大的正则表达式模式。
$ sudo ip -6 addr show | awk /inet6/ {print $2}
当运行上述命令时,它将输出接口的所有IPv6地址。
5、添加一个IP地址
Linux IP命令使管理员可以轻松添加新IP地址。在下面的示例中,我们将说明如何向特定的网络设备添加IP地址。请仔细查看语法,以确保您了解正在发生的事情。
$ sudo ip addr add 192.168.1.1/24 dev eth0
此命令将带有网络掩码24的IP地址192.168.1.1添加到以太网接口eth0。只需替换接口名称即可反映其他设备中的更改。
6、添加广播地址
广播地址将网络数据包发送到连接到网络的每个设备。您可以使用以下简单的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服务器中的网络接口本身会获取广播信息。因此,仅应在自己设置网络时分配它。
7、删除IP地址
删除分配给特定网络的IP也非常容易。仔细查看下一个ip命令示例,以了解实际情况。
$ sudo ip addr del 192.168.1.1/24 dev eth0
该命令从以太网接口删除IP地址192.168.1.1/24。
8、刷新IP地址
您将需要多次使用以上命令,才能从不同接口删除所有IP地址。但是,如果您想重新开始,那么刷新IP地址可能是一个不错的开始。
$ sudo ip -s -s a f to 192.168.1.0/24
该命令将删除与网络192.168.1.0/24关联的所有IP地址。您也可以根据其标签刷新IP。
$ sudo ip -4 addr flush label eth*
此命令将刷新系统以太网接口的所有IPv4地址。
9、显示所有可用接口的信息
链接对象代表网络接口。您可以使用以下简单命令显示有关Linux服务器中所有网络接口的信息。
$ sudo ip link
$ sudo ip link show
两者都是等效的,并显示诸如MAC,接口状态等信息。您可以将链接替换为l的缩写。您还可以使用ip命令的-d和-h选项以易于理解的格式获取更多详细信息。
$ sudo ip -d -h link show
10、显示特定设备的接口信息
像IP地址一样,我们也可以显示单个设备的接口信息。您将需要类似地使用dev选项,后跟设备名称,如以下示例所示。
$ sudo ip link show dev eth0
这对排除特定设备很有用,因为它忽略了不必要的信息。使用以下命令以易于阅读的格式获取其他信息。
$ sudo ip -d -h link show dev eth0
11、显示接口的统计数据
统计数据使识别和解决网络问题变得非常容易。您可以使用以下任何命令来轻松显示特定接口的统计信息。
$ 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
12、显示所有接口的统计数据
ip实用程序还允许网络管理员打印出系统中所有可用接口的统计数据。这与上面的命令非常相似。只需省略任何特定接口的名称,ip就会显示所有接口的统计信息。
$ sudo ip -s link show
$ sudo ip -stats link show
$ sudo ip -statistics link show
同样,我们也可以多次使用这些标志以获得更多信息。下面的命令演示了这一点。
$ sudo ip -s -stats -statistics link show
13、启用特定的网络接口
ip命令使将接口联机非常容易。因此,如果您仍在使用ifconfig命令执行此操作,请仔细检查以下示例。
$ sudo ip link set wlp2s0 up
此命令将在系统中启用无线接口wlp2s0。由于许多系统将此接口指定为wlan0,因此请确保根据系统使用适当的设备名称。
14、禁用特定的网络接口
通过使用ip子命令链接集,我们还可以非常轻松地禁用网络。以下示例演示了如何禁用我们在先前示例中刚刚启用的无线接口wlp2s0。
$ sudo ip link set wlp2s0 down
上面的命令将使wlp2s0接口脱机。如果要使用无线接口传输网络数据包,则需要再次启用它。
15、将自定义MTU分配给接口
MTU代表“ 最大传输单位”,并规定了特定网络接口可以发送的数据包的大小上限。您可以使用以下Linux ip命令为接口分配自定义MTU大小。
$ sudo ip link set wlp2s0 mtu 5000
此命令将无线接口wlp2s0的MTU设置为5000。您可以通过检查接口信息来确认更改。
16、使混合模式
混合模式允许接口将所有IP数据包发送到CPU,包括那些不打算到达系统的IP数据包。它通常用于故障排除和网络审核。快速浏览以下命令,以了解如何使用ip命令行工具执行此操作。
$ sudo ip link set wlp2s0 promisc on
当您运行上述命令时,它将打开无线接口的混合模式。您还可以为其他网络接口启用它,只要网络接口控制器支持它即可。
17、列出所有启用的接口
由于您经常使用具有多个接口的系统,因此您可能需要列出当前启用的设备。这将在网络故障排除和系统审核期间派上用场。
$ sudo ip link ls up
此命令将打印出Linux服务器中所有正在运行的网络接口以及它们的常规属性。使用ip命令的-d标志可获取有关每个接口的更多详细信息。
$ sudo ip -d link ls up
18、为接口分配自定义传输队列长度
您可以通过修改接口的传输队列长度来控制网络的带宽使用。传输队列长度是指设备驱动程序允许的最大数据包大小。
$ sudo ip link set txqueuelen 1500 dev wlp2s0
此命令将无线接口的传输队列长度设置为1500。我们使用link set子命令来分配此值。
19、为以太网接口启用Trailers
尾部封装使Linux内核可以最小化接收主机上的内存到内存复制操作,并减少数据包处理时间。仅以太网接口支持此功能。您可以使用以下Linux ip命令在系统上启用此功能。
$ sudo ip link set dev eth0 trailers on
此命令将为eth0设备启用trailers 支持。请注意,在启用此功能之前,我们是如何首先指定设备的。
20、禁用以太网接口的Trailers
使用ip实用程序来禁用trailers 封装也非常简单。只需将上述命令的on部分替换为off即可。
$ sudo ip link set dev eth0 trailers off
现在,eth0设备的trailers 功能将关闭。
21、更改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
22、重命名网络接口
您可以使用Linux ip命令轻松地重命名网络接口。以下命令演示了如何将eth0接口重命名为eth1。
$ sudo ip link set eth0 down
$ sudo ip link set eth0 name eth1
$ sudo ip link set eth1 up
我们需要先禁用接口,然后才能重命名它。您可以使用上述方法重命名系统中的任何网络接口。
23、展示广告网络隧道
网络隧道使我们的系统可以通过公共互联网发送敏感信息。您可以使用ip tunnel子命令打印活动隧道的列表。
$ sudo ip tunnel
$ sudo ip tunnel show
这两个命令都是等效的,并且将在执行时显示网络隧道列表。
24、显示IP路由表
每个启用IP的设备都使用某种路由表来评估将IP数据包重定向到何处。Linux ip命令允许管理员非常轻松地查看此信息。快速浏览以下命令以了解其工作原理。
$ sudo ip route
此命令将打印出内核中加载的所有路由信息。您还可以根据需要添加,删除或替换路由条目。
25、将条目添加到路由表
有时,管理员可能需要手动将条目添加到路由表中。route命令允许用户执行此操作,许多网络管理员仍在使用该命令。但是,您可以直接使用ip命令将条目添加到路由表中。以下命令以一个实际示例说明了这一点。
$ sudo ip route add default via 192.168.1.1 dev wlp2s0
此命令为以太网设备wlp2s0添加默认路由。IP地址192.168.1.1是网络的本地网关。因此,以上命令允许通过本地网关的所有地址到无线设备的路由。
26、添加子网的路由条目
下面的命令向我们展示了如何使用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作为其网关。
27、添加特定设备的路由规则
将路由添加到特定网络设备始终可以访问的子网非常容易。下面的简单命令将针对无线接口wlp2s0进行说明。
$ sudo ip route add 192.168.1.0/24 dev wlp2s0
执行完以上命令后,192.168.1.0 / 24范围内的所有地址都可以自由到达wlp2s0接口。
28、从路由表中删除条目
如果要从路由表中删除特定条目,则可以使用ip实用程序的route delete子命令非常轻松地删除。以下命令向您展示了如何轻松地从Linux终端仿真器执行此操作。
$ sudo ip route delete 192.168.1.0/24 via 192.168.1.1
此命令将通过默认网关192.168.1.1删除网络192.168.1.0/24的路由。这是我们在前面的示例中创建的条目。
29、替换路由表中的条目
我们可以使用Linux ip命令的route replace子命令轻松替换路由表中的条目。以下示例将替换子网192.168.1.0/24到wlp2s0接口的所有已定义路由。
$ sudo ip route replace 192.168.1.0/24 dev wlp2s0
如果尚未定义,则此命令将创建路由。它提供了一种方便的方式来处理现有的路由规则。
30、显示地址采取的路线
管理员通常需要确定IP地址采用的路由。它有助于排除网络问题,并确保按预期方式传输数据包。以下示例向我们展示了如何使用ip实用程序有效地执行此操作。
$ sudo ip route get 192.168.1.5
此命令显示网络中IP地址192.168.1.5所采用的路径。使用以下命令获取统计信息概述。
$ sudo ip -s route get 192.168.1.5
31、添加持久性静态路由
到目前为止,我们已经了解了如何使用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 systemctl restart NetworkManager
现在,要在Debian或Ubuntu发行版上永久添加此路由,请设置以下内容。
$ 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
现在,您需要先降低界面,然后再升高界面以反映此更改。您可以使用以下命令进行操作。
$ sudo ip link set wlp2s0 down
$ sudo ip link set wlp2s0 up
32、显示多播IP地址
组播IP地址用于跨网络设备发送或接收组播消息。您可以使用以下简单命令来打印出系统中所有可用的多播IP地址的列表。
$ sudo ip maddr
$ sudo ip maddr show
这两个命令都是等效的,并显示给定网络的格式正确的多播地址列表。
33、显示特定设备的组播信息
上面的命令显示所有网络设备的多播信息。如果要对特定设备进行故障排除,则可以使用以下命令。
$ sudo ip maddr show dev eth0
在这里,我们使用dev选项来指定wlp2s0无线接口。现在,它将仅打印该特定设备的多播信息。用设备中的任何设备替换设备名称。
34、添加一个多播地址
使用ip命令添加多播地址非常容易。通过使用ip的maddr add子命令,我们可以轻松地做到这一点。快速浏览下图,以了解其在现实生活中的工作原理。
$ sudo ip maddr add 44:22:00:00:00:01 dev eth0
上面的命令为eth0网络设备添加了多播地址44:22:00:00:00:01。用适当的接口替换接口名称,并用所需的接口替换地址。
35、删除多播地址
我们也可以按照添加方式删除特定网络设备的多播地址。要从eth0接口删除多播地址44:22:00:00:00:01,请在Linux终端中使用以下命令。
$ sudo ip maddr del 44:22:00:00:00:01 dev eth0
因此,只需使用ip的maddr del子命令,我们就可以删除多播地址。确保指定正确的设备,否则可能会导致不必要的多播。
36、启用多播寻址
如果要为特定接口设置多播寻址模式,请使用以下简单命令。我们将使用ip实用程序的link set子命令来启用多播寻址。
$ sudo ip link set eth0 multicast on
现在,在以太网接口eth0上允许多播寻址。
37、禁用多播寻址
如果您是家庭用户,则可能要完全禁用多播寻址功能。幸运的是,禁用此功能与启用它一样容易。请仔细查看以下示例,以了解如何使用ip实用程序执行此操作。
$ sudo ip link set eth0 multicast off
因此,只需为接口使用多播关闭选项,就可以关闭此功能。
38、为接口启用所有多播
allmulticast模式允许接口直接接收所有组播数据包。您可以非常轻松地为特定的网络设备启用它。以下命令说明了以太网接口eth0的情况。
$ sudo ip link set eth0 allmulticast on
We4使用link set子命令选择了eth0接口,并使用on选项打开了allmulticast功能。
39、禁用接口的所有多播
您可以通过将on选项切换为off来完全禁用所有多播。以下命令在eth0接口上对此进行了演示。
$ sudo ip link set eth0 allmulticast off
现在,针对此特定的网络设备完全禁用了allmulticast。
40、显示ARP表
ip邻居表对象或ARP(地址解析协议)表包含每当发送网络数据包时IP地址及其各自的MAC地址之间的映射,系统首先在该表中查找以确定它是否已经知道该地址的MAC。
$ sudo ip neigh
运行此命令时,ip将在Linux终端仿真器中显示邻居对象或ARP表。它显示了活动网络设备的MAC地址以及其他有用的信息。
41、显示特定设备的ARP缓存
您可以通过在dev选项之后提供其名称来查找与单个网络设备关联的ARP条目。看下面的例子,看看它一般如何工作。
$ sudo ip neigh show dev wlp2s0
此命令将输出名为wlp2s0的无线网络接口的ARP条目。请注意,此无线接口的名称在您的计算机中可能有所不同,例如wlan0或其他名称。因此,请确保使用正确的名称,否则将无法获得所需的输出。
42、为设备添加ARP条目
如果要手动将条目添加到ARP,可以使用以下简单命令轻松地添加。您需要提供IP地址以及要设置的MAC。
$ sudo ip neigh add 192.168.1.1 lladdr 1:2:3:4:5:6 dev eth0
在这里,我们将MAC地址1:2:3:4:5:6映射到IP地址192.168.1.1。我们还将网络接口指定为eth0。
43、删除设备的ARP条目
您也可以使用Linux ip命令轻松删除ARP条目。下面的示例演示如何删除在上面的示例中创建的ARP条目。
$ sudo ip neigh del 192.168.1.1 dev eth0
此命令将使eth0设备的ARP条目无效。如您所见,neigh del命令允许我们删除邻居表对象。
44、替换ARP表中的条目
管理员无需手动删除ARP条目并为特定设备创建一个新条目。他们可以使用ip实用程序的neigh replace子命令简单地用新条目替换旧条目。下面的命令说明了它是如何工作的。
$ sudo ip neigh replace 192.168.1.1 lladdr 6:5:4:3:2:1 dev eth0
此命令将使用给定的MAC地址替换IP地址192.168.1.1的ARP条目。如果此规则尚不存在,它将使用此映射创建一个新条目。
45、刷新ARP条目
Linux ip命令还允许我们刷新类似于IP地址的ARP条目。例如,以下命令将删除IP地址192.168.1.1的邻居表。
$ sudo ip -s -s n f 192.168.1.1
该命令与以下命令相同。在这里,我们使用的是冲洗子命令的长格式,而不是简短的命令。
$ sudo ip -s -s n flush 192.168.1.1
46、为IP输出着色
Linux ip命令提供了大量数据,因此,用户有时可能很难找到基本信息。幸运的是,您可以使用ip实用程序的-c选项为输出着色。
$ sudo ip -c -4 addr
$ sudo ip -c link
第一个命令将以不同的颜色显示IPv4地址以及接口名称。第二个命令将突出显示MAC地址和接口状态以及名称。
47、生成JSON输出
JSON或JavaScript Object Notation是一种数据表示格式,已被Web应用程序以及其他工具广泛使用。以这种格式存储的数据可以轻松地与许多服务互换。您可以使用以下命令将ip命令的结果生成为JSON数据。
$ sudo ip -j route
$ sudo ip -j link show docker0
只需在命令中添加-j选项,ip会将终端输出转换为JSON。
48、显示版本信息
如果要查看使用的ip实用程序版本,请使用以下命令。
$ ip -V
请注意,它是一个大写字母V,而不是许多Linux终端命令使用的小写字母v 。
49、显示帮助页面
ip的帮助页面提供了所有可能的命令行参数及其用法的摘要信息。您可以通过几种方式打印此信息。
$ ip help
$ ip --help
这些命令将打印标准帮助页面。但是,您也可以显示特定子命令的帮助页面,如以下示例所示。
$ ip link help
$ ip route help
第一个命令显示link子命令的帮助页面,第二个显示route子命令的帮助页面。
50、显示手册页
手册页或手册包含有关Linux IP命令的各种选项和语法的深入信息。您可以使用以下简单命令显示它。
$ man ip
这将打印ip实用程序的主要手册。您也可以在手册中查看特定条目。请仔细查看以下命令,以了解其工作原理。
$ man ip-address
$ man ip-link
第一个命令显示地址子命令的手册页,第二个命令显示链接子命令的手册页。
结束语
Linux ip命令在易于使用但实用的界面中打包了各种Linux网络命令。如果您习惯使用诸如ifconfig和route之类的旧版网络工具,那么现在是时候开始向ip实用程序过渡。
成都联想服务器代理【公司名称】成都鸿盛广达科技有限公司
【代理级别】成都联想服务器总代理
【销售经理】成都鸿盛广达科技有限公司
【联系方式】座机:028-85952921 手机:13981931555
【公司地址】成都市武侯区人民南路四段一号时代数码广场A座17楼