常用网络工具分析(ping,tcpdump等)

news/2025/2/23 4:39:49/

写在前面

本文看下常用网络工具。

1:ping

1.1:用途

用于检验网络的连通性。

1.2:实战

在Linux环境中执行:ping www.sina.com.cn

[root@localhost ~]# ping www.sina.com.cn
PING spool.grid.sinaedge.com (111.62.129.51) 56(84) bytes of data.
64 bytes from 111.62.129.51 (111.62.129.51): icmp_seq=1 ttl=49 time=18.1 ms
64 bytes from 111.62.129.51 (111.62.129.51): icmp_seq=2 ttl=49 time=25.9 ms
...
^C
--- spool.grid.sinaedge.com ping statistics ---
12 packets transmitted, 12 received, 0% packet loss, time 11018ms
rtt min/avg/max/mdev = 17.397/19.402/25.901/2.092 ms

1.3:原理以及抓包验证

1.3.1:原理

基于ICMP协议,ICMP是属于网络层的协议,基于IP协议,即在IP协议的基础上增加了相关信息来满足需求。格式如下:
在这里插入图片描述

1.3.2:抓包验证

  • 使用tcpdump抓包
    先抓着包:
[root@localhost ~]# rm -f /tmp/ping_sina.pcap && tcpdump -c 5 -i any icmp and host www.sina.com.cn -w /tmp/ping_sina.pcap 
tcpdump: WARNING: any: That device doesn't support promiscuous mode
(Promiscuous mode not supported on the "any" device)
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes参数解释:
-c 5: 抓五个包
-i any icmp:在任意网卡抓icmp协议的包
host www.sina.com.cn:host是www.sina.com.cn
-w /tmp/ping_sina.pcap:抓到的包写到文件/tmp/ping_sina.pcap中
总的就是:对主机www.sina.com.cn抓5条任意网卡的ICMP协议的包,并将结果写到文件/tmp/ping_sina.pcap中。

成功后生成文件:

[root@localhost tmp]# pwd
/tmp
[root@localhost tmp]# ll | grep ping
-rw-r--r--. 1 root root 624 Feb 17 22:16 ping_sina.pcap

导出到win中并使用wires hark打开:
在这里插入图片描述
and
在这里插入图片描述

2:ifconfig

2.1:用途

该命令用来列举系统中的网络设备,即网卡列表。

2.2:分析

一般执行如下命令:

vagrant@ubuntu-xenial-01:~$ ifconfig
cni0      Link encap:Ethernet  HWaddr 0a:58:0a:f4:00:01inet addr:10.244.0.1  Bcast:0.0.0.0  Mask:255.255.255.0inet6 addr: fe80::401:b4ff:fe51:bcf9/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1RX packets:2133 errors:0 dropped:0 overruns:0 frame:0TX packets:2216 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:139381 (139.3 KB)  TX bytes:853302 (853.3 KB)
...

解释:

cni0      Link encap:Ethernet  HWaddr 0a:58:0a:f4:00:01网卡名称 网络类型为以太网 mac地址
inet addr:10.244.0.1  Bcast:0.0.0.0  Mask:255.255.255.0ipv4地址,广播地址,子网掩码,其中广播地址可以通过udp的方式给网络内的所有主机发消息
inet6 addr: fe80::401:b4ff:fe51:bcf9/64 Scope:Linkipv6地址,目前还在普及中,解决ipv4地址不够用问题
UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1mtu,IP数据包最大大小,metric,优先级,多个网卡到同一ip都可达时的优先级,值越小,优先级越高

3:通过netstat和lsof检查网络问题

3.1:netstat

在线上环境中有时候会遇到,明明服务是正常的,但是tcp连接却无法建立成功,到底是因为啥呢?是time_wait过多导致无可用的端口了,还是怎样?此时我们就可以使用netstat命令来看下,netstat -alepn,如下:

[root@localhost tmp]# netstat -alepn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          20874      1022/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      0          21847      1224/master         
tcp        0      0 192.168.10.168:22       192.168.10.94:57233     ESTABLISHED 0          27499      2209/sshd: root@not 
tcp        0      0 192.168.10.168:22       192.168.10.94:60364     ESTABLISHED 0          22611      1546/sshd: root@pts 
tcp        0     36 192.168.10.168:22       192.168.10.94:51775     ESTABLISHED 0          27303      2138/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      0          20883      1022/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      0          21848      1224/master         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           0          20090      829/dhclient        
udp        0      0 127.0.0.1:323           0.0.0.0:*                           0          18592      678/chronyd         
udp6       0      0 ::1:323                 :::*                                0          18593      678/chronyd         
raw6       0      0 :::58                   :::*                    7           0          19376      702/NetworkManager  
...

