ARTICLE · 1299169
curl 不只是下载:8 个隐藏用法全实测
curl 是"联网版 grep":能不能连、多快、返回什么、从哪连,一条命令全问。8 个隐藏用法全实测:-I 只看头、-C - 断点续传(20480 字节完整)、--resolve 钉 IP 排 DNS 污染、-w 拆建连/总耗时、-A 伪造 UA、-L 跟随重定向、-f 脚本连通性检查、ipinfo 外网 IP。组合一条"接口体检"命令收尾。
curl URL 谁都会。但 curl 是“联网版 grep”——能不能连、多快、返回什么、从哪连,一条命令全问得出来。下面 8 个用法全部实测。
① 只看响应头:-I
curl -sI https://example.com/-I 只取头,-s 静默。查服务器类型、缓存策略、重定向目标,不用下载整个页面。
② 断点续传:-C -
curl -o big.bin -C - https://example.com/big.bin下载到一半断了?-C - 从上次的进度接着下。实测:先手动下前 10KB,再 -C - 续传,最终文件 20480 字节完整——一分不差。
③ 绕过 DNS 直连 IP:--resolve
curl --resolve example.com:443:172.66.147.243 -s -o /dev/null -w "%{http_code}\n" https://example.com/“解析对了但连不上”?--resolve 把域名钉到指定 IP,绕开本地 DNS 直接测目标。实测输出 200 远端IP=172.66.147.243——连的就是你钉的那个地址。排 DNS 污染的一把好刀。
④ 接口响应计时:-w
curl -s -o /dev/null -w "http=%{http_code} 总耗时=%{time_total}s 连接=%{time_connect}s\n" https://example.com/-w 输出格式化数据,time_total 总耗时、time_connect 建连耗时。实测:http=200 总耗时=0.69s 连接=0.17s——慢在网络还是慢在服务端,一秒拆开。
⑤ 伪造 UA:-A
curl -sI -A "Mozilla/5.0 (测试UA)" https://example.com/模拟浏览器、模拟爬虫、模拟你的 App——调试“按 UA 返回不同内容”的服务就靠它。
⑥ 跟随重定向:-L
curl -sL -o /dev/null -w "重定向数=%{num_redirects}\n" https://www.github.com/-L 自动跟随 301/302,num_redirects 告诉你跳了几次。实测 github.com 跳了 1 次到 200。
⑦ 静默+退出码:-s -o /dev/null -f
curl -sf -o /dev/null https://example.com/ && echo"可达" || echo"失败"-f 让 HTTP 错误变成退出码非零。脚本里做连通性检查的标配——不打印任何东西,只回你一个成败。
⑧ 外网 IP
curl -s ipinfo.io/ip一行拿公网 IP(本篇第 5 篇 Shodan 体检也用它)。
组合:接口体检一条命令
curl -s -o /dev/null -w "状态:%{http_code} 总耗时:%{time_total}s 远端:%{remote_ip}\n" \ --resolve api.example.com:443:1.2.3.4 -A "巡检脚本" -L https://api.example.com/health状态、耗时、连的哪台机器、带了 UA、跟了重定向——一条命令把接口从上到下体检完。curl 的隐藏用法,装进肌肉记忆。















































































