☰
Linux网络故障排查
2026/10/8 13:54:10 网站建设 项目流程

Linux网络故障排查

  • Linux网络故障排查命令
  • 查看网卡信息
    • 查看网卡基本信息
    • 查看网卡驱动
    • 查看网卡的错误包(丢包分析)
  • ping
  • traceroute
    • Centos7安装traceroute
    • 不解析域名traceroute -n
    • 指定网卡接口traceroute -i
  • tracepath
  • nexttrace
  • nslookup
  • telnet端口测试
  • tcping测试tcp端口
  • BestTrace路由分析:
    • 安装BestTrace包
    • besttrace基本用法
  • iftop(查看网卡流量状态)
    • 查看哪个连接占用流量最多
    • 不解析域名,所有的网络连接都以ip显示
    • 指定监控网卡
  • ss命令常见方法
  • 端口查找
    • lsof
    • netstat
    • 查询端口使用情况
  • sar命令统计网卡流量
    • 显示结果主要字段说明
    • sar示例
  • strace 跟踪进程中的系统调用
  • Windows常用的网络排查工具

Linux网络故障排查命令

经常使用tcpdump、gdb、strace等系统工具分析较复杂问题

ping# 路由追踪traceroute# mtr命令查看在哪里丢包,相当于ping和traceroute命令的组合mtr# 实时查看网络质量mtrbaidu.com# 显示mtr报告mtr-r114.114.114.114# tcpdump抓包排查网络故障tcpdump# ss命令和netstat参数一样,格式不一样ssnetstat

查看网卡信息

例如: 要查看你的网卡的速率
ethtool参数非常多,需要自己扩展了解


查看网卡基本信息

网卡速率等信息

# 查看网卡基本信息ethtooleth0


查看网卡驱动

# 查看网卡驱动ethtool-ieth0


查看网卡的错误包(丢包分析)

  1. 首先是根据ifconfig确认有丢包的情况
  2. 然后确认丢包类型
# 确认丢包类型## -S 选项用于显示指定网络接口的统计信息ethtool-Seth0|greperrors

  1. 然后再根据丢包类型继续往下分析

ping

https://blog.csdn.net/omaidb/article/details/116096205

# 发送指定数量的包## -c 指定发送包 数量## ping10次就会停止pingaliyun.com-c10# 指定网卡ping## -i 指定网卡ping-ieth0 aliyun.com# 指定包大小,判断时延更准确## -s 指定包大小ping-s512aliyun.com

traceroute

https://www.linuxcool.com/traceroute
https://wangchujiang.com/linux-command/c/traceroute.html

# 验证端到端 TCP 路径## -T tcpsync## -p 指定端口traceroute-T-p3007172.18.234.130

Centos7安装traceroute

# 安装tracerouteyuminstalltraceroute-y

不解析域名traceroute -n

不解析ip的域名,速度会更快

# -n 不解析域名traceroute-naliyun.com

指定网卡接口traceroute -i

# -i 指定网卡接口traceroute-n-ieth0 aliyun.com

tracepath

路径探测跟踪。
tracepath命令用于跟踪数据包在网络中的路径,类似于traceroute命令。它可以帮助你确定从源主机到目标主机之间的网络路径,以及在该路径上的每个跃点的延迟。

常用的tracepath命令选项:
-n:禁用反向DNS查找,以避免解析IP地址为主机名。
-b:使用较大的数据包进行跟踪。
-p<端口号>:指定跟踪所使用的端口号。
-q<跃点数>:设置要跟踪的跃点数。
-m<跃点数>:设置最大跃点数,超过该跃点数将停止跟踪。

# 查看每条路径的延迟


nexttrace

项目地址:https://github.com/nxtrace/Ntrace-core


nslookup

https://blog.csdn.net/omaidb/article/details/128832938


telnet端口测试

telnet建立三次握手不发数据

# telnet ip或域名 端口号telnet aliyun.com80[cesu-c8 root ~]# telnet aliyun.com 80Trying106.11.172.9... Connected to aliyun.com. Escape character is'^]'.

tcping测试tcp端口

https://blog.csdn.net/omaidb/article/details/120120730


BestTrace路由分析:

BestTrace查看VPS的去程和回程


安装BestTrace包

# 下载BestTrace包wgethttps://cdn.ipip.net/17mon/besttrace4linux.zip# 只解压指定文件besttrace## “指定解压的文件名”## -d 解压到指定目录unzipbesttrace4linux.zip"besttrace"-d/usr/local/bin/# 赋予执行权限chmoda+x /usr/local/bin/besttrace# 查看是否安装成功whichbesttrace

<br.>

besttrace基本用法

# 必须以root运行## 追踪ip或域名besttrace114.114.114.114


iftop(查看网卡流量状态)

需要epel源

# 启用epelwget-O/etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# 安装iftopyuminstalliftop-y

查看哪个连接占用流量最多

# 查看eth0哪个连接网络流量最多iftop-P


不解析域名,所有的网络连接都以ip显示

# 不解析域名iftop-n


指定监控网卡

# 不加i参数表示监控所有网卡iftop# 指定网卡iftop-ieth0# 指定网卡且不解析dnsiftop-n-ieth0

ss命令常见方法

ss-ntpl# -n参数:看到的时端口而不是服务名称# -t参数:只列出TCP# -l参数: 列出当前正在监听的套接字,而不是列出所有套接字


端口查找


lsof

#lsof-i:22

lsof-iudp:514


netstat

https://blog.csdn.net/omaidb/article/details/120617942


查询端口使用情况

# netstat -ano## -a或--all:显示所有连线中的Socket## -n 直接使用IP地址,不通过域名服务器## -o或--timers:显示计时器netstat-ano|grep3306# -tunlp(最常用)## -t 显示TCP传输协议的连线状况## -u 显示UDP传输协议的连线状况## -n 直接使用IP地址,不通过域名服务器## -l 仅列出在监听的服务状态## -p 显示正在使用Socket的程序识别码和程序名称netstat-tunlp|grep1080# 只列出监听中的连接## -t 显示TCP传输协议的连线状况## -n 直接使用IP地址,不通过域名服务器## -l 仅列出在监听的服务状态netstat-tnl|grep端口


sar命令统计网卡流量

使用sar每1秒统计一次网络接口的活动状况,连续显示5次。


显示结果主要字段说明

IFACE:网络接口名称。 rxpck/s、txpck/s:每秒收或发的数据包数量。 rxkB/s、txkB/s:每秒收或发的字节数,以kB/s为单位。 rxcmp/s、txcmp/s:每秒收或发的压缩过的数据包数量。 rxmcst/s:每秒收到的多播数据包。

sar示例

# sar -n DEV 间隔时间(s) 统计次数sar-nDEV15


strace 跟踪进程中的系统调用

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/strace.html


Windows常用的网络排查工具

https://www.cnblogs.com/lsgxeva/p/11589575.html

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询