如何使用Wireshark调试WebSockets

24

我已经使用Python Tornado服务器在本地主机上托管了我的WebSocket服务器,地址为ws://localhost:8001,客户端位于另一个系统上:192.168.0.116。当我们尝试通信时,它可以正常工作,但无法使用Wireshark进行调试。

我的WebSocket运行在8001端口,因此我尝试使用

tcp.port==8001

但没有找到结果,所以我尝试在 http:// 我的局域网 IP 是 192.168.0.219,端口是 8001。

http.host == 192.168.0.219 && tcp.port == 8001

但是没有找到任何结果。 还有什么其他方法可以尝试来调试我的WebSocket吗?

3个回答

29

您还可以使用显示过滤器来筛选仅显示WebSocket数据包:

(websocket)

3
对于我来说,有时候看起来可以使用,在stackoverflow上适用于套接字连接,但出于某些原因,在我正在构建的网站上不适用。我想知道是否因为我正在构建的网站采用了ssl/tsl协议? - Josh Mc

9
最终我找到了它。
当我输入

时,页面的布局出现了问题。
tcp.dstport == 8001 || tcp.srcport == 8001

那时我可以捕捉到它。

2
WebSockets不一定使用8001端口。例如,Openshift WebSockets目前使用8000端口:https://blog.openshift.com/paas-websockets/ - vicch

4

检查过滤器的语法,在你的情况下应该是 tcp port 8001

步骤如下:

  1. 选择捕获选项
  2. 选择网络接口
  3. 在“捕获过滤器”按钮旁边的字段中填写 tcp port 8001
  4. 开始

你需要添加更多的信息,比如你尝试了什么具体操作,在哪个平台上进行尝试,使用的是哪个版本等。对于我来说,我经常在Linux中使用这种过滤器,而且它很有效。同时,请检查您是否以特权方式运行wireshark(超级用户或suid),并检查您是否正在过滤正确的网络接口。 - gpoo
我应该选择哪个网络接口? 预计时间 - 我选择了Loopback,它起作用了 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接