qrcp:终端扫码传文件
在终端启动临时 Web 服务器并打印二维码,手机扫码即可通过 Wi-Fi 与电脑互传文件。
- 浏览
- 4
- 访问
- 0
- 下载
- 0
- 版本
- v0.11.7
- 平台
- Windows、macOS、Linux
详细介绍
项目简介
qrcp 是一个用 Go 编写的命令行工具,让你不用离开终端就能在电脑和手机之间通过 Wi-Fi 传输文件。它的工作方式是:在本机 Wi-Fi 网卡地址上绑定一个随机端口的 Web 服务器,并生成一个形如下面内容的二维码:
http://{address}:{port}/{random_path}
大多数扫码应用能识别文本中的 URL 并用默认浏览器打开,因此扫码后手机浏览器就会开始下载文件。默认的处理程序在传输完成后会自动退出;用于接收文件时,qrcp 会提供一个上传页面并处理传输。

发送文件到手机:

从手机接收文件:

主要功能
- 发送文件:
qrcp MyDocument.pdf发送单个文件,也可一次传多个文件qrcp MyDocument.pdf IMG0001.jpg - 发送文件夹:
qrcp Documents/ - 传输前打包:
qrcp --zip LongVideo.avi - 接收文件:
qrcp receive存到当前目录,或qrcp receive --output=/tmp/dir指定目录 - 指定网卡:
qrcp -i tun0 MyDocument.pdf;绑定所有网卡用qrcp -i any MyDocument.pdf - HTTPS 传输:
qrcp --tls-cert /path/to/cert.pem --tls-key /path/to/cert.key MyDocument.pdf - 配置文件与环境变量:默认配置文件位于
$XDG_CONFIG_HOME/qrcp/config.yml,也可用--config指定;所有参数支持QRCP_前缀的环境变量 - Shell 补全:支持 Bash、Zsh、Fish
安装与使用
使用 Go 安装(需要 Go 1.18 及以上):
go install github.com/claudiodangelis/qrcp@latest
也可以通过各平台的包管理器安装:
# ArchLinux (AUR)
yay -S qrcp-bin
# macOS (Homebrew)
brew install qrcp
# Windows (WinGet)
winget install --id=claudiodangelis.qrcp -e
# Windows (Scoop)
scoop install qrcp
# Windows (Chocolatey)
choco install qrcp
Linux 的 deb / rpm 包可分别用 sudo dpkg -i qrcp_<version>_linux_x86_64.deb 和 sudo rpm -i qrcp_<version>_linux_x86_64.rpm 安装;其他平台也可从 Releases 页面下载预编译包,解压后把可执行文件放进 PATH(macOS/Linux 常见做法是移到 /usr/local/bin 并设置权限)。
安装后可运行 qrcp --help 确认是否可用。
常用配置项包括 interface(绑定网卡,any 表示 0.0.0.0)、bind(绑定地址,覆盖 interface)、port(端口,默认随机)、path(URL 路径,默认随机字符串)、output(接收文件的默认目录)、fqdn(用域名代替 IP)、keep-alive(传输完成后保持服务器运行,默认 false)、secure、tls-cert、tls-key。
Shell 补全示例:
# Bash
source <(qrcp completion bash)
# Zsh
qrcp completion zsh > "${fpath[1]}/_qrcp"
# Fish
qrcp completion fish | source
注意事项
- 电脑与手机需要处于同一个 Wi-Fi 网络,传输依赖本地网络连通性。
- 默认使用 HTTP 与随机端口、随机路径,在不可信网络中建议启用
secure并配置 TLS 证书与私钥。 - 默认传输完成后服务会自动退出;如需继续使用可开启
keep-alive。 - 项目采用 MIT 许可证。
本作品整理自 GitHub 开源项目 claudiodangelis/qrcp,原作者 @claudiodangelis,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v0.11.7当前版本
修复 CI 发布说明与下载链接的清理、去除版本前缀;检查全部未处理的错误返回值;修复 Darwin 上 sendfile 导致 GET 响应损坏;TCP keepalive 设置失败时不再 panic。
评论