睿诚科技协会

测试网络连通用什么命令?

用于测试网络连通性的最常用命令是 ping

测试网络连通用什么命令?-图1
(图片来源网络,侵删)

下面我将详细介绍 ping 命令以及其他几个在特定场景下非常有用的网络测试命令。


ping - 最常用、最基础的连通性测试

ping 命令通过发送 ICMP Echo Request(回显请求) 数据包到目标主机,并等待对方的 ICMP Echo Reply(回显应答) 来测试网络连通性,它就像是你在山谷里喊一声,然后听有没有回音。

基本语法

ping [选项] 目标主机
  • 目标主机 可以是一个域名(如 www.google.com)或一个 IP 地址(如 8.8.8)。

示例

示例 1:测试是否能连接到百度

ping www.baidu.com

你会看到类似下面的输出,显示发送和接收的数据包数量、往返时间(RTT)和丢包率。

测试网络连通用什么命令?-图2
(图片来源网络,侵删)
Pinging www.a.shifen.com [182.61.200.7] with 32 bytes of data:
Reply from 182.61.200.7: bytes=32 time=15ms TTL=118
Reply from 182.61.200.7: bytes=32 time=16ms TTL=118
Reply from 182.61.200.7: bytes=32 time=14ms TTL=118
Reply from 182.61.200.7: bytes=32 time=15ms TTL=118
Ping statistics for 182.61.200.7:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 14ms, Maximum = 16ms, Average = 15ms
  • Reply from ...: 表示收到了目标主机的响应,网络是通的。
  • Lost = 0 (0% loss): 表示没有数据包丢失,连接质量很好。
  • time=15ms: 表示数据包往返一次用了15毫秒,延迟较低。

示例 2:测试是否能连接到本地路由器 路由器的内网 IP 地址是 168.1.1168.0.1

ping 192.168.1.1

如果这个命令不通,说明你的电脑和路由器之间的物理连接可能有问题(如网线松动)。

示例 3:发送指定数量的数据包 默认情况下,ping 会一直发送数据包,直到你手动按 Ctrl+C 停止,你可以使用 -c (count) 选项来指定发送次数。

# 只发送4个数据包
ping -c 4 www.google.com

示例 4:改变数据包大小 可以使用 -s (size) 选项来改变发送数据包的大小(以字节为单位)。

测试网络连通用什么命令?-图3
(图片来源网络,侵删)
# 发送1400字节的数据包
ping -s 1400 8.8.8.8

traceroute (Linux/macOS) / tracert (Windows) - 路径诊断

当你 ping 一个不通的网站时,ping 只能告诉你“到不了”,但不知道问题出在哪一段路径上。traceroute (或 tracert) 就是为了解决这个问题而生的。

它会显示数据包从你的电脑到目标主机所经过的每一台路由器(一跳一跳)。

基本语法

# Linux / macOS
traceroute [目标主机]
# Windows
tracert [目标主机]

示例

traceroute www.google.com

输出会像这样,每一行代表一跳:

traceroute to www.google.com (142.250.196.68), 30 hops max, 60 byte packets
 1  gateway (192.168.1.1)  1.234 ms  1.123 ms  1.456 ms
 2  isp-core-router-1 (203.0.113.10)  15.678 ms  16.234 ms  15.890 ms
 3  ... (中间的路由器)
 4  ... (中间的路由器)
 5  www.google.com (142.250.196.68)  145.678 ms  144.321 ms  146.098 ms
  • 如果某一行显示 ,表示数据包在这一跳丢失了,这就是网络故障发生的位置。
  • 如果最后一行不通,但前面的跳都正常,说明问题出在目标网络或目标主机本身。

nslookup / dig - DNS 查询测试

有时候你无法访问一个网站,但能 ping 通它的 IP 地址,这很可能是 DNS (域名系统) 解析出了问题,DNS 的作用是把域名(如 www.github.com)翻译成 IP 地址。

nslookup (更通用,Windows/Linux/macOS 都有)

nslookup www.github.com

输出会显示域名对应的 IP 地址和 DNS 服务器的信息。

Server:  192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
Name:    www.github.com
Address: 140.82.121.3

如果这里无法解析出 IP 地址,或者解析出的 IP 是错误的,那就是 DNS 问题。

dig (更强大,主要用于 Linux/macOS)

dig 提供比 nslookup 更详细、更专业的 DNS 信息。

dig www.github.com

telnet / nc (netcat) - 端口连通性测试

ping 只测试网络层的连通性,但很多服务(如网页、邮件)运行在特定的 端口 上,即使 ping 通了服务器,如果目标端口被防火墙阻挡或服务未启动,你仍然无法使用该服务。

telnetnc 可以测试到特定端口的 TCP 连接。

telnet

# 测试是否能访问 github.com 的 80 端口 (HTTP)
telnet github.com 80

如果连接成功,你会看到一个空白屏幕,光标在闪烁,这表示 TCP 连接已经建立,如果连接失败,会显示 "Connection refused" 或 "Could not open connection"。

nc (netcat)

nc 更灵活,功能更强大。

# 测试是否能访问 github.com 的 443 端口 (HTTPS)
nc -zv github.com 443
  • -z: 表示只扫描端口,不发送数据。
  • -v: 表示显示详细信息(verbose)。 成功输出会类似:Connection to github.com 443 port [tcp/https] succeeded!

总结与排查流程

命令 用途 关键信息
ping 测试网络层基本连通性 是否收到回复、丢包率、延迟
traceroute / tracert 定位网络故障的具体位置 数据包经过的每一跳,在哪一跳丢失
nslookup / dig 测试 DNS 解析是否正常 域名是否能正确解析为 IP 地址
telnet / nc 测试特定端口的 TCP 连通性 服务端口是否开放、可连接

一个简单的网络问题排查流程:

  1. ping 8.8.8.8 (Google 的公共 DNS)
    • 如果通:说明你的电脑能连上互联网,问题可能出在 DNS 或特定网站。
      • 继续 ping www.google.com
      • 如果不通,运行 nslookup www.google.com,检查 DNS 是否有问题。
    • 如果不通:说明你的电脑无法访问互联网。
      • ping 你的路由器IP (如 168.1.1)。
      • 如果通,说明问题出在路由器或你的网络设置上,尝试重启路由器。
      • 如果不通,检查网线、Wi-Fi 连接,或电脑的网络配置。
分享:
扫描分享到社交APP
上一篇
下一篇