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查看网卡的错误包(丢包分析)
- 首先是根据ifconfig确认有丢包的情况
- 然后确认丢包类型
# 确认丢包类型## -S 选项用于显示指定网络接口的统计信息ethtool-Seth0|greperrors- 然后再根据丢包类型继续往下分析
ping
https://blog.csdn.net/omaidb/article/details/116096205
# 发送指定数量的包## -c 指定发送包 数量## ping10次就会停止pingaliyun.com-c10# 指定网卡ping## -i 指定网卡ping-ieth0 aliyun.com# 指定包大小,判断时延更准确## -s 指定包大小ping-s512aliyun.comtraceroute
https://www.linuxcool.com/traceroute
https://wangchujiang.com/linux-command/c/traceroute.html
# 验证端到端 TCP 路径## -T tcpsync## -p 指定端口traceroute-T-p3007172.18.234.130Centos7安装traceroute
# 安装tracerouteyuminstalltraceroute-y不解析域名traceroute -n
不解析ip的域名,速度会更快
# -n 不解析域名traceroute-naliyun.com指定网卡接口traceroute -i
# -i 指定网卡接口traceroute-n-ieth0 aliyun.comtracepath
路径探测跟踪。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.114iftop(查看网卡流量状态)
需要
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-ieth0ss命令常见方法
ss-ntpl# -n参数:看到的时端口而不是服务名称# -t参数:只列出TCP# -l参数: 列出当前正在监听的套接字,而不是列出所有套接字端口查找
lsof
#lsof-i:22lsof-iudp:514netstat
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-nDEV15strace 跟踪进程中的系统调用
https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/strace.html
Windows常用的网络排查工具
https://www.cnblogs.com/lsgxeva/p/11589575.html