可以先看State列观察tcp连接的状态是否异常,比如有大量的time_wait就可能是有问题的了。
每一列是什么意思呢,比如tcp 0 0 192.168.10.168:22 192.168.10.94:57233 ESTABLISHED 0 27499 2209/sshd: root@not,意思是:

Proto:使用的协议是tcp
Local Address:监听的是网卡192.168.10.168(其实是我vm的Linux环境)的22端口号
Foreign Address:192.168.10.94:57233,远端的服务是192.168.10.94(其实是我本地的win),端口号是57233(随机分配的端口号)
EST
ABLISHED:当前tcp连接的状态是ESTABLISHED,即正常连接状态
27499      2209/sshd:进程信息,这里是sshd,即ssh连接使用的

3.2:lsof

netstat用于列出所有的端口上的连接信息,而lsof则是用于查看某个端口号,或者是本位套接字是被哪个进程打开的,这在我们遇到类似于端口号占用的问题,或者是确定服务是否启动成功时非常有用,比如我们现在遇到了端口号被占用的问题,就可以执行如下命令:

[root@localhost tmp]# lsof -i :22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1022 root    3u  IPv4  20874      0t0  TCP *:ssh (LISTEN)
sshd    1022 root    4u  IPv6  20883      0t0  TCP *:ssh (LISTEN)
sshd    1546 root    3u  IPv4  22611      0t0  TCP localhost.localdomain:ssh->192.168.10.94:60364 (ESTABLISHED)
sshd    2138 root    3u  IPv4  27303      0t0  TCP localhost.localdomain:ssh->192.168.10.94:51775 (ESTABLISHED)
sshd    2209 root    3u  IPv4  27499      0t0  TCP localhost.localdomain:ssh->192.168.10.94:57233 (ESTABLISHED)

当然也可以查看本地套接字,比如查看docker的/var/run/docker.sock:

[root@localhost tmp]# lsof /var/run/docker.sock
COMMAND    PID USER   FD   TYPE             DEVICE SIZE/OFF  NODE NAME
dockerd-c 2851 root    5u  unix 0xffff904e322fe1c0      0t0 32258 /var/run/docker.sock

tcpdump_127">4:tcpdump

just go。

写在后面

参考文章列表

抓包之tcpdump安装和使用。


http://www.ppmy.cn/news/1574339.html

相关文章

AI性能极致体验:通过阿里云平台高效调用满血版DeepSeek-R1模型

前言 解决方案链接: https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms?utm_contentg_1000401616 DeepSeek是近期爆火的开源大语言模型(LLM),凭借其强大的模型训练和推理能力,受到越来越多…

Lab12_ Blind SQL injection with conditional errors

文章目录 前言:进入实验室构造 payload 前言: 实验室标题为: 利用条件错误进行 SQL 盲注 等级:执业者 简介: 本实验室包含一个盲 SQL 注入漏洞。应用程序使用跟踪 cookie 进行分析,并执行包含已提交 c…

AI 编程助手 cursor的系统提示词 prompt

# Role 你是一名极其优秀具有10年经验的产品经理和精通java编程语言的架构师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。 # Goal 你的目标是帮助用户以他容易理解的…

基于Django的购物商城平台的设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统购物管理采取了人工的管理方法,但这种管理方法存…

负载均衡 方式

DNS 软件负载均衡 Nginx 也是 软件负载均衡 各种策略 1、轮询(默认) 2、weight(权重) 3、IP Hash (会话粘滞) 4、fair 5、UrlHash

基于vue框架的的疫情物资管理系统o489k(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:用户,物资信息,物资入库,配送员,物资出库,配送信息,物资分类,物资申请,急缺物资,体温打卡,请假申请,公告信息,登录日志 开题报告内容 基于Vue框架的疫情物资管理系统开题报告 一、项目背景及意义 随着全球疫情的持续影响,…

【Kafka】Kafka高性能解读

Kafka 的高性能源于其分布式架构设计、高效数据存储和优化算法。以下是 Kafka 高性能的核心原理及其实现细节: 1. 分布式架构设计 1.1 分区(Partitioning) 并行处理:将 Topic 划分为多个 Partition,每个 Partition 独…

[深度学习][python]yolov12+bytetrack+pyqt5实现目标追踪

【算法介绍】 实时目标检测因其低延迟特性而持续受到广泛关注,具有重要的实际应用价值[4, 17, 24, 28]。其中,YOLO系列[3, 24, 28, 29, 32, 45-47, 53, 57, 58]通过有效平衡延迟与精度,在该领域占据主导地位。尽管YOLO的改进多集中在损失函数…