如何在Linux 中使用ip 命令管理網絡

2023.02.02

如何在Linux 中使用ip 命令管理網絡

IP 命令是系統和網絡管理員必備的工具。下面介紹如何使用它來管理Linux 上的網絡和IP 地址。

Linux 管理和故障排除最基本的部分是檢查系統的IP 配置以確保系統具有有效的IP 並且可以在本地網絡上訪問。

Linux 中的ip 命令是一個強大的工具,它不僅可以顯示系統當前的IP 地址,還可以讓您查看和管理網絡接口、IP 地址、路由和ARP 表的當前配置。

讓我們看一下Linux 中ip 命令的一些常見用例。

在Linux 上查找IP 地址

要查找Linux 系統的IP 地址,請使用ip 命令,後跟 address、addr 或選項:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip address
  • 1.
  • 2.

这将显示所有网络接口的配置,包括它们的 IP 地址。

在下面的示例中,您可以看到系统具有三个网络接口:lo(环回地址)、ens33。输出包括以下信息:

  • 第 1 层信息,例如接口功能和物理层连接状态、MTU、接口的操作状态(例如,UP 或 DOWN)以及传输队列长度 (qlen)。
  • 第 2 层信息,例如接口的 MAC 地址。
  • 第 3 层信息包括 IP 地址及其类型(动态 IP 寻址或静态 IP 寻址)。

要显示有关网络接口的简要信息,请使用带有 –brief 选项的 ip 命令,如下所示:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip --brief address show
  • 1.
  • 2.

要仅显示 IPv4 地址信息,请使用以下命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip -4 addr
  • 1.
  • 2.

要查找特定网络接口的 IP 地址信息,请使用以下语法:

ip address show dev [interface]
  • 1.

例如,要查看网络接口ens33的 IP 地址,命令为:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip address show dev ens33
  • 1.
  • 2.

查看和更改 MAC 地址

使用 ip 命令,您还可以查看和更改系统的 MAC 地址。

要查看您的 Linux 系统的 MAC 地址,请使用以下命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip --brief link show
  • 1.
  • 2.

要查看特定接口的 MAC 地址,请使用:

ip --brief link show dev [interface]
  • 1.

要更改 MAC 地址,首先关闭接口:

sudo ip link set dev [interface] down
  • 1.

然后使用以下命令更改接口的 MAC 地址:

sudo ip link set dev [interface] address [new-mac-adddress]
  • 1.

之后,调出界面:

sudo ip link set dev ens33 up
  • 1.

查看网络接口统计信息

使用 ip 命令还可以查看网络接口的统计信息。使用以下 ip 命令查看系统上所有网络接口的统计信息:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip -s link
  • 1.
  • 2.

输出包括传输和接收的字节/数据包、错误、丢弃的数据包、多播等统计信息。要显示特定接口的统计信息,请使用以下语法:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip -s link show dev ens33
  • 1.
  • 2.

使用 ip 修改链接属性

要打开接口,请使用以下 ip 命令:

sudo ip link set [interface] up
  • 1.

要关闭接口,请运行:

sudo ip link set [interface] down
  • 1.

您还可以使用以下命令更改接口的 MTU(最大传输单元):

sudo ip link set mtu [number] dev [interface]
  • 1.

例如,要将网络接口 ens33 的 MTU 设置为 8000,命令为:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ sudo ip link set mtu 8000 dev ens33
  • 1.
  • 2.

在 Linux 上添加/删除 IP 地址

要将 IP 地址添加到网络接口,请使用以下语法:

ip addr add [ip-address] dev [interface]
  • 1.

要将 IP 地址 192.168.42.140/24 添加到网络接口 ens33,命令为:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ sudo ip addr add 192.168.152.130/24 dev ens33
  • 1.
  • 2.

使用以下命令语法从接口中删除 IP 地址:

ip addr del [ip-address] dev [interface]
  • 1.

比如要从接口ens33中删除 IP 地址 192.168.152.130/24,命令为:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ sudo ip addr del 192.168.152.130/24 dev ens33
  • 1.
  • 2.

在 Linux 上查看路由表

ip route命令用于查看和修改Linux系统中的路由。要显示系统的路由表,请使用不带任何选项的 ip route 命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip route
  • 1.
  • 2.

输出中的每一行代表一个配置的路由。路由由目标网络地址、下一跳(即路由器的 IP 地址)、发送数据包的接口和度量(当有多个路由时用于确定首选路由的值可到达目的地)。在这种情况下,具有较低度量的路由是首选。

在上面的示例中,前两个条目表示默认路由,当没有其他路由可用于目标地址时使用默认路由。192.168.174.2 是路由器的 IP 地址。dev ens33 指示将用于将数据包发送到路由器的接口。proto dhcp字段表示默认路由是从 DHCP 获悉的。

第二个条目表示 APIPA 地址(自动专用 IP 寻址)169.254.0.0/16。当主机无法从DHCP 服务器获取 IP 地址时,它会从该网络中为自己分配一个随机 IP 地址。它允许它们与子网中也未能获得 IP 地址的其他主机通信。

src字段表示通过该路由发送数据包时用作源地址的接口的IP 地址。

使用ip修改路由表

要手动添加路由,请使用 ip route 命令,后跟目标网络地址和网关 IP:

sudo ip route add [network-id] via [gateway-ip]
  • 1.

例如,要添加一条路由,将发往 192.168.30.0 网络的所有流量发送到 192.168.174.2 的网关,您可以使用以下命令:

sudo ip route add 192.168.30.0/24 via 192.168.174.2
  • 1.

使用以下命令添加默认路由:

sudo ip route add default via [ip-address] dev [interface]
  • 1.

例如,要添加通过 ens33 将流量定向到路由器 192.168.30.1 的默认路由,命令为:

sudo ip route add default via 192.168.30.1 dev ens33
ip route get [ip-address]
  • 1.
  • 2.

要删除路由表条目,请使用以下语法:

sudo ip route delete [network-address] via [gateway-ip]
  • 1.

您还可以使用以下语法查看地址将采用的路由:

ip route get [ip-address]
  • 1.

在 Linux 上管理邻居表

在 Linux 中可以使用ip neigh命令来查看和修改邻居表,也就是 ARP 表。要查看当前邻居表条目,请使用以下命令:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip neigh show
  • 1.
  • 2.

要在邻居表中添加新条目,请使用以下语法:

sudo ip neigh add [ip-address] lladdr [mac-address] dev [interface]
  • 1.

要从邻居表中删除条目,请使用以下语法:

sudo ip neigh del [ip-address] dev [interface]
  • 1.

为 ip 命令的输出添加颜色

为了使输出更容易和更快地理解,您可以使用-c选项为 ip 命令输出添加颜色:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
⚡ ip -c a
  • 1.
  • 2.

在 Linux 上管理网络和 IP 地址

Linux 中的 ip 命令是用于管理和排除网络连接故障的有用工具。从查看网络接口和修改链接属性到查找 IP 地址和管理路由,ip 命令可让您通过命令行执行多项系统管理任务。