一、基础网络测试
1. 连通性测试
curl -I http://example.com # 仅显示响应头(快速检查状态码) curl -v https://api.example.com # 显示详细过程(握手、头信息)
2. 超时控制
curl --connect-timeout 5 -m 10 http://example.com # 连接超时5秒,总超时10秒
3. DNS解析测试
curl --resolve example.com:80:1.2.3.4 http://example.com # 强制指定IP解析
二、性能分析
1. 速度测试
curl -o /dev/null -s -w "时间: %{time_total}s\n速度: %{speed_download}B/s" https://example.com/file.zip
2. 连接阶段分析
curl -w " DNS解析: %{time_namelookup}s 建立连接: %{time_connect}s SSL握手: %{time_appconnect}s 首字节: %{time_starttransfer}s 总时间: %{time_total}s\n" -o /dev/null -s https://example.com
三、特殊场景
1. HTTPS证书检查
curl -vI https://example.com 2>&1 | grep -E "SSL|CN" # 查看证书信息 curl --cacert ./ca.pem https://intranet.com # 自定义CA证书
2. 代理测试
curl -x http://proxy:8080 -U user:pass http://example.com # 通过代理访问
3. API调试
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com curl -H "Authorization: Bearer token" https://api.example.com/data
4. 文件传输
curl -u ftpuser:ftppass -T file.txt ftp://ftp.example.com # FTP上传 curl -O http://example.com/image.jpg # 下载文件保存原名
四、高级诊断
1. IPv4/IPv6强制
curl -4 http://example.com # 强制IPv4 curl -6 http://example.com # 强制IPv6
2. Cookie操作
curl -c cookies.txt http://login.com # 保存Cookie curl -b cookies.txt http://dashboard.com # 携带Cookie
3. 流量控制
curl --limit-rate 100K http://example.com/largefile.iso # 限速100KB/s
五、实用组合场景
场景 | 命令示例 | |
---|---|---|
CDN节点检测 | curl -s -o /dev/null -w "%{remote_ip}" http://cdn.com | |
重定向跟踪 | curl -Ls -w "最终URL: %{url_effective}" -o /dev/null http://bit.ly/short | |
负载均衡测试 | `for i in {1..10}; do curl -s lb.example.com | grep Server; done` |
压缩测试 | `curl -H "Accept-Encoding: gzip" -I example.com | grep Content-Encoding` |
持续监控 | while true; do curl -s -o /dev/null -w "%{http_code} %{time_total}\n" http://service; sleep 2; done |
六、常用输出格式化变量
curl -w " 响应码: %{http_code} 重定向URL: %{redirect_url} SSL验证: %{ssl_verify_result} 本地IP: %{local_ip} 远端IP: %{remote_ip} 下载大小: %{size_download} bytes " -o /dev/null -s http://example.com
调试技巧:使用 -v
时,>
表示发送数据,<
表示接收数据,*
表示附加信息。结合 grep
可快速过滤关键信息(如 grep -E '> Host:|< HTTP'
)。