You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下如何追踪应用与外部API的通信内容?

Ubuntu 22.04下如何追踪应用与外部API的通信内容?

嗨,我明白你现在的困扰——看不到应用和API之间的通信细节确实让人头疼。其实Ubuntu上有不少工具能帮你搞定这个,我给你整理几个实用的方法,从简单到进阶都有:

1. 用strace追踪网络系统调用(适合看底层交互)

你之前尝试的strace其实是可行的,只是可能没用到正确的参数。strace能追踪应用发起的所有系统调用,其中网络相关的connect、send、recv等调用就能帮你看到应用和API的交互动作。

操作步骤:

  • 先找到应用的进程ID(PID):用pgrep <你的应用名称>,比如pgrep myapp,返回的数字就是PID。
  • 运行strace追踪网络调用:sudo strace -e trace=network -s 1024 -p <PID>
    • -e trace=network:只过滤网络相关的系统调用,避免输出太多无关内容
    • -s 1024:设置显示的字符串长度(默认只有32字节,会截断内容)
    • -p <PID>:附加到已经运行的应用进程上

如果你的应用是从命令行启动的,也可以直接在启动时就加上strace:sudo strace -e trace=network -s 1024 <应用启动命令>

注意:strace只能看到底层的字节流,看不到格式化的HTTP请求/响应内容,适合确认应用是否真的发起了网络请求,以及目标地址。

2. 用tcpdump抓包(适合分析原始网络数据包)

tcpdump是命令行的抓包工具,可以直接捕获应用和API之间的所有网络数据包。

基本用法:

  • 如果知道API的域名或IP:sudo tcpdump -i any host <API域名或IP> -w api_capture.pcap
    • -i any:监听所有网卡
    • -w api_capture.pcap:把抓到的包保存到文件,方便后续分析
  • 如果不知道API地址,可以先抓所有HTTP/HTTPS流量:sudo tcpdump -i any port 80 or 443 -w http_capture.pcap

查看抓包内容:

  • 直接在命令行查看:sudo tcpdump -r api_capture.pcap
  • 更直观的方式是用Wireshark打开pcap文件,方便过滤和分析。

注意:如果API用的是HTTPS(443端口),tcpdump抓到的是加密后的内容,需要额外步骤解密才能看到明文。

3. 用Wireshark可视化分析(图形界面,更友好)

Wireshark是图形化的抓包工具,操作比tcpdump简单,适合新手。

操作步骤:

  1. 安装Wireshark:sudo apt install wireshark
  2. 运行Wireshark:sudo wireshark(需要sudo权限才能抓包)
  3. 在界面中选择要监听的网卡(推荐选any监听所有网卡)
  4. 设置过滤规则:
    • 要抓HTTP流量:输入http并回车
    • 要抓HTTPS流量:输入tls并回车
    • 要针对特定API:输入ip.addr == <API的IP地址>并回车
  5. 点击开始抓包按钮,然后操作你的应用触发API调用,抓包完成后停止即可。

如果要解密HTTPS流量,需要在Wireshark中配置SSL密钥,或者配合mitmproxy使用(下面会讲)。

4. 用mitmproxy解密HTTPS流量(适合看明文的API请求/响应)

如果API是HTTPS的,前面的工具只能看到加密内容,mitmproxy作为中间人代理,可以帮你解密并查看完整的HTTP请求和响应。

操作步骤:

  1. 安装mitmproxy:sudo apt install mitmproxy
  2. 启动mitmproxy:直接在命令行输入mitmproxy,它会在本地启动一个代理服务(默认地址127.0.0.1:8080)
  3. 让应用通过mitmproxy代理访问API:
    • 如果应用有代理设置选项,直接填入http://127.0.0.1:8080
    • 如果应用没有代理设置,先设置系统环境变量,再启动应用:
      export http_proxy=http://127.0.0.1:8080
      export https_proxy=http://127.0.0.1:8080
      <你的应用启动命令>
      
  4. 安装mitmproxy的根证书(避免应用报SSL错误):
    • 证书文件在~/.mitmproxy/mitmproxy-ca-cert.pem
    • 复制证书到系统信任目录:sudo cp ~/.mitmproxy/mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/mitmproxy.crt
    • 更新系统证书:sudo update-ca-certificates

完成后,操作应用触发API调用,mitmproxy的界面就会显示所有明文的请求和响应内容,包括URL、请求头、请求体、响应状态、响应体等,非常直观。


备注:内容来源于stack exchange,提问作者plpm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 15:17:29