curl
命令行数据传输工具与可嵌入程序的 libcurl 库,支持 HTTP/2、HTTP/3、FTP、SMTP 等二十多种协议及 SOCKS 代理链,适合后端工程师在调试接口时查看返回头和状态码。
curl 是一个在命令行里跑的数据传输工具,同时提供可嵌入程序的 libcurl 库。它解决的是「把数据从一个地址搬到另一个地址」这件事:抓网页、调接口、传文件、发邮件、测代理,都能用一条命令完成。它没有图形界面,输入 curl 加地址,结果直接打印在终端里。
主要功能
协议覆盖是它最突出的地方。HTTP、HTTPS、FTP、SFTP、SCP、SMTP、IMAP、MQTT、TELNET 等二十多种协议都在支持列表里,HTTP 部分覆盖 GET、POST、PUT、HEAD、multipart 表单、HTTP/2、HTTP/3、重定向跟随、自定义请求头。代理方面支持 SOCKS4、SOCKS5、HTTP 代理以及代理链。TLS 支持 1.0 到 1.3、双向认证和 STARTTLS,压缩支持 gzip、brotli 和 zstd。
实际用起来,它常出现在几种场景:调试后端接口时看返回头和状态码;写 shell 脚本做定时下载或健康检查;在 CI 里验证服务是否可达;配合 jq 之类工具处理 JSON 响应。输出可以按需定制,比如只打印响应头、把传输信息输出成 JSON、按 Content-Disposition 命名下载文件。
适合谁
后端和运维工程师、写自动化脚本的人、需要在自己程序里发起网络请求的开发者。libcurl 被大量软件当作传输引擎,所以即使不直接敲命令,很多人也在间接使用它。普通用户如果只是想下载文件,用浏览器更省事。
费用与限制
curl 是免费开源软件,源码托管在 GitHub,由全球贡献者和赞助商共同维护。当前稳定版是 8.23.0,发布于 2026 年 10 月 14 日。它本身不带图形界面,参数多,新手需要查文档;项目另有一本免费电子书《Everything curl》可参考。