在调试esp32开发板连星河大模型的时候,用requests连星河,怎么也调不通,想通过抓包,看看openai和自己写的到底有啥不一样。
结论:抓包抓到的太多,而且ssl 已经把一些信息都处理过了,看不到报文的详细情况。
所以没看到openai和自己写的有啥不一样。不过还是记录下来,以便查阅
支持Https解密的Wireshark软件
Wireshark是一个强大的网络协议分析工具,可以捕获和分析网络上的数据包。由于443端口是HTTPS服务的默认端口,Wireshark默认会对443端口上的报文进行解密。然而,要成功捕获和解密HTTPS流量,需要满足以下条件:
- 安装SSL密钥:Wireshark需要安装SSL密钥文件,以便能够解密HTTPS流量。这通常涉及到获取服务器的SSL证书,并将其导入到Wireshark中1。
- 配置过滤器:在抓包时,可以配置过滤器来指定只捕获443端口的流量。这可以通过设置过滤器为"port 443"来实现2。
因为不想太麻烦了,所以没有用 Wireshark这款软件。但是用小本本记下它,有需要的时候,可以用它。
使用tcpdump抓包
安装
sudo apt install tcpdump
使用命令:
sudo tcpdump -i any -n 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
但是这条命令好像并没有运行成功。针对侦听80端口,可以用这条命令:
sudo tcpdump -i any -n 'tcp port 80'
tcpdump是一个强大的网络抓包工具,可以捕获网络接口的数据包,并将其以可读的方式展示出来。可以使用以下命令来安装tcpdump:
sudo apt-get install tcpdump
安装完成后,就可以使用tcpdump命令来查看网口报文了。以下是tcpdump的基本用法:
tcpdump -i 网口名
其中,网口名指的是要查看的网络接口的名称,比如eth0、wlan0等。可以使用ifconfig命令来查看系统中的网络接口信息。
比如命令:
sudo tcpdump -i wlan0 -n 'tcp port 80'
使用tcpdump命令查看网口报文时,可以指定一些过滤条件,以便只显示符合条件的报文。以下是一些常用的过滤条件:
-
按协议过滤:可以使用proto关键字加上协议名来过滤报文,比如`tcpdump -i eth0 tcp`只显示TCP协议的报文。
-
按源地址和目的地址过滤:可以使用src关键字和dst关键字加上IP地址来过滤报文,比如`tcpdump -i eth0 src 192.168.1.100`只显示源地址为192.168.1.100的报文。
-
按端口过滤:可以使用port关键字加上端口号来过滤报文,比如`tcpdump -i eth0 port 80`只显示目的端口为80的报文。
sudo tcpdump -i wlan0 'dst host aistudio.baidu.com'
报错:
sudo tcpdump -i wlan0 'dst host aistudio.baidu.com'
tcpdump: wlan0 dst host aistudio.baidu.com: No such device exists
(No such device exists)
sudo tcpdump -i wlan0 host 'aistudio.baidu.com'
tcpdump -n -i any host 'aistudio.baidu.com'
tcpdump -i eth0 -nnX host 192.168.1.100 and port 80
最后这句话能执行,但是没有显示信息
tcpdump -i wlan0 -nnX host aistudio.baidu.com tcp and port 80
sudo tcpdump -i wlan0 -nnXv host aistudio.baidu.com and port 80
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C
0 packets captured
409 packets received by filter
0 packets dropped by kernel
原来是没有发送到那里的域名报文,改成ip地址
sudo tcpdump -i wlan0 -nnX host 39.156.68.191 and port 443
抓到的信息太多,反而没有用了,有用的信息也刷没了:
08:17:09.706612 IP 192.168.0.112.24294 > 39.156.68.191.443: Flags [.], ack 35, win 1044, length 0
0x0000: 4500 0028 0000 4000 4006 0d5d c0a8 0070 E..(..@.@..]...p
0x0010: 279c 44bf 5ee6 01bb 8e09 2025 52bf 1f97 '.D.^......%R...
0x0020: 5010 0414 fd26 0000 P....&..
08:17:19.528966 IP 39.156.68.191.443 > 192.168.0.112.24294: Flags [P.], seq 35:69, ack 1, win 3128, length 34
0x0000: 4500 004a aa55 4000 2b06 77e5 279c 44bf E..J.U@.+.w.'.D.
0x0010: c0a8 0070 01bb 5ee6 52bf 1f97 8e09 2025 ...p..^.R......%
0x0020: 5018 0c38 c7e1 0000 1703 0300 1d00 0000 P..8............
0x0030: 0000 0000 7326 8c4a 7609 901a d611 8d79 ....s&.Jv......y
0x0040: de80 c197 dd07 6807 a7ab ......h...
08:17:19.572452 IP 192.168.0.112.24294 > 39.156.68.191.443: Flags [.], ack 69, win 1044, length 0
0x0000: 4500 0028 0000 4000 4006 0d5d c0a8 0070 E..(..@.@..]...p
0x0010: 279c 44bf 5ee6 01bb 8e09 2025 52bf 1fb9 '.D.^......%R...
0x0020: 5010 0414 fd04 0000 P.......
08:17:23.039261 IP 39.156.68.191.443 > 192.168.0.112.35700: Flags [.], ack 1, win 3104, length 0
0x0000: 4500 0028 ce35 4000 2c06 5327 279c 44bf E..(.5@.,.S''.D.
0x0010: c0a8 0070 01bb 8b74 3731 076f a843 d41b ...p...t71.o.C..
0x0020: 5010 0c20 2e12 0000 P.......
08:17:23.039286 IP 192.168.0.112.35700 > 39.156.68.191.443: Flags [.], ack 35, win 1044, length 0
0x0000: 4500 0028 0000 4000 4006 0d5d c0a8 0070 E..(..@.@..]...p
0x0010: 279c 44bf 8b74 01bb a843 d41b 3731 0770 '.D..t...C..71.p
0x0020: 5010 0414 361d 0000 P...6...
08:17:32.929518 IP 39.156.68.191.443 > 192.168.0.112.35700: Flags [P.], seq 35:69, ack 1, win 3104, length 34
0x0000: 4500 004a ce36 4000 2c06 5304 279c 44bf E..J.6@.,.S.'.D.
0x0010: c0a8 0070 01bb 8b74 3731 0770 a843 d41b ...p...t71.p.C..
0x0020: 5018 0c20 d548 0000 1703 0300 1d00 0000 P....H..........
0x0030: 0000 0000 72f8 26d8 fdef e684 741b d1e5 ....r.&.....t...
0x0040: 9a0f 657c 9eca dcb6 e246 ..e|.....F
08:17:32.968716 IP 192.168.0.112.35700 > 39.156.68.191.443: Flags [.], ack 69, win 1044, length 0
0x0000: 4500 0028 0000 4000 4006 0d5d c0a8 0070 E..(..@.@..]...p
0x0010: 279c 44bf 8b74 01bb a843 d41b 3731 0792 '.D..t...C..71..
0x0020: 5010 0414 35fb 0000 P...5...
08:17:34.794473 IP 39.156.68.191.443 > 192.168.0.112.24294: Flags [.], ack 1, win 3128, length 0
0x0000: 4500 0028 aa56 4000 2b06 7806 279c 44bf E..(.V@.+.x.'.D.
0x0010: c0a8 0070 01bb 5ee6 52bf 1fb8 8e09 2025 ...p..^.R......%
0x0020: 5010 0c38 f4e1 0000 P..8....
08:17:34.794500 IP 192.168.0.112.24294 > 39.156.68.191.443: Flags [.], ack 69, win 1044, length 0
0x0000: 4500 0028 0000 4000 4006 0d5d c0a8 0070 E..(..@.@..]...p
0x0010: 279c 44bf 5ee6 01bb 8e09 2025 52bf 1fb9 '.D.^......%R...
0x0020: 5010 0414 fd04 0000 P.......
08:17:44.530629 IP 39.156.68.191.443 > 192.168.0.112.24294: Flags [P.], seq 69:103, ack 1, win 3128, length 34
0x0000: 4500 004a aa57 4000 2b06 77e3 279c 44bf E..J.W@.+.w.'.D.
0x0010: c0a8 0070 01bb 5ee6 52bf 1fb9 8e09 2025 ...p..^.R......%
0x0020: 5018 0c38 95eb 0000 1703 0300 1d00 0000 P..8............
0x0030: 0000 0000 7420 bf91 2075 e64f 18fb bff0 ....t....u.O....
0x0040: 8531 cbaf 1ecc f182 b334 .1.......4
08:17:44.573937 IP 192.168.0.112.24294 > 39.156.68.191.443: Flags [.], ack 103, win 1044, length 0
0x0000: 4500 0028 0000 4000 4006 0d5d c0a8 0070 E..(..@.@..]...p
0x0010: 279c 44bf 5ee6 01bb 8e09 2025 52bf 1fdb '.D.^......%R...
0x0020: 5010 0414 fce2 0000 P.......
08:17:48.137714 IP 39.156.68.191.443 > 192.168.0.112.35700: Flags [.], ack 1, win 3104, length 0
0x0000: 4500 0028 ce37 4000 2c06 5325 279c 44bf E..(.7@.,.S%'.D.
0x0010: c0a8 0070 01bb 8b74 3731 0791 a843 d41b ...p...t71...C..
0x0020: 5010 0c20 2df0 0000 P...-...
08:17:48.137740 IP 192.168.0.112.35700 > 39.156.68.191.443: Flags [.], ack 69, win 1044, length 0
0x0000: 4500 0028 0000 4000 4006 0d5d c0a8 0070 E..(..@.@..]...p
0x0010: 279c 44bf 8b74 01bb a843 d41b 3731 0792 '.D..t...C..71..
0x0020: 5010 0414 35fb 0000 P...5...
^C
61 packets captured
374 packets received by filter
0 packets dropped by kernel
总结
tcpdump可能是最常用的抓包软件了。使用命令:
sudo tcpdump -i wlan0 -n 'tcp port 80'
sudo tcpdump -i wlan0 -nnX host 39.156.68.191 and port 443
ngrep抓包
**ngrep** 是一个强大的命令行工具,用于监视网络上的数据包,并能够像使用grep一样搜索特定模式。ngrep结合了tcpdump的网络数据包捕获功能和grep的灵活性和强大的正则表达式支持,使得它在网络调试和流量分析方面非常有用
安装
pkg install ngrep
侦听443端口
ngrep -q '^POST' 'tcp port 443'
不明白为什么没有侦听到
ngrep -q '^POST' 'tcp port 443'
interface: wlan0 (192.168.0.0/255.255.255.0)
filter: (ip or ip6) and ( tcp port 443 )
match: ^POST