常用網絡工具分析(ping,tcpdump等)

寫在前面

本文看下常用網絡工具。

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

4:tcpdump

just go。

寫在后面

參考文章列表

抓包之tcpdump安裝和使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70465.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70465.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70465.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于Flask的第七次人口普查數據分析系統的設計與實現

【Flask】基于Flask的第七次人口普查數據分析系統的設計與實現(完整系統源碼開發筆記詳細部署教程)? 目錄 一、項目簡介二、項目界面展示三、項目視頻展示 一、項目簡介 基于Flask的人口普查可視化分析系統 二、項目界面展示 登錄/注冊 首頁/詳情 …

11.Docker 之分布式倉庫 Harbor

Docker 之分布式倉庫 Harbor Docker 之分布式倉庫 Harbor1. Harbor 組成2. 安裝 Harbor Docker 之分布式倉庫 Harbor Harbor 是一個用于存儲和分發 Docker 鏡像的企業級 Registry 服務器,由 VMware 開源,其通過添加一些企業必需的功能特性,例…

Zookeeper應用案例-分布式鎖-實現思路

以下是具體實現代碼 第一步:注冊鎖節點 第二步:獲取鎖節點,如果自己是最小的節點,就獲取權限 第三步:拿到鎖就開始自己的業務邏輯 第四步:業務邏輯好了就要釋放這把鎖 第五步:重新注冊監聽&…

Elasticsearch7.1.1 配置密碼和SSL證書

生成SSL證書 ./elasticsearch-certutil ca -out config/certs/elastic-certificates.p12 -pass 我這里沒有設置ssl證書密碼,如果需要設置密碼,需要再配置給elasticsearch 在之前的步驟中,如果我們對elastic-certificates.p12 文件配置了密碼…

Linux(ubuntu) GPU CUDA 構建Docker鏡像

一、創建Dockerfile FROM ubuntu:20.04#非交互式,以快速運行自動化任務或腳本,無需圖形界面 ENV DEBIAN_FRONTENDnoninteractive# 安裝基礎工具 RUN apt-get update && apt-get install -y \curl \wget \git \build-essential \software-proper…

藍橋杯——lcd顯示

一:復制文件 從官方參考文件中復制相關文件,Src中的lcd.c,Inc中的lcd.h,fonts.h復制到自己創建的文件中 二:lcd初始化 在lcd.h中找到四個初始化函數,將其寫到main文件中 三:寫lcd顯示函數 在…

【C++游戲開發-五子棋】

使用C開發五子棋游戲的詳細實現方案,涵蓋核心邏輯、界面設計和AI對戰功能: 1. 項目結構 FiveChess/ ├── include/ │ ├── Board.h // 棋盤類 │ ├── Player.h // 玩家類 │ ├── AI.h // AI類 │ └── Game.h // 游戲主邏輯 ├── src/ …

中興G7615AV5

參考文獻: G7615AV5 光貓新版固件通過修改備份配置文件固化Telnet 中興7615AV5光貓配置指南 前言:(不如咸魚30遠程全權搞定,花小錢辦大事)截至2025年2月22號,這個設備開啟Telnet只能去咸魚找別人遠程開&…

常用設計模式(embeded Qt)

