Linux ping 命令实用示例

LinuxLinuxBeginner
立即练习

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

介绍

在本实验中,你将学习如何使用 Linux 的 ping 命令来测试本地主机与远程主机之间的连通性。实验涵盖了 ping 命令的基础知识,包括 ping 本地回环接口和远程主机。你还将学习如何使用 ping 命令来排查网络问题。实验提供了实际示例和逐步指导,帮助你理解并有效地在网络和通信任务中应用 ping 命令。

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/SystemInformationandMonitoringGroup -.-> linux/hostname("Hostname Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") subgraph Lab Skills linux/hostname -.-> lab-422858{{"Linux ping 命令实用示例"}} linux/ifconfig -.-> lab-422858{{"Linux ping 命令实用示例"}} linux/netstat -.-> lab-422858{{"Linux ping 命令实用示例"}} linux/ping -.-> lab-422858{{"Linux ping 命令实用示例"}} linux/curl -.-> lab-422858{{"Linux ping 命令实用示例"}} end

理解 ping 命令的基础知识

在这一步中,你将学习 Linux 中 ping 命令的基础知识。ping 命令是一种网络诊断工具,用于测试本地主机与远程主机之间的连通性。它向目标主机发送 Internet 控制消息协议(ICMP)回显请求数据包,并等待 ICMP 回显回复。

首先,让我们尝试 ping 本地回环接口:

ping 127.0.0.1

示例输出:

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.027 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.024 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.025 ms
^C
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 0.024/0.025/0.027/0.001 ms

ping 命令向回环地址 127.0.0.1 发送 ICMP 回显请求数据包,并显示响应时间和其他统计信息。按下 Ctrl+C 可以停止 ping。

接下来,让我们尝试 ping 一个远程主机,例如 google.com

ping google.com

示例输出:

PING google.com (142.250.184.78) 56(84) bytes of data.
64 bytes from lax34s15-in-f14.1e100.net (142.250.184.78): icmp_seq=1 ttl=117 time=12.3 ms
64 bytes from lax34s15-in-f14.1e100.net (142.250.184.78): icmp_seq=2 ttl=117 time=12.1 ms
64 bytes from lax34s15-in-f14.1e100.net (142.250.184.78): icmp_seq=3 ttl=117 time=12.2 ms
^C
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 12.100/12.200/12.300/0.100 ms

ping 命令将主机名 google.com 解析为其 IP 地址 142.250.184.78,并向该地址发送 ICMP 回显请求数据包。响应时间和其他统计信息会被显示出来。

测试本地和远程主机的连通性

在这一步中,你将学习如何使用 ping 命令测试与本地和远程主机的连通性。

首先,让我们使用 IP 地址 ping 本地主机:

ping 192.168.1.1

示例输出:

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.035 ms
^C
--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 0.034/0.037/0.041/0.003 ms

接下来,让我们使用主机名 ping 一个远程主机:

ping github.com

示例输出:

PING github.com (140.82.121.4) 56(84) bytes of data.
64 bytes from lb-140-82-121-4-iad.github.com (140.82.121.4): icmp_seq=1 ttl=54 time=24.3 ms
64 bytes from lb-140-82-121-4-iad.github.com (140.82.121.4): icmp_seq=2 ttl=54 time=24.1 ms
64 bytes from lb-140-82-121-4-iad.github.com (140.82.121.4): icmp_seq=3 ttl=54 time=24.2 ms
^C
--- github.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 24.100/24.200/24.300/0.100 ms

ping 命令将主机名 github.com 解析为其 IP 地址 140.82.121.4,并向该地址发送 ICMP 回显请求数据包。

使用 ping 命令排查网络问题

在这一步中,你将学习如何使用 ping 命令排查网络问题。

首先,让我们尝试 ping 一个无法访问的主机:

ping 8.8.8.8

示例输出:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2000ms

在这种情况下,ping 命令显示 100% 的数据包丢失,表明该主机无法访问。

接下来,让我们尝试 ping 一个响应时间较长的主机:

ping slowweb.com

示例输出:

PING slowweb.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=1000 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=54 time=1001 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=54 time=1000 ms
^C
--- slowweb.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 1000.000/1000.333/1001.000/0.577 ms

在这种情况下,ping 命令显示非常高的响应时间,这可能表明存在网络性能问题。

最后,让我们尝试 ping 一个数据包丢失率较高的主机:

ping lossy.com

示例输出:

PING lossy.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=100 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=54 time=100 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=54 time=100 ms
64 bytes from 93.184.216.34: icmp_seq=4 ttl=54 time=100 ms
^C
--- lossy.com ping statistics ---
4 packets transmitted, 4 received, 50% packet loss, time 3003ms
rtt min/avg/max/mdev = 100.000/100.000/100.000/0.000 ms

在这种情况下,ping 命令显示 50% 的数据包丢失,这可能表明存在网络问题。

总结

在本实验中,你学习了 Linux 中 ping 命令的基础知识,这是一个用于测试本地主机与远程主机之间连通性的网络诊断工具。你从 ping 本地回环接口 127.0.0.1 开始,然后 ping 了远程主机 google.com。你还学习了如何使用 ping 命令测试与本地和远程主机的连通性,以及如何使用 ping 命令排查网络问题。

Linux 命令速查表