Linux接口访问失败_curl网络测试技巧

3次阅读

curllinux 下精准定位接口访问失败原因的首选工具,通过 -v 查看全过程、nslookup/dig 测试 dns、直连 ip 排查解析问题、-k 或 –tlsv1.2 检查 tls、加 header 和超时参数模拟真实请求、telnet/nc 验证端口可达性。

Linux接口访问失败_curl网络测试技巧

Linux下接口访问失败时,用 curl 做网络测试是最直接有效的方式。关键不是反复重试,而是通过参数精准定位问题出在网络层、DNS、TLS、http 还是服务端本身。

确认基础连通性与 DNS 解析

先排除最底层的网络不通或域名无法解析:

  • curl -v http://example.com 查看完整请求过程,重点关注 Connected to 行是否出现 IP 地址;没出现说明 DNS 或路由失败
  • 单独测试 DNS:运行 nslookup api.example.comdig +short api.example.com,确认能否返回预期 IP
  • 绕过 DNS 直接测 IP:curl -v http://192.168.1.100:8080/health,若成功说明 DNS 配置或缓存异常

检查 TLS/ssl 握手是否正常

https 接口失败常卡在证书验证或协议协商阶段:

  • -k 跳过证书校验(仅测试用):curl -k -v https://api.example.com/health,若成功说明是证书过期、域名不匹配或系统时间错误
  • 查看详细 SSL 信息:curl -v –ssl-no-revoke https://api.example.comwindows WSL 注意加 --ssl-no-revoke
  • 强制指定 TLS 版本排查兼容性:curl –tlsv1.2 -v https://api.example.com

模拟真实请求头与超时行为

服务端可能拒绝默认 curl 的 User-Agent,或因响应慢被客户端中断:

  • 带上常用 Header:curl -H “Content-Type: application/json” -H “User-Agent: Mozilla/5.0” -v https://api.example.com/data
  • 设置合理超时:curl –connect-timeout 5 –max-time 15 -v https://api.example.com,避免卡死在慢响应上
  • 查看服务端返回的真实状态码和 Header:curl -I https://api.example.com/health(仅 HEAD 请求,快速判断可用性)

结合 telnet/netcat 快速判断端口可达性

curl 失败但不确定是应用层还是传输层问题时,跳过 HTTP 协议直连端口:

  • 测试 TCP 连通:telnet api.example.com 443nc -zv api.example.com 443,能连上说明防火墙/网络策略放行
  • 如果 telnet 成功但 curl 失败,大概率是 TLS 或 HTTP 层问题(如服务未启用 HTTPS、ALPN 不支持、路径重定向异常等)
  • 抓包辅助判断(需权限):tcpdump -i any port 443 -w debug.pcap,另起终端运行 curl,再用 wireshark 分析握手流程
text=ZqhQzanResources