如何检查 Linux 中是否配置了网络路由

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查 Linux 系统中是否配置了网络路由。理解网络路由是诊断连接问题的基础。你将探索不同的方法来显示和验证路由表,包括使用现代的 ip route show 命令和较旧的 route -n 实用工具。最后,你将学习如何检查 /etc/network 中的网络配置文件,以了解如何在系统中持久地配置路由。完成这个实验后,你将掌握检查和理解 Linux 机器上网络路由的必要技能。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/cat -.-> lab-558743{{"如何检查 Linux 中是否配置了网络路由"}} linux/ip -.-> lab-558743{{"如何检查 Linux 中是否配置了网络路由"}} end

使用 ip route show 显示路由

在这一步中,你将学习如何使用 ip route show 命令在你的 Linux 系统上显示路由表。路由表是一组规则,用于确定网络流量的导向。理解路由表对于排查网络连接问题至关重要。

ip 命令是 Linux 中用于网络配置的强大实用工具。它是 ifconfigroute 等旧工具的现代替代品。

要显示路由表,请打开终端并输入以下命令:

ip route show

按下回车键。

你将看到类似如下的输出:

default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.2

让我们来详细分析一下这个输出:

  • default:这是默认路由。如果系统不知道如何到达特定的目标网络,它会将流量发送到默认路由指定的网关。
  • via 172.17.0.1:这表示默认路由的网关 IP 地址。
  • dev eth0:这指定了流量将通过的网络接口 (eth0)。
  • 172.17.0.0/16:这代表一个网络范围(子网)。/16 是 CIDR 表示法,用于指示子网掩码。
  • proto kernel:这意味着该路由是由内核添加的。
  • scope link:这表明目标直接连接在该链路上。
  • src 172.17.0.2:这显示了通过此路由的流量将使用的源 IP 地址。

根据你 LabEx 环境的网络配置,你的输出可能会略有不同,但总体结构是相似的。

ip route show 命令对于理解系统如何路由网络流量至关重要。它能帮助你了解不同目标使用的是哪个接口,以及默认路由使用的是哪个网关。

多练习运行几次这个命令,以便熟悉它。

点击 继续 进入下一步。

使用 route -n 验证路由

在上一步中,你使用了 ip route show 命令来显示路由表。另一个常用的查看路由表的命令是 route。虽然 ip 是更现代的工具,但 route 仍然被广泛使用,了解它也很有用。

route 命令在使用 -n 选项时,会使用数字地址来显示路由表,而不是尝试解析主机名。这样通常更快,并且可以避免潜在的 DNS 问题。

让我们使用 route -n 命令来查看路由表。打开终端并输入:

route -n

按下回车键。

你将看到类似如下的输出:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.17.0.1      0.0.0.0         UG    0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0

让我们将这个输出与 ip route show 的输出进行比较:

  • Destination(目标):此列显示目标网络或主机。0.0.0.0 表示默认路由。
  • Gateway(网关):这是该路由的网关 IP 地址。此列中的 0.0.0.0 通常意味着目标是直接连接的。
  • Genmask(通用掩码):这是目标网络的网络掩码(子网掩码)。默认路由的 0.0.0.0 表示它匹配所有目标。
  • Flags(标志):这些标志指示路由的特性。
    • U:路由处于启用状态。
    • G:路由使用网关。
  • Iface(接口):这是该路由使用的网络接口。

注意 route -n 是如何以表格形式呈现信息的,一些用户认为这种形式一目了然,更容易阅读。ip route showroute -n 都提供了关于路由表的相似信息,但显示方式不同。

理解这两个命令将使你在处理 Linux 网络配置时更具灵活性。

点击 继续 进入下一步。

检查 /etc/network 中的网络配置

在前面的步骤中,你学习了如何使用 ip route showroute -n 查看活动路由表。现在,让我们来看看在像 Ubuntu 这样基于 Debian 的系统上,一些网络配置可能存储在哪里。

网络配置文件通常位于 /etc 目录下,该目录是系统配置文件的典型存储位置。网络接口配置的常见位置是 /etc/network/interfaces 文件。

我们将使用 cat 命令来显示该文件的内容。cat 是一个简单的命令,它按顺序读取文件并将其内容打印到标准输出。

打开终端并输入以下命令:

cat /etc/network/interfaces

按下回车键。

你将看到类似如下的输出:

## interfaces(5) file used by ifup(8) and ifdown(8)
## Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

让我们来分析一下这些内容:

  • # 开头的行是注释,会被忽略。
  • source-directory /etc/network/interfaces.d:这一行表明 /etc/network/interfaces.d 目录中的配置文件也应被包含进来。这允许进行模块化的网络配置。
  • auto lo:这一行告诉系统在启动时自动启用 lo 接口(回环接口)。
  • iface lo inet loopback:这将 lo 接口配置为使用 inet(IPv4)地址族的回环接口。
  • auto eth0:这告诉系统在启动时自动启用 eth0 接口。eth0 是第一个以太网网络接口的常见名称。
  • iface eth0 inet dhcp:这将 eth0 接口配置为使用 DHCP(动态主机配置协议)自动获取其 IP 地址和其他网络设置。

这个文件为网络接口提供了静态配置。虽然现代系统通常使用 Netplan 或 NetworkManager 等工具进行更动态的配置,但了解 /etc/network/interfaces 文件仍然很有价值,因为它存在于许多系统中,并且能清晰展示基本的接口设置。

你现在已经了解了如何查看活动路由表以及检查常见的网络配置文件。这让你对 Linux 中网络设置的管理方式有了基本的了解。

点击 继续 完成本次实验。

总结

在本次实验中,你学习了如何检查 Linux 中是否配置了网络路由。你首先使用 ip route show 命令来显示系统的路由表,了解了输出中的不同组成部分,如默认路由、网关、网络接口和子网。这个命令是进行网络配置和故障排除的现代且强大的工具。

你还学习了如何使用 route -n 命令验证路由,该命令以数字格式提供了路由表的更传统视图。最后,你探索了如何检查位于 /etc/network 中的网络配置文件,以了解系统上的网络接口和路由是如何持久配置的。这些步骤为理解和解决 Linux 环境中的网络连接问题提供了必要的技能。