Skip to content

运维网络排错必备命令大全:从连通性到抓包全流程排查

在日常运维工作中,网络异常是最高频的线上故障:网站打不开、接口调用超时、服务器内网不通、域名解析失败、端口访问拒绝、跨机房丢包等问题层出不穷。网络故障排查讲究由浅入深、从链路到细节,一套标准化的命令排查流程,能大幅缩短故障处理时长。

本文整理运维100%线上通用的网络排错命令,按照「连通性测试→端口检测→DNS解析→路由追踪→流量抓包→网卡配置」的真实排错逻辑排序,附带实战用法、故障场景和避坑技巧,可直接收藏作为线上网络故障排查手册。

适用场景:网站访问异常、接口超时、内网互通失败、域名解析错误、端口占用/不通、网络丢包延迟、服务器对外访问异常

一、前言:标准网络排错思路

线上网络故障统一排查顺序,新手可直接套用:

  1. 本机网卡是否正常 → 2. 本机与外网/内网是否连通 → 3. 端口是否监听/放行 → 4. 域名DNS是否解析正常 → 5. 路由链路是否丢包延迟 → 6. 流量是否异常、请求是否报错

二、基础连通性排查命令(第一层排错)

用于快速判断服务器网络是否通畅、是否断网,是网络故障排查的第一步,优先执行。

1. ping 连通性测试

作用:检测本机与目标IP/域名的网络连通性,判断是否丢包、延迟过高、主机不可达。

常用语法

# 测试公网连通性
ping www.baidu.com
# 测试内网服务器连通性
ping 192.168.1.100
# 指定发包次数(Linux默认无限ping,需手动终止)
ping -c 4 www.baidu.com

故障判断

  • 能正常返回延迟数值:网络链路通畅,问题不在基础连通
  • Request timed out:目标主机不可达、防火墙拦截、对方禁ping
  • Destination Host Unreachable:无路由、内网IP错误、网卡异常

避坑:部分服务器、云厂商安全组会禁用ping,ping不通不代表业务不通,需结合curl进一步验证。

2. curl 业务连通测试(运维最常用)

作用:ping仅检测链路,curl可直接检测端口、HTTP服务、接口状态,精准排查业务可用性。

常用语法

# 访问网页/接口,查看返回内容
curl https://www.baidu.com
# 查看完整请求响应头、状态码(排错核心)
curl -I https://www.baidu.com
# 测试指定端口是否通畅
curl 192.168.1.100:8080
# 超时时间设置,避免卡死
curl --connect-timeout 3 目标地址

常见报错解析

  • Connection refused:端口未监听、服务未启动、端口配置错误
  • Connection timed out:防火墙/安全组拦截、网络不通、对方服务阻塞
  • 4xx/5xx:网络通畅,业务代码/服务内部异常

3. wget 资源下载测试

作用:测试服务器对外网络访问能力,常用于检测外网资源拉取、环境依赖下载是否正常。

# 测试外网访问
wget https://www.baidu.com
# 不下载文件,仅测试连通
wget --spider 目标链接

三、网卡与本机网络信息排查

网络异常先查本机,确认网卡IP、网关、MAC地址是否配置正常,避免本机配置问题导致的网络故障。

1. ip addr / ifconfig

作用:查看本机网卡IP、网卡状态、MAC地址,CentOS7+ 优先使用 ip 命令。

核心场景

  • 排查网卡未启动、IP丢失、IP配置冲突问题
  • 确认内网/公网IP是否正确,排查IP绑定异常

2. route -n

作用:查看服务器路由表,排查网关缺失、路由配置错误导致的跨网段访问失败。

排错要点:若无默认网关(0.0.0.0路由),服务器无法访问外网,是内网服务器无法出网的常见原因。

四、端口排查命令(业务故障核心)

90%的业务网络故障都是端口问题:服务未监听、端口占用、防火墙拦截、端口冲突。以下命令用于精准定位端口异常。

1. ss(运维首选,替代netstat)

作用:查询服务器监听端口、连接状态、端口对应进程,速度快、资源占用低。

# 查看所有监听端口(核心命令)
ss -tulpn
# 查看所有已建立的连接
ss -an | grep ESTABLISHED

参数释义:t(tcp)、u(udp)、l(监听)、p(进程)、n(数字端口不解析)

2. netstat 端口查询

兼容旧系统,用法与ss一致,用于老旧服务器端口排查。

