介绍
在本实验中,你将学习如何使用基本的 Linux 命令来收集网络信息并测试网络连接。这些技能对于系统管理员和网络专业人员诊断和解决网络问题至关重要。我们将逐步引导你完成每个步骤,假设你对 Linux 网络概念是新手。
目标
在本实验结束时,你将能够:
- 使用
ip查看和管理网络接口 - 使用
ping测试网络连接 - 使用
netstat检查网络统计信息
在本实验中,你将学习如何使用基本的 Linux 命令来收集网络信息并测试网络连接。这些技能对于系统管理员和网络专业人员诊断和解决网络问题至关重要。我们将逐步引导你完成每个步骤,假设你对 Linux 网络概念是新手。
在本实验结束时,你将能够:
ip 查看和管理网络接口ping 测试网络连接netstat 检查网络统计信息让我们从使用 ip 命令检查你的网络接口开始。
打开一个终端窗口。你应该会看到一个以 $ 符号结尾的提示符。
输入以下命令并按 Enter 键:
ip addr
此命令显示系统中所有网络接口的信息。
你应该会看到类似以下的输出:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
86484: eth1@if86485: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:14:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.20.0.3/16 brd 172.20.255.255 scope global eth1
valid_lft forever preferred_lft forever
让我们分解一下这个输出:
lo:这是回环接口(loopback interface)。它是计算机用于与自身通信的特殊网络接口。eth1:这是你的主要以太网接口(Ethernet interface)。它用于连接到网络。inet:这一行显示分配给接口的 IP 地址。在本例中,eth1 的 IP 地址是 172.20.0.3。注意:LabEx 的虚拟机环境可能会发生变化,因此你的输出可能会略有不同。重要的是识别输出的结构。
现在,让我们专注于一个特定的网络接口,通常是主以太网连接的 eth1。
在同一个终端窗口中,输入以下命令并按 Enter 键:
ip addr show eth1
此命令显示 eth1 接口的详细信息。
你应该会看到类似以下的输出:
86484: eth1@if86485: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:14:00:03 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.20.0.3/16 brd 172.20.255.255 scope global eth1
valid_lft forever preferred_lft forever
让我们理解一下这个输出:
eth1:这是接口的名称。<BROADCAST,MULTICAST,UP,LOWER_UP>:这些是标志,表示接口的功能和状态。link/ether 02:42:ac:14:00:03:这是接口的 MAC 地址,是网络硬件的唯一标识符。inet 172.20.0.3/16:这是分配给接口的 IPv4 地址,后面是 CIDR 表示法的子网掩码。注意:如果你没有看到 eth1,你的主接口可能具有不同的名称。在这种情况下,请将 eth1 替换为步骤 1 中看到的接口名称。
ping 命令用于测试基本的网络连接。我们将使用它来检查与一个知名服务器的连接。
在终端中输入以下命令并按 Enter 键:
ping -c 4 8.8.8.8
此命令向 Google 的公共 DNS 服务器(IP 地址为 8.8.8.8)发送 4 个 ping 请求。
你应该会看到类似以下的输出:
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=1.61 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=1.55 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=117 time=1.57 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=117 time=1.57 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.545/1.573/1.607/0.022 ms
此输出显示成功的 ping 响应。具体时间可能会因你的环境而有所不同。
注意:如果你看到“100% packet loss”或“Destination Host Unreachable”,可能表示 LabEx 虚拟机中存在网络连接问题。免费账户的网络访问受限,因此你可能需要升级到付费账户以解决此问题。
现在,让我们使用 ping 命令测试域名解析能力。
在终端中输入以下命令并按 Enter 键:
ping -c 4 google.com
此命令与之前的命令类似,但我们使用的是域名(google.com)而不是 IP 地址。
你应该会看到类似以下的输出:
PING google.com (172.217.16.142) 56(84) bytes of data.
64 bytes from ham02s14-in-f14.1e100.net (172.217.16.142): icmp_seq=1 ttl=117 time=11.8 ms
64 bytes from ham02s14-in-f14.1e100.net (172.217.16.142): icmp_seq=2 ttl=117 time=11.7 ms
64 bytes from ham02s14-in-f14.1e100.net (172.217.16.142): icmp_seq=3 ttl=117 time=11.7 ms
64 bytes from ham02s14-in-f14.1e100.net (172.217.16.142): icmp_seq=4 ttl=117 time=11.7 ms
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 11.677/11.719/11.814/0.052 ms
此输出展示了成功的域名解析和连接。IP 地址和具体时间可能会因你的环境而有所不同。
注意:如果你看到类似“could not resolve google.com”的错误,可能表示 LabEx 虚拟机中存在 DNS 问题。免费账户的网络访问受限,因此你可能需要升级到付费账户以解决此问题。
netstat 命令是一个强大的工具,用于查看网络统计信息和活动连接。我们将使用它来查看系统上当前活动的网络连接。
在终端中输入以下命令并按 Enter 键:
sudo netstat -tuln
系统会提示你输入密码。输入密码以继续。
你应该会看到类似以下的输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3002 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.11:42051 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
udp 0 0 0.0.0.0:3001 0.0.0.0:*
udp 0 0 127.0.0.11:40380 0.0.0.0:*
此输出显示了活动的 TCP 和 UDP 连接。具体的端口和地址可能会因你的 LabEx 虚拟机环境而有所不同。
注意:你看到的特定条目将取决于运行命令时 LabEx 虚拟机中运行的服务。
恭喜!你已经完成了网络信息与连接实验。在本实验中,你学习了如何:
ip 命令查看网络接口信息ping 命令测试网络连接和域名解析netstat 命令检查活动网络连接这些工具对于理解和排查 Linux 系统中的网络问题至关重要。随着你在 Linux 系统管理领域的深入学习,你会发现这些命令在诊断和解决网络相关问题方面非常有用。
请记住,LabEx 虚拟机环境可能会发生变化,因此请始终准备好根据具体情况调整这些命令。在不同的场景中练习使用这些命令,以便更熟悉它们的输出和选项。
祝你网络调试愉快!