常用設計模式: 觀察者模式(Observer Pattern) 應用場景:傳感器數據更新、UI狀態同步。實現方式:通過QT的信號槽機制(本質是發布-訂閱模式)自動實現。例如:connect(sensor, &Sens…

侯捷 C++ 課程學習筆記:內存管理與工具應用

一、課程基礎要求 首先強調了學習前應具備的基礎知識。這些基礎知識對于理解 C 的核心概念和編程技巧至關重要。 動態內存分配與使用: 理解動態內存分配的概念,掌握 new 和 delete 操作符的使用。 能夠動態分配和管理內存,避免內存泄漏和非…

python: SQLAlchemy (ORM) Simple example using SQLite

領域層(Domain Laye):定義了 School 實體類和 SchoolRepository 抽象基類,明確了業務實體和數據訪問的契約。 基礎設施層(Infrastructure Laye):通過 SQLAlchemy 實現了 SchoolRepository 類&am…

fastadmin實現海報批量生成、郵件批量發送

記錄一個海報批量生成、郵件批量發送功能開發,業務場景如下: 國外客戶做觀展預登記,工作人員通過后臺,批量給這些觀眾生成入場證件并發送到觀眾登記的郵箱,以方便觀眾入場時快速進場。證件信息包含入場二維碼、姓名&a…

solidity之Foundry安裝配置(一)

一門面向合約的高級編程語言,主要用來編寫以太坊只能合約。 Solidity受C語言,Python和js影響,但為編譯成為以太坊虛擬機字節碼在EVM上執行,很多特性和限制都和EVM相關。 Solidity 是靜態類型語言,支持繼承、庫、自定義…

功能全面的手機壁紙應用,種類齊全、眾多高清壁紙

軟件介紹 應用亮點:今天給大家分享一款超神奇的手機應用 —— 奇幻壁紙。它作為手機動態壁紙軟件,功能超全面,操作還便捷,極具創意,能瞬間將你的手機屏幕變成奇幻世界,帶來全新視覺感受。 使用便捷性&…

使用docker配置PostgreSQL

配置docker阿里云鏡像倉庫 國內使用docker hub拉取鏡像比較慢,所以首先配置個人的鏡像倉庫。 阿里云的個人鏡像倉庫是免費的,對個人來說足夠用。 具體操作參考阿里云官方鏈接 。 關于個人鏡像倉庫的使用參考鏈接。 配置完個人鏡像倉庫后將公網配置到doc…

基于Dancing Links的精確覆蓋算法(解決NP難問題)和量子計算機模擬中的Shor算法(涉及數論與量子疊加態模擬)

一、Dancing Links算法實現數獨求解(NP難問題) 算法方案 數獨可轉化為精確覆蓋問題,使用Knuth提出的DLX算法實現高效求解。該算法通過雙向十字循環鏈表實現快速回溯,時間復雜度可達O(n^k)(k為常數) #include <iostream> #include <vector> #include <c…

Spring Boot定時任務原理

Spring Boot定時任務原理 在現代應用中&#xff0c;定時任務的調度是實現周期性操作的關鍵機制。Spring Boot 提供了強大的定時任務支持&#xff0c;通過注解驅動的方式&#xff0c;開發者可以輕松地為方法添加定時任務功能。本文將深入探討 Spring Boot 中定時任務的實現原理…

【跟我學YOLO】(1)YOLO12:以注意力為中心的物體檢測

歡迎關注『跟我學 YOLO』系列 【跟我學YOLO】&#xff08;1&#xff09;YOLO12&#xff1a;以注意力為中心的物體檢測] 0. YOLOv12 簡介0.1 YOLO12 論文下載0.2 YOLO12 的主要改進0.3 YOLO12 支持的任務和性能0.4 論文摘要 1. 背景介紹2. 相關的工作3. 方法3.1 效率分析3.2 區域…

LTO優化詳解

嵌入式開發過程中的LTO優化是什么意思&#xff1f;能夠用來解決什么問題&#xff1f;它都優化了哪些&#xff1f;僅開啟LTO真的可以優化SIZE的問題嗎? 請分別回答我剛才提到的問題&#xff1f; 嗯&#xff0c;用戶問關于嵌入式開發中的LTO優化&#xff0c;我需要詳細解釋這個概…

leetcode_位運算 231.2的冪

231. 2的冪 給你一個整數n&#xff0c;請你判斷該整數是否是 2 的冪次方。如果是&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false。 如果存在一個整數 x 使得 n 2x &#xff0c;則認為 n 是 2 的冪次方 思路: 2的冪運算的結果中&#xff0c;其二進制數里只有…