案例篇:怎样用tcpdump和Wireshark辨认潜伏威胁

[复制链接]
发表于 2025-9-19 17:46:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
无论是一样平常浏览网页、观看视频,还是企业开展线上业务、举行数据传输,都离不开网络的支持。然而,网络题目也时有发生,好比网络卡顿,信托各人都碰到过,那种等待页面加载的焦急心情,真的让人抓狂。网络卡顿不但影响我们的使用体验,对于企业来说,还大概导致业务停止、客户流失,造成巨大的经济丧失。
那么,当网络出现题目时,我们该怎样快速找到症结所在呢?这就轮到 tcpdump 和 Wireshark 这两款强盛的网络流量分析工具登场啦!它们就像是网络天下的 “福尔摩斯”,可以或许帮助我们深入分析网络流量,找出题目的根源。tcpdump 是一款基于命令行的网络抓包工具,它功能强盛,可以或许在 Linux 体系中轻松捕捉网络数据包,就像一个敏锐的猎手,精准地捕捉网络中的每一个数据传输瞬间。
而 Wireshark 则是一款集抓包与图形化分析于一体的工具,它提供了直观的界面和丰富的分析功能,让我们可以像拆解呆板一样,细致地分析数据包的布局和内容 。接下来,就让我们一起走进这两款工具的天下,学习怎样使用它们来办理网络题目吧!
一、tcpdump命令行抓包大家

1.1 tcpdump 初相识

tcpdump 是一款基于命令行的网络抓包工具,在 Linux 体系中可谓是台甫鼎鼎。它就像是一位隐蔽在幕后的高手,默默地捕捉网络中的数据包,为我们提供网络通讯的详细信息 。无论是排查网络故障,还是举行网络安全分析,tcpdump 都能发挥出巨大的作用。在服务器端,当出现网络毗连非常、数据传输缓慢等题目时,tcpdump 可以或许帮助我们快速定位题目所在。好比,当服务器突然无法访问某个特定的网站时,我们可以使用 tcpdump 抓取网络数据包,检察是否存在丢包、重传等非常情况,从而判定是网络毗连题目还是服务器自己的配置题目。
1.2安装 tcpdump

假如你使用的是 Debian 或 Ubuntu 体系,安装 tcpdump 非常简朴,只需在终端中输入以下命令:
  1. sudo apt-get install tcpdump
复制代码
假如是 CentOS 或 RHEL 体系,则可以使用 yum 命令来安装:
  1. sudo yum install tcpdump
复制代码
安装完成后,我们就可以开始使用 tcpdump 来探索网络天下啦!
1.3tcpdump基本用法


①简朴抓包
直接运行 tcpdump 命令,它会捕捉指定网络接口的全部流量。比方,在终端中输入 “tcpdump”,然后按下回车键,tcpdump 就会开始工作。它会实时输出捕捉到的数据包信息,这些信息包罗数据包的时间戳、源 IP 所在、目的 IP 所在、协议范例以及数据包的长度等。好比下面这个输出示例:
  1. 10:23:45.123456 IP 192.168.1.100.50000 > 192.168.1.200.80: Flags [S], seq 123456789, win 65535, options [mss 1460], length 0
复制代码
在这个示例中,“10:23:45.123456” 是数据包的时间戳,表示数据包被捕捉的时间;“IP” 表示协议范例为 IP 协议;“192.168.1.100.50000” 是源 IP 所在和源端标语;“192.168.1.200.80” 是目的 IP 所在和目的端标语;“Flags [S]” 表示 TCP 标志位为 SYN,阐明这是一个创建 TCP 毗连的请求包;“seq 123456789” 是序列号;“win 65535” 是窗口巨细;“options [mss 1460]” 是 TCP 选项,这里表示最大段巨细为 1460 字节;“length 0” 表示数据包的数据部分长度为 0。通过这些信息,我们可以初步相识网络通讯的情况。
②指定接口抓包
在现实使用中,我们大概只必要捕捉某个特定网络接口的流量。这时,可以使用 “-i” 选项来指定网络接口。比方,要捕捉 eth0 接口的流量,只需在终端中输入以下命令:
  1. sudo tcpdump -i eth0
