如何用linux命令调试接口
如何用linux命令调试接口详细介绍
在 Linux 下调试接口(如网络 API 或服务端口)时,可通过以下命令行工具组合实现:
一、基础连通性检查
telnet/nc(检查端口是否开放)
bashtelnet IP 端口IP 端口
- 成功则显示连接建立,失败则提示拒绝或超时。
ping/arping(网络可达性)
bashIParping MAC地址
二、HTTP/HTTPS 接口调试
curl(万能协议工具)- 基础请求:bash
http://api.example.com/ping - 带 Header:bash
https://api.example.com/data - POST 表单 / JSON:bash
POST http://api.example.com/formPOST http://api.example.com/json
- 基础请求:bash
httpie(更友好的 HTTP 工具,需安装)
bashhttp GET http://api.example.com/pinghttp POST http://api.example.com/json test age:
三、抓包分析(深度调试)
tcpdump(网络抓包)
bashtcpdump eth0 porttcpdump any
- 配合
wireshark分析:tcpdump -w capture.pcap后下载到本地解析。
- 配合
tshark(命令行版 Wireshark)
bashtshark eth0 fields http.request.method http.request.uri
四、服务状态检查
netstat/ss(查看端口占用)
bashss :8080
lsof(查看文件 / 端口关联)
bash:8080systemctl(服务状态,针对 systemd 服务)
bashsystemctl status nginxjournalctl nginx
五、典型调试流程
- 连通性:
ping/telnet确认网络和端口可达。 - 请求测试:
curl/httpie发送请求,检查响应状态码(如 200/404/500)。 - 抓包分析:
tcpdump捕获请求 / 响应原始数据,确认协议是否正确(如 HTTP 头、数据格式)。 - 服务排查:
ss/lsof确认服务是否监听,journalctl查看服务端日志。
常用工具对比
| 场景 | 推荐工具 | 优势 |
|---|---|---|
| 简单请求 | curl |
内置无需安装,支持复杂参数 |
| 可读性调试 | httpie |
自动格式化,语法简洁 |
| 端口连通性 | nc/telnet |
快速验证端口开放状态 |
| 深度协议分析 | tcpdump/tshark |
捕获原始数据包,定位协议问题 |
| 服务状态排查 | ss/lsof/systemctl |
进程、端口、日志一站式检查 |
根据接口类型(HTTP、TCP、UDP 等)选择合适工具,组合使用可高效定位问题。