Linux 网络测试是系统管理和运维工作中不可或缺的一部分,它帮助管理员诊断网络连接问题、性能瓶颈以及安全漏洞,通过一系列命令行工具,可以全面测试网络的连通性、延迟、带宽、稳定性等关键指标,本文将详细介绍 Linux 环境下常用的网络测试方法、工具及其使用场景,并结合实际案例说明操作步骤。

基础连通性测试
连通性测试是网络诊断的第一步,主要用于确认目标主机是否可达,以及网络路径中是否存在故障,最常用的工具是 ping 和 traceroute(在 macOS 系统中为 traceroute,Linux 中为 traceroute 或 tracepath)。
-
ping 命令
ping通过发送 ICMP 回显请求包来测试目标主机的可达性,并统计往返时间(RTT),测试与百度服务器的连通性:ping -c 4 www.baidu.com
-c参数指定发送包的数量,输出结果会显示发送/接收包的数量、丢失率以及最小/最大/平均 RTT,若出现 "Destination Host Unreachable",则表明目标主机不可达或网络路径存在故障。 -
traceroute 命令
traceroute用于显示数据包到达目标主机所经过的路由路径,并检测每一跳的延迟。
(图片来源网络,侵删)traceroute -n www.baidu.com
-n参数禁止将 IP 地址解析为主机名,加快输出速度,输出结果中,每一跳对应一个路由器,若某跳显示 ,则可能是该路由器禁用了 ICMP 或存在防火墙拦截。
网络性能测试
当确认连通性后,若存在延迟高、带宽不足等问题,需进一步进行性能测试,常用工具包括 iperf3、netperf 和 wget/curl。
-
iperf3 测试带宽
iperf3是一款专业的网络性能测试工具,可测试 TCP 和 UDP 协议下的吞吐量,测试需分为服务端和客户端:- 服务端(在目标主机运行):
iperf3 -s -p 5200
-s表示启动服务端,-p指定监听端口。
(图片来源网络,侵删) - 客户端(在本地主机运行):
iperf3 -c <服务端IP> -p 5200 -t 10
-c指定服务端 IP,-t测试时长为 10 秒,输出结果会显示带宽(bps)、抖动(jitter)和丢包率。
- 服务端(在目标主机运行):
-
netperf 测试不同协议性能
netperf支持测试 TCP_RR(请求响应)、TCP_STREAM(流式传输)等多种模式,适用于复杂网络环境,例如测试 TCP_STREAM 吞吐量:netperf -H <服务端IP> -t TCP_STREAM
-
wget/curl 测试下载速度
若需测试 HTTP/HTTPS 协议的实际下载速度,可使用wget的--limit-rate参数或curl的--speed-time选项。wget -O /dev/null http://testfile.org/downloads/100mb.bin
通过下载大文件并统计耗时,可计算实际下载带宽。
网络接口与协议分析
除了端到端测试,还需检查本地网络接口状态和协议配置,常用工具包括 ip、ss 和 netstat。
-
ip 命令查看接口信息
ip addr show
显示网络接口的 IP 地址、子网掩码、MAC 地址等信息,若接口未启用,可使用
ip link set <接口名> up激活。 -
ss 命令监控连接状态
ss -tulnp
-t显示 TCP 连接,-u显示 UDP 连接,-l仅显示监听端口,-n禁止域名解析,-p显示进程 ID,通过该命令可排查端口占用或异常连接。 -
netstat 与路由表检查
netstat -rn
显示路由表(
-r)并以数字形式显示地址(-n),可用于检查默认网关或特定路由是否正确配置。
高级网络诊断工具
对于复杂网络问题,可结合 tcpdump、wireshark(图形化)和 mtr 等工具进行深度分析。
-
tcpdump 抓包分析
tcpdump -i eth0 -w capture.pcap host <目标IP> and port 80
-i指定接口,-w将抓包结果保存到文件,后续可通过wireshark打开分析。 -
mtr 结合 ping 和 traceroute
mtr -r -c 10 www.baidu.com
-r以报告形式输出,-c指定发送包数量,mtr会持续跟踪每一跳的延迟和丢包情况,比traceroute更适合动态网络诊断。
网络测试结果分析与优化
测试完成后,需根据结果定位问题。
- 丢包率高:检查中间路由器或防火墙配置,或更换网络路径。
- 延迟高:排查网络拥塞、物理距离过远或设备性能瓶颈。
- 带宽不足:确认运营商带宽限制,或优化服务器配置(如调整 TCP 窗口大小)。
以下表格总结了常用网络测试工具及其用途:
| 工具名称 | 主要用途 | 常用参数示例 |
|---|---|---|
| ping | 测试主机可达性 | -c 4, -i 2 |
| traceroute | 路径追踪 | -n, -I(使用 ICMP) |
| iperf3 | 带宽与吞吐量测试 | -s, -c, -t 10, -p 5200 |
| netperf | 多协议性能测试 | -H, -t TCP_STREAM |
| ss | 连接状态监控 | -tulnp |
| tcpdump | 抓包分析 | -i eth0, -w capture.pcap |
| mtr | 动态路径诊断 | -r, -c 10 |
相关问答 FAQs
Q1: 为什么 ping 某个主机时显示 "Request timeout"?
A: "Request timeout" 表示目标主机未在规定时间内响应 ICMP 请求,可能的原因包括:目标主机禁用了 ICMP 协议、中间路由器过滤了 ICMP 包、或网络延迟过高,可通过 traceroute 检查路径中哪一跳出现问题,或尝试使用 tcping(测试 TCP 端口连通性)进一步排查。
Q2: 如何测试内网与外网之间的带宽瓶颈?
A: 可分两步进行:
- 在内网服务器部署
iperf3服务端,内网客户端连接测试,确认内网带宽。 - 在外网客户端连接内网服务端(需配置端口映射或防火墙规则),测试内外网带宽。
对比两次结果,若内网带宽达标但外网带宽低,则瓶颈可能在运营商出口或防火墙限速。