复制代码
这里使用 “sudo” 是由于 tcpdump 必要管理员权限才华捕捉网络数据包。执行这个命令后,tcpdump 就会专注于 eth0 接口,只捕捉通过该接口的数据包,如允许以镌汰不须要的干扰,让我们更清楚地分析目的接口的网络流量。
③过滤特定主机流量
假如我们只关心与某个特定主机干系的流量,可以使用 “host” 关键字来过滤。好比,要捕捉与 IP 所在为 192.168.1.100 的主机之间的通讯数据包,可以使用以下命令:
  1. sudo tcpdump host 192.168.1.100
复制代码
如许,tcpdump 就只会表现与 192.168.1.100 这个主机干系的数据包信息,无论是该主机发送的还是接收的数据包都会被捕捉并表现出来,方便我们对特定主机的网络运动举行分析。
④过滤特定端口流量
除了过滤特定主机的流量,我们还可以过滤特定端口的流量。使用 “port” 关键字,就可以轻松实现这一目的。比方,要捕捉全部端标语为 80 的数据包,可以输入以下命令:
  1. sudo tcpdump port 80
复制代码
端标语为 80 通常是 HTTP 协议使用的端口,通过这个命令,我们可以捕捉到全部与 HTTP 通讯干系的数据包,对于分析 Web 服务器的访问情况、排查 HTTP 干系的网络题目非常有帮助。
⑤组合过滤条件
tcpdump 还支持使用逻辑运算符 “and”“or”“not” 来组合过滤条件,以实现更复杂的过滤需求。好比,要捕捉源 IP 所在为 192.168.1.100 且目的端口为 80 的数据包,可以使用以下命令:
  1. sudo tcpdump src host 192.168.1.100 and dst port 80
复制代码
这个命令中,“src host 192.168.1.100” 表示源 IP 所在为 192.168.1.100,“dst port 80” 表示目的端口为 80,“and” 运算符将这两个条件组合起来,只有同时满意这两个条件的数据包才会被捕捉。再好比,要捕捉源 IP 所在为 192.168.1.100 大概目的端口为 80 的数据包,可以使用 “or” 运算符:
  1. sudo tcpdump src host 192.168.1.100 or dst port 80
复制代码
而假如要捕捉除了 ICMP 协议之外的全部数据包,可以使用 “not” 运算符:
  1. sudo tcpdump not icmp
复制代码
通过机动组合这些过滤条件,我们可以根据现实需求精准地捕捉和分析网络数据包。
1.4tcpdump 高级用法

①生存捕捉数据包
偶尔间,我们大概必要将捕捉到的数据包生存下来,以便后续举行更深入的分析。tcpdump 提供了 “-w” 选项来实现这一功能。比方,要将捕捉到的数据包生存到名为 “capture.pcap” 的文件中,可以使用以下命令:
  1. sudo tcpdump -i eth0 -w capture.pcap
复制代码
这里,“-i eth0” 指定了捕捉的网络接口为 eth0,“-w capture.pcap” 表示将捕捉到的数据包生存到 “capture.pcap” 文件中。生存后的文件可以使用 Wireshark 等工具举行打开和分析,Wireshark 提供了更直观的图形化界面和丰富的分析功能,可以或许帮助我们更好地理解数据包的内容和网络通讯的细节。
②从文件读取数据包
当我们已经生存了数据包文件后,可以使用 “-r” 选项从文件中读取数据包举行分析。好比,要读取之前生存的 “capture.pcap” 文件,可以输入以下命令:
  1. tcpdump -r capture.pcap
复制代码
执行这个命令后,tcpdump 会读取 “capture.pcap” 文件中的数据包,并按照默认的格式输出数据包的信息。如许,我们就可以在不必要实时捕捉数据包的情况下,对之前生存的数据包举行反复分析,方便我们研究特定时间段内的网络通讯情况。
③表现详细信息
tcpdump 提供了 “-v”“-vv”“-vvv” 等选项来获取更详细的数据包信息。“-v” 选项会输出一个稍微详细的信息,好比在 IP 包中可以包罗 TTL(生存时间)和服务范例的信息。比方:
  1. sudo tcpdump -i eth0 -v
