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

这将显示所有网络接口的配置,包括它们的 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

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip -4 addr

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

ip address show dev [interface]

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip address show dev ens33

查看和更改 MAC 地址

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

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip --brief link show

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

ip --brief link show dev [interface]

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

sudo ip link set dev [interface] down

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

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

之后,调出界面:

sudo ip link set dev ens33 up

查看网络接口统计信息

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip -s link

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip -s link show dev ens33

使用 ip 修改链接属性

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

sudo ip link set [interface] up

要关闭接口,请运行:

sudo ip link set [interface] down

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

sudo ip link set mtu [number] dev [interface]

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
sudo ip link set mtu 8000 dev ens33

在 Linux 上添加/删除 IP 地址

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

ip addr add [ip-address] dev [interface]

要将 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

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

ip addr del [ip-address] dev [interface]

比如要从接口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

在 Linux 上查看路由表

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip route

输出中的每一行代表一个配置的路由。路由由目标网络地址、下一跳(即路由器的 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]

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

sudo ip route add 192.168.30.0/24 via 192.168.174.2

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

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

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

sudo ip route add default via 192.168.30.1 dev ens33
ip route get [ip-address]

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

sudo ip route delete [network-address] via [gateway-ip]

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

ip route get [ip-address]

在 Linux 上管理邻居表

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip neigh show

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

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

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

sudo ip neigh del [ip-address] dev [interface]

为 ip 命令的输出添加颜色

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
ip -c a

在 Linux 上管理网络和 IP 地址

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