用wireshark抓了个TCP通讯的包

昨儿个整理了下怎么用wireshark抓包,链接在这里:捋捋wireshark

今天打算抓个TCP通讯的包试试,整体来说比较有收获,给大家汇报一下。

首先就是如何搞到可以用来演示TCP通讯的客户端、服务端,问了下deepseek,win 10上可以用powershell这样启动一个监听8080端口的服务端:

文字版的贴到这里:

$listener = New-Object System.Net.Sockets.TcpListener('0.0.0.0', 8080)

$listener.Start()

用netstat查看一下监听状态,命令 netstat -ano | findstr -I "listen" | findstr 8080,效果:

把这个powershell窗口关闭,再启动一个看一下8080,就不是监听状态了:

莫怪我为何要写这一段,因为我没怎么用过powershell。。。咱继续。。。我这里用一个内网ip为192.168.1.183的windows 10办公电脑启动服务端,从内网ip为192.168.3.240的办公的笔记本上启动客户端、启动wireshark抓包,然后把每一步操作都写下来。

从内网台式机上启动服务端:

现在我们启动了服务端,等待客户端连接(注意光标的位置,阻塞、等待客户端连接)。这些命令的文字版最后帖到文末哈,这里看图就行。

确认一下8080端口启动了,顺便看看监听8080端口的进程信息,漂亮:

从笔记本上启动wireshark,选择从无线网上抓包,设定只捕获过和192.168.1.183:8080的tcp通讯:tcp port 8080 and host 192.168.1.183,

如果觉得这里表述不够详细,看本文开头说的那个帖子,我这里已经监听上了:

从笔记本上用powershell启动客户端:

这个命令会得到一个连接到服务端的客户端对象$client,wireshark捕捉到了三个握手的数据包:

现在我们给服务端发一点消息:

那个flush命令发出后,wireshark就抓到了这俩数据包:

现在该从服务端操作了,这个命令已经不是阻塞状态了:

应该是三次握手就不阻塞了,当时没看,不要在意这些细节,咱们收一下客户端发来的消息:

顺便说一句,这里获取reader/writer实例的写法跟php里的很像,powershell真是兼容并包啊。。

我们从服务端给客户端一些答复:

去看笔记本电脑上的wireshark,新抓到2个数据包:

从客户端接收一下服务端发来的消息,并给对方回复:

去看wireshark,又抓到俩数据包:

去服务端接收一下客户端的消息,给出回复:

去看wireshark,又抓到2个包:

从客户端接收一下:

是时候结束会话了,客户端:

wireshark抓到了2个挥手的包:

服务端:

wireshark又抓到了2个挥手的包:

继续关闭吧,客户端:

服务端:

台式机的8080端口也不是被监听的状态了:

wireshark结束监听,保存包:

附文字命令,服务端:

$listener = New-Object System.Net.Sockets.TcpListener('0.0.0.0', 8080)

$listener.Start()

Write-Host "服务端已启动,等待客户端连接..."

client = listener.AcceptTcpClient()

stream = client.GetStream()

reader = \[System.IO.StreamReader\]::new(stream)

writer = \[System.IO.StreamWriter\]::new(stream)

message = reader.ReadLine()

Write-Host "收到客户端消息: $message"

writer.WriteLine("已收到: message;问:你这瓜保熟吗?")

$writer.Flush()

message = reader.ReadLine()

Write-Host "收到客户端消息: $message"

$writer.WriteLine("知道了,再探再报")

$writer.Flush()

$reader.Close()

$writer.Close()

$client.Close()

$listener.Stop()

客户端:

$client = New-Object System.Net.Sockets.TcpClient("192.168.1.183", 8080)

stream = client.GetStream()

reader = New-Object System.IO.StreamReader(stream)

writer = New-Object System.IO.StreamWriter(stream)

$writer.WriteLine("号外,阿三的阵风被小巴的歼十打下来了")

$writer.Flush()

response = reader.ReadLine()

Write-Host "收到服务端消息: $response"

$writer.WriteLine("是真的,网上视频都出来了")

$writer.Flush()

response = reader.ReadLine()

Write-Host "收到服务端消息: $response"

$reader.Close()

$writer.Close()

$client.Close()

相关推荐
网络研究院1 小时前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智1 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest1 小时前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_2 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845152 小时前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟2 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白3 小时前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G4 小时前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
江华森4 小时前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒5 小时前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php