Linux网络故障排查

Linux网络故障排查命令

经常使用 tcpdumpgdbstrace等系统工具分析较复杂问题

ping

# 路由追踪
traceroute

# mtr命令查看在哪里丢包,相当于ping和traceroute命令的组合
mtr

# 实时查看网络质量
mtr baidu.com

# 显示mtr报告
mtr -r 114.114.114.114

# tcpdump抓包排查网络故障
tcpdump

# ss命令和netstat参数一样,格式不一样
ss

netstat

在这里插入图片描述

查看网卡信息

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


查看网卡基本信息

网卡速率等信息

# 查看网卡基本信息
ethtool eth0

在这里插入图片描述


查看网卡驱动

# 查看网卡驱动
ethtool -i eth0

在这里插入图片描述


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

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

在这里插入图片描述

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

ping

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

# 发送指定数量的包
## -c 指定发送包 数量
## ping10次就会停止
ping aliyun.com -c 10

# 指定网卡ping
## -i 指定网卡
ping -i eth0 aliyun.com

# 指定包大小,判断时延更准确
## -s 指定包大小
ping -s 512 aliyun.com

traceroute

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

# 验证端到端 TCP 路径
## -T tcpsync
## -p 指定端口
traceroute -T -p 3007 172.18.234.130

Centos7安装traceroute

# 安装traceroute
yum install traceroute -y

不解析域名traceroute -n

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

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

指定网卡接口traceroute -i

# -i 指定网卡接口
traceroute -n -i eth0 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.com 80

[cesu-c8 root ~]# telnet aliyun.com 80
Trying 106.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包
wget https://cdn.ipip.net/17mon/besttrace4linux.zip

# 只解压指定文件besttrace
## “指定解压的文件名”
## -d 解压到指定目录
unzip besttrace4linux.zip "besttrace" -d /usr/local/bin/

# 赋予执行权限
chmod a+x /usr/local/bin/besttrace

# 查看是否安装成功
which besttrace

<br.>

besttrace基本用法

# 必须以root运行
## 追踪ip或域名
besttrace 114.114.114.114 

在这里插入图片描述


iftop(查看网卡流量状态)

需要epel

# 启用epel
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

# 安装iftop
yum install iftop -y

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

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

在这里插入图片描述


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

# 不解析域名
iftop -n

在这里插入图片描述


指定监控网卡

# 不加i参数表示监控所有网卡
iftop

# 指定网卡
iftop -i eth0

# 指定网卡且不解析dns
iftop -n -i eth0 

ss命令常见方法

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

在这里插入图片描述


端口查找


lsof

# 
lsof -i:22

在这里插入图片描述

lsof -i udp:514

在这里插入图片描述


netstat

https://blog.csdn.net/omaidb/article/details/120617942
在这里插入图片描述


查询端口使用情况

# netstat -ano
## -a或--all:显示所有连线中的Socket
## -n	直接使用IP地址,不通过域名服务器
## -o或--timers:显示计时器
netstat -ano | grep 3306

# -tunlp(最常用)
## -t	显示TCP传输协议的连线状况
## -u	显示UDP传输协议的连线状况
## -n	直接使用IP地址,不通过域名服务器
## -l	仅列出在监听的服务状态
## -p	显示正在使用Socket的程序识别码和程序名称
netstat -tunlp | grep 1080

# 只列出监听中的连接
## -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 -n DEV 1 5

在这里插入图片描述


strace 跟踪进程中的系统调用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

教Linux的李老师

您的赞赏,是我深夜码字时最亮的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值