复制代码
执行这个命令后,输出的数据包信息会比默认情况下更详细一些,我们可以看到更多关于数据包的细节,如 TTL 的值、服务范例等,这些信息对于分析网络路径和服务质量非常有帮助。
“-vv” 选项会输出更详细的报文信息,包罗一些 TCP 选项的详细内容等。比方:
  1. sudo tcpdump -i eth0 -vv
复制代码
使用 “-vv” 选项后,我们可以看到更多关于 TCP 毗连的详细信息,如 TCP 选项中的最大段巨细(MSS)、时间戳选项等,这些信息对于深入分析 TCP 毗连的创建和数据传输过程非常紧张。
“-vvv” 选项则是最详细的模式,会表现完备的数据包信息,包罗一些更底层的协议细节。比方:
  1. sudo tcpdump -i eth0 -vvv
复制代码
在 “-vvv” 模式下,我们几乎可以看到数据包的全部细节,从链路层到应用层的信息都会被详细表现出来,这对于专业的网络分析职员来说非常有效,可以帮助他们深入相识网络通讯的每一个环节。
④其他实用选项
除了上述选项外,tcpdump 另有一些其他实用的选项。好比 “-c” 选项可以用于限定抓包的数目。比方,要捕捉 10 个数据包后就停止抓包,可以使用以下命令:
  1. sudo tcpdump -i eth0 -c 10
复制代码
这个命令在我们只必要获取少量数据包举行分析时非常有效,可以制止不须要的大量数据捕捉,节流时间和存储空间。

  •         “-S” 选项可以用于处置处罚 TCP 关联数,以绝对序列号代替相对序列号,这在分析一些复杂的 TCP 毗连场景时非常有帮助,可以让我们更清楚地相识 TCP 毗连中数据包的次序和关系。
  •         “-A” 选项可以将数据包的内容以 ASCII 文本情势表现,这在抓取包罗网页数据的数据包时非常方便,我们可以直接检察数据包中的文本内容,如 HTTP 请求和相应中的文本信息,对于分析 Web 应用的网络通讯非常直观。
  •         “-X” 选项会分别以十六进制和 ASCII 码格式表现数据包的内容,这对于分析二进制数据和文本数据混淆的数据包非常有效,我们可以同时看到数据包的二进制表示和对应的文本内容,有助于理解数据包的布局和内容。
  1. [/code]
  2. [size=4]二、Wireshark图形化分析[/size]
  3. Wireshark 是一款功能极其强盛的图形化网络分析工具,在网络范畴有着广泛的应用 。它就像是一个专业的网络数据分析师,可以或许深入分析网络数据包,为我们提供详细的网络流量信息。无论是排查网络故障、举行网络安全监测,还是研究网络协议,Wireshark 都能大显武艺。在网络安全监测中,Wireshark 可以实时捕捉网络数据包,通过分析数据包的内容和来源,检测是否存在恶意攻击运动,如端口扫描、SQL 注入等。它还可以帮助我们研究网络协议,通过捕捉和分析差别协议的数据包,深入相识协议的工作原理和机制,对于网络工程师和开辟职员来说,这是非常有代价的。
  4. [size=3]2.1安装 Wireshark[/size]
  5. [b]⑴Linux 体系安装[/b]
  6. 假如你使用的是 Debian 或 Ubuntu 体系,可以在终端中输入以下命令举行安装:
  7. [code]
  8. sudo apt-get install wireshark
复制代码
在安装过程中,体系会提示你确认安装,输入 “Y” 并回车即可继续安装。安装完成后,Wireshark 就会被安装到体系中,你可以通过在终端中输入 “wireshark” 来启动它。
对于 CentOS 或 RHEL 体系,则必要使用 yum 命令来安装:
  1. sudo yum install wireshark