netstat -tulpn

3. lsof 端口占用排查

作用:精准查询指定端口被哪个进程占用,解决端口冲突、服务启动失败问题。

# 查看8080端口占用进程
lsof -i:8080

端口故障总结:服务启动失败先查端口,端口无监听=服务未启动/配置错误;端口被占用=进程冲突,需杀进程换端口。

五、DNS域名解析排查

域名无法访问、域名解析超时、域名跳转异常,均为DNS解析问题,是外网业务高频故障。

1. nslookup 域名解析测试

作用:检测域名是否能正常解析为IP,排查DNS服务器故障。

nslookup www.baidu.com

故障判断:返回Server failed/timeout,代表服务器DNS配置异常,需修改 /etc/resolv.conf DNS配置。

2. dig 精准解析查询

作用:比nslookup更详细,可查看解析链路、TTL、域名记录类型,适合复杂DNS故障排查。

dig www.baidu.com

六、路由链路追踪(丢包、延迟排查)

业务访问卡顿、偶尔超时、跨机房访问延迟高,大概率是链路路由丢包,通过追踪命令定位故障节点。

1. traceroute 路由追踪

作用:追踪数据包从本机到目标地址经过的所有路由节点,定位丢包、延迟节点。

traceroute www.baidu.com

2. mtr 综合链路检测(排错神器)

作用:结合ping和traceroute功能,持续检测链路各节点丢包率,是排查间歇性网络超时的核心命令。

# 测试100次数据包,查看链路丢包
mtr -c 100 www.baidu.com

场景:解决偶尔接口超时、网络不稳定、随机丢包等疑难杂症。

七、流量抓包分析(深度故障排查)

常规命令无法定位的疑难网络问题:请求丢失、参数异常、TCP握手失败、重复请求,需通过抓包分析原始流量。

tcpdump Linux原生抓包

作用:服务器原生抓包工具,无需安装,用于抓取网卡流量、分析请求交互过程。

# 抓取指定网卡所有流量
tcpdump -i eth0
# 抓取8080端口流量
tcpdump -i eth0 port 8080
# 抓取指定IP的流量
tcpdump -i eth0 host 192.168.1.100
# 保存抓包文件,可在Wireshark打开分析
tcpdump -i eth0 port 8080 -w net.pcap

八、防火墙网络权限排查

网络通畅、端口监听正常,但依旧无法访问,99%是防火墙拦截。

# CentOS7 查看防火墙状态
systemctl status firewalld
# 查看已放行端口
firewall-cmd --list-ports
# 临时放行端口
firewall-cmd --add-port=8080/tcp --permanent
# 重载防火墙规则
firewall-cmd --reload

云服务器重点:除了服务器防火墙,还需检查云平台安全组,安全组未放行端口会导致外网无法访问。

九、网络排错标准流程(直接套用)

遇到网络故障,按以下顺序排查,杜绝盲目操作,快速定位问题:

  1. 本机检测:ip addr 确认网卡IP正常,route -n 确认网关正常
  2. 连通检测:ping 目标地址,确认基础链路通畅
  3. 业务检测:curl -I 端口/接口,确认服务可正常访问
  4. 端口检测:ss -tulpn 查看端口监听,lsof 排查端口占用
  5. DNS检测:nslookup/dig 排查域名解析异常
  6. 链路检测:mtr/traceroute 排查丢包延迟
  7. 权限检测:防火墙、安全组端口放行校验
  8. 深度排查:tcpdump 抓包分析流量异常

十、网络命令避坑指南

  • 不要以 ping 通断作为业务判断标准,部分环境禁ping,必须以 curl 接口访问结果为准
  • 端口无监听优先检查服务配置和启动状态,而非盲目改防火墙
  • 域名解析异常优先检查本机 /etc/resolv.conf 配置,再排查公共DNS
  • 间歇性超时优先用 mtr 排查链路丢包,而非反复重启服务
  • 云服务器网络问题,优先排查安全组,再排查服务器本地防火墙

总结

本文涵盖了运维工作中全部高频网络排错命令,覆盖从基础连通性、端口检测、DNS解析,到链路追踪、流量抓包的全流程排查场景。网络故障排查的核心是由浅入深、分层定位,熟练掌握这套命令和排查流程,可快速解决99%的服务器网络异常问题,极大提升线上故障处理效率。建议收藏备查,作为日常运维网络排错的标准工具手册。