基础连通性测试
ping
ping -c 4 example.com # 发送4个ICMP包测试连通性
- 关键输出:
64 bytes from...
(收到响应)
packet loss
(丢包率)
time=20.3 ms
(延迟) - 中断:
Ctrl+C
traceroute
traceroute example.com # 追踪数据包路径 tracepath example.com # 无需root权限的替代工具
- 作用:显示数据包经过的每一跳(路由器)及延迟,定位网络阻塞点。
网络接口与配置
ip addr / ifconfig
ip addr show # 查看所有接口IP、MAC地址(推荐) ifconfig # 传统工具(部分系统需安装)
- 关键信息:
inet 192.168.1.10
(IPv4地址)
state UP
(接口启用)
MTU 1500
(最大传输单元)
网卡状态与速率
ethtool eth0 # 查看物理网卡状态
- 关注项:
Speed: 1000Mb/s
(速率)、Link detected: yes
(连接正常)。
连接与端口诊断
ss (推荐) / netstat
ss -tunlp # 查看所有监听/建立的连接
- 参数解析:
-t
:TCP连接
-u
:UDP连接
-n
:显示数字地址
-l
:监听中的端口
-p
:显示进程名 - 输出示例:
LISTEN 0:80 *:* users:(("nginx",pid=123))
(Nginx监听80端口)
测试端口连通性
nc -zv example.com 443 # 检查远程端口是否开放 telnet example.com 80 # 测试TCP连接(未安装nc时使用)
DNS解析检查
dig / nslookup
dig example.com # 输出详细DNS解析过程 nslookup example.com # 交互式查询
- 关键字段:
ANSWER SECTION
(解析结果)、SERVER: 8.8.8.8
(使用的DNS服务器)。
高级诊断工具
mtr(实时路径分析)
mtr -rw example.com # 结合ping+traceroute实时监控
- 输出:每跳的丢包率和延迟,按
q
退出。
tcpdump(抓包分析)
sudo tcpdump -i eth0 port 80 # 捕获eth0接口的80端口流量
- 过滤技巧:
host 8.8.8.8
(特定IP)
-w file.pcap
(保存为Wireshark兼容文件)
网络服务测试
curl(HTTP/API检测)
curl -I https://example.com # 仅显示响应头(检查HTTP状态) curl -v http://example.com # 输出详细请求/响应过程
- 关键响应:
HTTP/2 200
(状态码)、Server: nginx
(服务器类型)。
场景化排查指南
问题类型 | 推荐命令 |
---|---|
无法上网 | ping 8.8.8.8 → ip route |
网站无法访问 | curl -v URL → dig URL |
本地服务未响应 | ss -tlp | grep :80 → sudo tcpdump port 80 |
延迟高/丢包 | mtr目标IP → ethtool 网卡名 |
- 快速检查流程:
ping
→ip addr
→ss
→dig
→curl
- 关键原则:
- 从本地到远程逐层排查
- 先检查物理连接(
ethtool
),再分析协议层(tcpdump
) - 善用
-h
查看帮助(如ss -h
)
引用说明基于Linux man手册(v5.15)及网络工程最佳实践,权威参考包括:
- Linux Foundation Networking Guides
man
命令(如man ping
)- Wireshark官方抓包分析文档
通过掌握这些命令,您将能独立解决90%的Linux网络问题,建议在测试环境实操验证,避免生产环境误操作。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4677.html