复制代码
同样,在安装过程中按照提示举行确认即可。假如体系提示没有找到 wireshark 软件包,大概必要先启用相应的软件源。
⑵Windows 体系安装
在 Windows 体系中安装 Wireshark 也非常简朴。首先,打开浏览器,访问 Wireshark 官方网站(https://www.wireshark.org/) 。在官网首页,找到 “Download” 按钮,点击进入下载页面。在下载页面中,选择得当你体系的安装包,一样平常来说,假如你的体系是 64 位的,就选择 64 位的安装包;假如是 32 位的,就选择 32 位的安装包。下载完成后,双击安装包开始安装。
安装过程中,会出现安装领导界面,按照领导的提示一步一步举行操作即可。在安装过程中,你可以选择安装路径、是否创建桌面快捷方式等选项。安装完成后,在开始菜单中可以找到 Wireshark 的图标,点击即可启动 Wireshark。
2.2Wireshark 基本操作

① 启动与界面先容

  •         启动 Wireshark 后,你会看到一个直观且功能丰富的界面。界面重要分为以下几个地域:
  •         菜单栏:包罗了各种操作选项,如文件的打开、生存,捕捉的开始、停止,以及各种分析工具和设置选项等。通过菜单栏,我们可以完成大部分的操作,好比打开一个已有的数据包文件举行分析,大概设置捕捉过滤器等。
  •         工具栏:提供了常勤劳能的快捷图标,方便我们快速举行操作。比方,点击绿色的鲨鱼鳍图标可以开始捕捉数据包,点击赤色的正方形图标可以停止捕捉,另有放大镜图标用于查找数据包等。这些快捷图标让我们的操作更加高效,不必要在菜单栏中一层一层地查找相应的功能。
  •         接口列表:表现了当前体系中可用的网络接口,我们可以在这里选择要举行抓包的网络接口。好比,假如你的盘算机同时毗连了有线网络和无线网络,这里就会表现两个对应的网络接口,你可以根据必要选择其中一个举行抓包。
  •         数据包列表:实时表现捕捉到的数据包的择要信息,包罗数据包的编号、时间戳、源 IP 所在、目的 IP 所在、协议范例以及扼要信息等。我们可以通过这个列表快速相识捕捉到的数据包的基本情况,好比某个数据包是从哪个 IP 所在发送到哪个 IP 所在的,使用的是什么协议等。
  •         数据包详情:当我们在数据包列表中点击某个数据包时,这里会表现该数据包的详细信息,包罗各层协议的头部信息和数据内容。通过检察数据包详情,我们可以深入相识数据包的布局和内容,好比一个 HTTP 请求数据包,我们可以在这里看到请求的方法、URL、头部信息以及请求体等。
  •         十六进制数据:以十六进制和 ASCII 码的情势表现数据包的原始数据,帮助我们检察数据包的底层内容。在分析一些特别的数据包大概举行协议研究时,检察原始数据是非常有帮助的,我们可以通过这里看到数据包在网络中现实传输的字节数据。
② 选择网络接口抓包
要使用 Wireshark 举行抓包,首先必要选择准确的网络接口。在 Wireshark 的主界面中,找到 “接口列表” 地域,这里会列出当前体系中全部可用的网络接口。每个接口都有一个名称和对应的形貌信息,好比 “Ethernet0” 表示有线网络接口,“Wi-Fi” 表示无线网络接口等。
根据你的需求选择要抓包的网络接口。假如你想捕捉有线网络的流量,就选择对应的有线网络接口;假如想捕捉无线网络的流量,就选择无线网络接口。选择好接口后,点击接口名称前面的小箭头,睁开该接口的详细信息,确保没有其他非常设置。然后,点击工具栏上的 “开始捕捉” 按钮(绿色的鲨鱼鳍图标),Wireshark 就会开始捕捉通过该网络接口的数据包。
③捕捉过滤器使用
捕捉过滤器用于在抓包前设置过滤条件,只捕捉我们感爱好的数据包,如允许以镌汰捕捉的数据量,进步分析服从。捕捉过滤器使用的是 Berkeley Packet Filter(BPF)语法,它由范例、方向、协议和逻辑运算符等元素构成。
比方,要捕捉与特定 IP 所在通讯的数据包,可以使用 “host” 关键字。好比,要捕捉与 IP 所在 192.168.1.100 干系的数据包,可以在捕捉过滤器输入框中输入 “host 192.168.1.100”。这里的 “host” 表示范例为主机,“192.168.1.100” 是指定的主机 IP 所在。
假如要捕捉特定端口的流量,可以使用 “port” 关键字。比方,要捕捉端标语为 80(HTTP 协议常用端口)的数据包,可以输入 “port 80”。“port” 表示范例为端口,“80” 是指定的端标语。
还可以使用逻辑运算符 “and”“or”“not” 来组合多个过滤条件。好比,要捕捉源 IP 所在为 192.168.1.100 且目的端口为 80 的数据包,可以输入 “src host 192.168.1.100 and dst port 80”。这里的 “src” 表示源,“dst” 表示目的,“and” 表示两个条件同时满意。
在设置好捕捉过滤器后,点击 “开始捕捉” 按钮,Wireshark 就会按照设置的过滤条件捕捉数据包。
④表现过滤器使用
表现过滤器用于在抓包后对捕捉到的数据包举行筛选,只表现我们关心的数据包。表现过滤器的语法更加机动和强盛,它可以基于协议、IP 所在、端标语、协议字段等多种条件举行过滤。
比方,要过滤出全部 HTTP 协议的数据包,只必要在表现过滤器输入框中输入 “http”,然后按下回车键,数据包列表中就只会表现 HTTP 协议的数据包。
假如要过滤出源 IP 所在为 192.168.1.100 的数据包,可以输入 “ip.src == 192.168.1.100”。这里的 “ip.src” 表示源 IP 所在,“==” 是比力运算符,表示便是。
要过滤出目的端口为 80 的 TCP 数据包,可以输入 “tcp.dstport == 80”。“tcp.dstport” 表示 TCP 协议的目的端口。
表现过滤器还支持复杂的条件组合。好比,要过滤出源 IP 所在为 192.168.1.100 且包罗 “login” 关键字的 HTTP POST 请求数据包,可以输入 “ip.src == 192.168.1.100 and http.request.method == "OST" and http contains "login"”。这里使用了 “and” 运算符组合了三个条件,分别是源 IP 所在、HTTP 请求方法和数据包内容。
通过公道使用表现过滤器,我们可以快速从大量的捕捉数据包中找到我们必要的数据包,举行更深入的分析。
2.3Wireshark 高级分析功能

①协议分析
Wireshark 强盛的功能之一就是对各种协议的深入分析和展示。它支持几乎全部常见的网络协议,包罗 HTTP、TCP、UDP、IP、ARP、ICMP 等等。当我们捕捉到数据包后,Wireshark 会自动辨认数据包所使用的协议,并将协议的各个字段详细地展示出来。
以 HTTP 协议为例,当我们捕捉到一个 HTTP 请求数据包时,在数据包详情地域可以看到 HTTP 协议的各个部分。好比,请求行中的请求方法(GET、POST 等)、URL 和 HTTP 版本;头部信息中的各种字段,如 User - Agent(客户端信息)、Accept(可继续的内容范例)、Cookie(会话信息)等;假如是 POST 请求,还可以看到请求体中的数据。通过这些信息,我们可以相识客户端的请求内容、客户端的范例以及大概的用户运动等。
对于 TCP 协议,Wireshark 会展示 TCP 毗连的创建、数据传输和断开过程中的各种信息。比方,TCP 三次握手过程中的 SYN、SYN + ACK、ACK 标志位;序列号(Sequence Number)和确认号(Acknowledgment Number),它们用于确保数据的可靠传输;窗口巨细(Window Size),它表示接收方当前可以接收的数据量,通过分析窗口巨细的变化,我们可以相识网络的拥塞情况和数据传输的服从。
②统计图表功能
Wireshark 提供了丰富的统计和图表功能,帮助我们更直观地相识网络流量的情况。这些功能可以通过菜单栏中的 “Statistics” 选项来访问。

  •         协议分布:在 “Statistics” - “Protocol Hierarchy” 中,Wireshark 会展示捕捉到的数据包中各种协议的占比情况。通过这个功能,我们可以快速相识网络中重要使用的协议范例,判定是否存在非常的协议流量。好比,假如发现某个不常见的协议占用了大量的网络带宽,就必要进一步分析缘故因由,大概存在安全风险大概网络配置题目。
  •         会话表:选择 “Statistics” - “Conversations”,可以检察网络中的会话信息,包罗源 IP 所在、目的 IP 所在、使用的协议以及数据包和字节数等。会话表可以帮助我们相识差别主机之间的通讯情况,分析哪些主机之间的通讯量较大,是否存在非常的通讯模式。比方,假如发现某个内部主机与外部的一个不常见 IP 所在举行大量的数据传输,就必要关注是否存在数据泄露的风险。
  •         端口分布:在 “Statistics” - “Endpoints” 中,Wireshark 会表现各个端口的使用情况,包罗发送和接收的数据包数目、字节数等。通过分析端口分布,我们可以相识哪些端口被频仍使用,是否存在端口扫描等非常运动。好比,假如某个端口在短时间内收到大量来自差别 IP 所在的毗连请求,就大概是遭受了端口扫描攻击。
  •         时间序列图:“Statistics” - “IO Graphs” 可以天生网络流量的时间序列图,以可视化的方式展示网络流量随时间的变化情况。我们可以在图中设置差别的参数,如数据包数目、字节数、差别的协议等,通过观察图表的变化趋势,分析网络流量的高峰和低谷,判定网络的负载情况。比方,在业务高峰期,观察网络流量是否超出了预期,假如出现网络拥塞,可以进一步分析缘故因由并采取相应的步伐。
③深入分析数据包
在 Wireshark 中,我们可以通过点击数据包列表中的某个数据包,在数据包详情地域检察其详细信息。这个地域会以条理布局的方式展示数据包的各层协议信息,从物理层的数据帧开始,到数据链路层的以太网帧,再到网络层的 IP 包、传输层的 TCP 或 UDP 段,末了到应用层的协议数据,如 HTTP 请求或相应。
以一个 HTTP 请求数据包为例,在数据包详情地域,我们可以看到:

  •         Frame:物理层的数据帧概况,包罗帧的长度、捕捉时间、接口 ID 等信息。这些信息对于相识数据包在物理传输过程中的基本情况非常紧张,好比帧长度可以反映数据包的巨细,捕捉时间可以帮助我们确定事故发生的次序。
  •         Ethernet II:数据链路层以太网帧头部信息,包罗源 MAC 所在和目的 MAC 所在。MAC 所在是网络装备在数据链路层的标识,通过检察源和目的 MAC 所在,我们可以相识数据包在局域网内的传输路径,判定是否存在 MAC 所在诱骗等非常情况。
  •         Internet Protocol Version 4:网际层 IP 包头部信息,包罗源 IP 所在、目的 IP 所在、TTL(生存时间)、协议范例等。IP 所在是网络层的关键标识,通过源和目的 IP 所在,我们可以确定数据包的发送和接收主机;TTL 值表示数据包在网络中可以颠末的最大跳数,每颠末一个路由器,TTL 值减 1,当 TTL 值为 0 时,数据包将被丢弃,通过分析 TTL 值,我们可以相识数据包在网络中的传输路径和大概碰到的题目。
  •         Transmission Control Protocol:传输层的数据段头部信息,对于 HTTP 协议,通常使用 TCP 协议举行传输。这里会表现源端口和目的端口、序列号、确认号、TCP 标志位(如 SYN、ACK、FIN 等)。这些信息对于理解 TCP 毗连的创建、数据传输和断开过程非常关键,好比通过 SYN 和 ACK 标志位,我们可以分析 TCP 三次握手的过程;通过序列号和确认号,我们可以确保数据的准确传输和次序。
  •         Hypertext Transfer Protocol:应用层的信息,即 HTTP 协议的详细内容。这里会表现 HTTP 请求的方法(GET、POST 等)、URL、HTTP 版本、头部信息以及请求体(假如有)。通过分析这些信息,我们可以相识客户端的请求内容、客户端的范例以及大概的用户运动等,好比通过请求的 URL,我们可以知道用户访问的详细页面;通过头部信息中的 User - Agent,我们可以相识客户端使用的浏览器范例和操作体系。
别的,在数据包详情地域,我们还可以右键点击某个字段,选择 “Follow” - “TCP Stream” 或 “UDP Stream” 来跟踪该数据包所属的 TCP 或 UDP 会话,这对于分析连续的网络通讯过程非常有帮助。
三、tcpdump与Wireshark联手出击

3.1连合使用场景

在现实的网络分析工作中,tcpdump 和 Wireshark 常常携手互助,发挥出各自的上风 。tcpdump 在服务器端的抓包工作中体现精彩,它可以或许在不依靠图形界面的情况下,高效地捕捉网络数据包。而 Wireshark 则凭借其强盛的图形化分析功能,成为深入分析数据包的利器。
比方,当服务器出现网络性能题目时,我们首先可以使用 tcpdump 在服务器上快速抓取一段时间内的网络数据包,并将其生存为文件。由于 tcpdump 基于命令行操作,在服务器环境中占用资源少,操作便捷,可以在不影响服务器正常运行的情况下完成抓包任务。然后,将生存的数据包文件传输到装有 Wireshark 的分析主机上。Wireshark 的图形化界面可以或许直观地展示数据包的各种详细信息,包罗协议条理布局、源和目的所在、端标语以及数据包内容等,方便我们举行深入分析。
这种先使用 tcpdump 抓包,再使用 Wireshark 分析的方式,既充实使用了 tcpdump 的抓包机动性,又发挥了 Wireshark 强盛的分析能力,可以或许更高效地办理网络题目。
3.2连合使用步调

①tcpdump 抓包
使用 tcpdump 抓包并生存文件非常简朴。比方,要捕捉 eth0 接口上的全部流量,并将其生存到名为 “network_traffic.pcap” 的文件中,可以使用以下命令:
  1. sudo tcpdump -i eth0 -w network_traffic.pcap
复制代码
假如只想捕捉特定主机(如 192.168.1.100)与其他主机之间的通讯流量,可以如许操作:
  1. sudo tcpdump -i eth0 host 192.168.1.100 -w specific_host_traffic.pcap
复制代码
假如要捕捉特定端口(如端口 80,通常用于 HTTP 通讯)的流量,则命令如下:
  1. sudo tcpdump -i eth0 port 80 -w http_traffic.pcap
复制代码
在现实抓包过程中,我们可以根据详细的分析需求,机动调解过滤条件,精准地捕捉所需的网络数据包 。
②Wireshark 分析
将 tcpdump 生存的文件导入 Wireshark 举行分析也很轻易。打开 Wireshark 后,点击菜单栏中的 “文件”,然后选择 “打开”,在文件浏览器中找到 tcpdump 生存的.pcap 文件,如 “network_traffic.pcap”,点击 “打开” 按钮即可导入文件 。
文件导入后,我们可以在 Wireshark 的界面中看到捕捉的数据包列表。通过设置表现过滤器,我们可以对数据包举行筛选和分析。好比,要检察全部 HTTP 协议的数据包,在表现过滤器输入框中输入 “http”,然后按下回车键,数据包列表中就只会表现 HTTP 协议的数据包。假如要检察源 IP 所在为 192.168.1.100 的数据包,输入 “ip.src == 192.168.1.100” 即可。我们还可以通过点击数据包列表中的某个数据包,在数据包详情地域检察其详细信息,包罗各层协议的头部信息和数据内容,从而深入分析网络通讯的细节。
3.3案例实战

假设我们碰到一个网络故障,某公司的员工反馈无法正常访问公司内部的一个紧张 Web 应用。我们决定使用 tcpdump 和 Wireshark 来排查题目。
①抓包:首先,在 Web 服务器所在的主机上使用 tcpdump 举行抓包。由于我们猜疑是 Web 应用干系的题目,以是重要捕捉与 Web 服务器端口(假设为 8080)干系的流量。在终端中输入以下命令:
  1. sudo tcpdump -i eth0 tcp port 8080 -w web_app_traffic.pcap
复制代码
让 tcpdump 运行一段时间,以捕捉足够多的数据包。在此期间,让员工不停实验访问 Web 应用,以便抓取到干系的网络通讯数据。
②设置过滤器:抓包完成后,将 “web_app_traffic.pcap” 文件传输到装有 Wireshark 的分析主机上。打开 Wireshark 并导入该文件。为了快速定位题目,我们设置表现过滤器。由于是 Web 应用访问题目,首先设置过滤器为 “http”,如允许以只表现 HTTP 协议的数据包。然后,进一步筛选出与目的 Web 应用干系的数据包,假设目的 Web 应用的 IP 所在为 192.168.1.100,添加过滤条件 “ip.addr == 192.168.1.100”,终极的表现过滤器为 “http && ip.addr == 192.168.1.100”。
③分析效果:通过设置过滤器后,在数据包列表中检察捕捉的数据包。我们发现,有大量的 HTTP 请求数据包发送到 Web 服务器,但服务器的相应数据包很少,而且存在一些 TCP 重传的数据包。进一步检察 TCP 重传数据包的详细信息,发现是由于服务器在发送相应数据包时,某些数据包丢失,导致客户端没有收到完备的相应,从而触发了 TCP 重传机制。
④题目缘故因由息争决方案:颠末进一步排查,发现是服务器所在的网络互换机出现了故障,部分端口存在丢包征象。更换互换机后,再次让员工访问 Web 应用,使用 tcpdump 和 Wireshark 举行抓包分析,发现网络通讯恢复正常,HTTP 请求和相应数据包都能正常传输。通过这个案例,我们可以看到 tcpdump 和 Wireshark 在网络故障排查中的强盛作用,它们可以或许帮助我们深入相识网络通讯的细节,快速找到题目的根源并办理题目。
四、避坑指南与留意事项

4.1权限题目

在使用 tcpdump 时,通常必要 root 权限。这是由于 tcpdump 必要将网络界面设置为稠浊模式,以捕捉全部颠末网络接口的数据包,而平常用户没有权限举行如许的操作 。假如没有足够的权限,运行 tcpdump 时会出现 “tcpdump: no suitable device found” 等错误提示。办理方法很简朴,只需在执行 tcpdump 命令时使用 sudo,获取管理员权限,如 “
sudo tcpdump -i eth0” 。
对于 Wireshark,在 Windows 体系中,默认情况下必要以管理员身份运行才华捕捉数据包。假如没有管理员权限,大概无法选择某些网络接口举行抓包,大概在抓包过程中出现权限不敷的错误。在 Linux 体系中,同样大概必要为用户授予得当的权限,好比将用户添加到 wireshark 组中,并设置干系文件的权限,以答应用户运行 Wireshark 举行抓包操作 。
4.2性能影响

在高流量网络中使用 tcpdump 和 Wireshark 时,大概会对体系性能产生肯定的影响。tcpdump 捕捉数据包的性能会受到体系负载和网络接口速率的限定。在高流量的网络中,tcpdump 大概会由于处置处罚不外来大量的数据包而导致丢包,从而影响分析效果的正确性。别的,tcpdump 在分析和表现数据包时也会占用肯定的体系资源,大概会导致体系运行变慢 。
Wireshark 在捕捉和分析大量数据包时,也会斲丧较多的体系资源,如内存和 CPU。假如盘算机的配置较低,在使用 Wireshark 分析高流量网络时,大概会出现界面卡顿、相应迟缓等情况,乃至大概导致步伐瓦解。为了制止性能题目,可以在抓包前设置公道的过滤条件,只捕捉和分析我们感爱好的数据包,镌汰数据量;同时,确保盘算机具有足够的硬件资源,如内存和 CPU,以支持 Wireshark 的运行 。
4.3存储空间

长时间运行 tcpdump 大概会斲丧大量的磁盘空间。当我们使用 tcpdump 抓包并生存文件时,假如没有实时清算,随着时间的推移,抓包文件会越来越大。比方,在一个繁忙的网络环境中,持续抓包几个小时,大概会天生几个 GB 乃至更大的抓包文件。这些文件不但会占用大量的磁盘空间,还会影响体系的性能。因此,我们要定期管理捕捉文件,实时删除不必要的抓包文件,大概将紧张的抓包文件举行归档存储 。
4.4时间同步

在抓包时,确保服务器或盘算机的时间准确同步非常紧张。正确的时间戳对于分析事故时间线至关紧张,它可以帮助我们确定网络事故发生的先后次序,分析网络通讯的流程。假如时间差别步,大概会导致分析效果出现弊端,无法正确判定网络题目的根源。比方,在分析网络攻击事故时,假如时间不正确,大概会将攻击事故的发生时间与其他正常网络运动的时间肴杂,从而影响对攻击运动的判定和应对步伐的订定 。以是,在举行抓包分析前,要确保体系时间与标定时间同步,可以使用 NTP(网络时间协议)等工具来同步时间 。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表