cURL 是一款开源、免费的命令行网络传输工具,由瑞典开发者 Daniel Stenberg 于 1998 年创建并维护至今。 它能够在命令行下通过 URL 语法进行数据传输,支持 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、LDAP 等数十种网络协议。凭借轻量、稳定、跨平台的特性,cURL 已被广泛应用于接口测试、自动化脚本、爬虫开发、 运维部署等各类场景,是全球开发者最常使用的网络工具之一。了解具体能力可查看核心功能, 快速上手请参考使用帮助,遇到问题可查阅常见问题。
软件介绍
了解 cURL 是什么,以及为什么它如此受欢迎
轻量高效
体积小巧、启动迅速,命令行调用即可完成复杂网络请求。
多协议支持
内置支持 HTTP/HTTPS/FTP/SMTP 等二十余种主流网络协议。
跨平台运行
覆盖 Windows、macOS、Linux 及各类嵌入式系统,无缝切换。
开源免费
基于 MIT 许可协议开源,可自由用于商业与非商业项目。
核心功能
cURL 提供丰富的功能以满足各类网络传输需求
文件上传与下载
支持通过 HTTP、FTP 等协议上传或下载文件,支持断点续传、限速与进度显示,适合大文件传输。
认证与加密
支持 Basic、Digest、Bearer Token、客户端证书等多种认证方式,全面兼容 HTTPS、TLS 加密传输。
请求定制
可自定义请求方法、请求头、Cookie、Body、代理、超时等参数,灵活满足接口调试需求。
调试与诊断
提供详细模式 (-v)、仅响应头 (-I)、统计信息 (-w) 等输出选项,便于排查网络与接口问题,详见使用帮助。
表单与 JSON
原生支持表单提交、文件上传、JSON 数据发送,是 RESTful API 测试与调试的得力助手。
脚本自动化
可轻松嵌入 Shell、Python、CI/CD 流水线,实现定时任务、监控告警、批量接口测试等自动化场景。
使用帮助
常用命令示例与参数速查,助您快速上手
获取网页内容
# 下载指定 URL 的网页内容并输出到终端 curl https://www.example.com
下载文件到本地
# -O 保留远程文件名,-L 跟随重定向 curl -L -O https://example.com/file.zip
发送 GET 请求并查看响应头
# -I 仅获取 HTTP 响应头信息 curl -I https://api.example.com/users
发送 JSON POST 请求
# -X 指定方法,-H 设置请求头,-d 携带数据 curl -X POST https://api.example.com/login \ -H "Content-Type: application/json" \ -d '{"user":"admin","pass":"123456"}'
携带 Cookie 与认证
# -b 发送 Cookie,-u 用户名密码认证 curl -b "session=abc123" \ -u admin:password \ https://api.example.com/data
详细调试模式
# -v 显示请求与响应的完整过程 curl -v https://www.example.com
常用参数速查表
| 参数 | 说明 | 示例 |
|---|---|---|
-X | 指定 HTTP 请求方法 | -X POST |
-H | 添加自定义请求头 | -H "Content-Type: application/json" |
-d | 发送请求数据 | -d '{"key":"value"}' |
-O | 按原文件名保存 | -O URL |
-o | 另存为指定文件名 | -o out.html URL |
-L | 跟随重定向 | -L URL |
-I | 仅获取响应头 | -I URL |
-v | 显示详细通信过程 | -v URL |
-u | 设置用户名密码 | -u user:pass |
-b | 发送 Cookie | -b "key=val" |
-x | 使用代理服务器 | -x http://127.0.0.1:8080 |
--limit-rate | 限制传输速度 | --limit-rate 100k |
常见问题
cURL 高频问答汇总,覆盖安装、使用、协议、报错等场景
cURL 是什么工具?
cURL 是一款开源免费的命令行网络传输工具,由瑞典开发者 Daniel Stenberg 于 1998 年创建。它能在命令行下通过 URL 语法进行数据传输,支持 HTTP、HTTPS、FTP、FTPS 等数十种网络协议,被广泛用于接口测试、自动化脚本、爬虫开发与运维部署。详细功能可查看核心功能栏目。
cURL 怎么安装?
Windows 可从本站下载页面获取安装包后解压并配置环境变量;macOS 系统自带 cURL,也可通过 brew install curl 升级;Linux 可使用 apt install curl(Debian/Ubuntu)或 yum install curl(CentOS)一键安装。
cURL 和 wget 有什么区别?
cURL 支持更多协议(HTTP/HTTPS/FTP/SCP/SMTP 等二十余种),默认输出到终端,擅长接口调试与数据传输;wget 专注 HTTP/HTTPS/FTP,默认保存为文件,支持递归下载整站。调试 API 用 cURL,批量下载网站用 wget。
cURL 怎么发送 POST 请求?
使用 curl -X POST 命令,配合 -H 指定请求头、-d 携带数据。例如发送 JSON:
curl -X POST https://api.example.com/login -H "Content-Type: application/json" -d '{"user":"admin"}'
更多命令示例见使用帮助。
cURL 支持哪些网络协议?
cURL 支持 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、LDAP、LDAPS、FILE、TELNET、IMAP、IMAPS、POP3、POP3S、SMTP、SMTPS、RTSP、RTMP、MQTT 等二十余种网络协议,是支持协议最丰富的命令行网络工具之一。
cURL 是免费的吗?可以商用吗?
cURL 完全免费开源,基于 MIT 许可证发布,可自由用于商业与非商业项目,无需付费或授权。但使用时需在软件文档中保留原作者版权声明。各版本修复与演进可查看版本更新日志。
cURL 在 Windows 上怎么使用?
Windows 10 1803 及以上版本系统自带 cURL,可直接在 CMD 或 PowerShell 输入 curl --version 验证。旧版本 Windows 需下载安装包,解压后将 bin 目录路径添加到系统环境变量 PATH 中即可全局调用。
cURL 命令报错怎么排查?
添加 -v 参数查看详细通信过程,定位请求头、响应头与 SSL 握手信息;使用 -I 仅查看响应头。常见错误码:CURLE_COULDNT_CONNECT 表示连接失败,CURLE_SSL_CERTPROBLEM 为证书问题,CURLE_OPERATION_TIMEDOUT 为超时,可配合 --connect-timeout 调整。完整参数说明见使用帮助。
版本更新日志
cURL 各版本发布记录与变更明细,助您了解功能演进与修复情况
- 修复 修复
--write-out在 Windows 下输出 BOM 导致 JSON 解析失败的问题 - 修复 修复 HTTP/2 在连接复用时偶发的头部丢失问题
- 优化 提升 OpenSSL 3.x 后端的 TLS 握手性能
- 新增 支持
--dl-url选项,可直接通过 URL 指定下载源 - 新增 libcurl 新增
CURLINFO_EARLYDATA_SENT统计 TLS 早期数据 - 优化 重写 SOCKS5 代理的连接建立逻辑,降低首包延迟
- 修复 修复
-K读取配置文件时相对路径解析错误
- 新增 支持 TLS 1.3 早期数据(0-RTT)传输
- 新增
--suppress-connect-headers隐藏 CONNECT 代理响应头 - 优化 HTTP/3(QUIC)连接池复用机制改进
- 修复 CVE-2024-2398:HTTP/2 PUSH 流处理越界读取漏洞
- 修复 CVE-2024-2002:Kerberos 认证信息泄露问题
- 优化 修复 iOS 下编译警告与符号冲突
- 新增 libcurl 新增
CURLOPT_PREREQFUNCTION连接前回调 - 新增 支持
%{header_json}输出响应头为 JSON - 优化 重构
--resolve选项,支持 IPv6 地址
- 新增 支持
--test-event事件驱动测试模式 - 新增 libcurl 新增
CURLOPT_CAINFO_BLOB内存证书 - 修复 修复 MSYS2 下
--cacert路径转换错误
- 新增 支持
--retry-all-errors对所有错误重试 - 新增 支持
%{proxy_ssl_verify_result}代理 SSL 校验输出 - 优化 优化 IPv6 Happy Eyeballs 并发连接算法
下载 cURL
选择适合您操作系统的版本,立即开始使用
Windows
版本 8.9.1 · 64 位安装包
使用手机扫描二维码下载
鼠标悬停或点击按钮显示二维码
macOS
版本 8.9.1 · 通用二进制
使用手机扫描二维码下载
鼠标悬停或点击按钮显示二维码
Linux
源码包 · 支持 apt/yum
使用手机扫描二维码下载
鼠标悬停或点击按钮显示二维码