在Linux系统中进行网络测试涉及多个方面,包括连通性、延迟、带宽、路由追踪等。以下是常用的工具和方法,按场景分类整理:
bash
ping example.com # 持续发送ICMP包
ping -c 4 8.8.8.8 # 发送4次后停止
- 用途:检测主机是否在线、网络延迟(RTT)。
- 参数:
- -c N
:指定次数。
- -i N
:设置间隔时间(秒)。
bash
arping -I eth0 192.168.1.1 # 检查局域网IP是否冲突
bash
telnet example.com 80 # 测试80端口是否开放
- 替代工具:若未安装Telnet,使用nc
(Netcat):
bash
nc -zv example.com 443 # 快速测试端口
bash
curl -I https://example.com # 获取HTTP头
curl -v http://example.com # 显示详细连接过程
bash
nmap -sT -p 1-1000 example.com # TCP扫描常用端口
nmap -sU -p 53 8.8.8.8 # UDP端口扫描(如DNS)
bash
iperf3 -s
bash
iperf3 -c server_ip -t 30 # 测试30秒带宽
-R
:反向测试(服务器→客户端)。-P N
:多线程测试。bash
speedtest-cli --simple # 简单输出
speedtest-cli --bytes # 以字节为单位
bash
traceroute example.com # 显示路由跳数
tracepath example.com # 无root权限替代方案
- 注意:部分网络可能禁用ICMP,导致结果不完整。
bash
mtr -rw example.com # 综合ping+traceroute
- 参数:
- -r
:生成报告。
- -c N
:指定探测次数。
bash
dig example.com A # 查询A记录
dig @8.8.8.8 example.com # 指定DNS服务器
bash
nslookup example.com
bash
tcpdump -i eth0 port 80 -w capture.pcap # 抓取80端口流量
- 分析工具:用Wireshark打开.pcap
文件。
bash
ss -tulnp # 查看所有监听端口
netstat -tuln # 旧版替代方案
bash
iptables -L -n -v # IPv4规则
nft list ruleset # nftables规则
bash
tc qdisc add dev eth0 root netem loss 10% # 模拟10%丢包
tc qdisc del dev eth0 root # 恢复
#!/bin/bash
TARGET="example.com"
ping -c 4 $TARGET && echo "Ping OK" || echo "Ping FAIL"
nc -zv $TARGET 80 2>&1 | grep "succeeded" && echo "Port 80 OPEN" || echo "Port 80 CLOSED"
curl
或telnet
测试端口。iperf3
服务端与客户端版本兼容。/etc/resolv.conf
更换DNS服务器(如8.8.8.8
)。通过组合上述工具,可以全面诊断网络问题。如需更深入分析,建议结合Wireshark抓包。