axiom0x0/bifrost
GitHub: axiom0x0/bifrost
通过二维码在电脑与手机之间实现零安装的局域网文件双向传输工具,无需云存储或数据线。
Stars: 61 | Forks: 6
# Bifrost

通过二维码在电脑和手机之间桥接文件。无需云存储,无需数据线,无需安装应用 —— 扫码即用。
## 功能
- **双向传输** — 在同一会话中发送和接收
- **目录浏览** — 将文件夹作为适合移动端的文件选择器提供服务
- **端到端加密** — 使用嵌入在二维码中的 AES-256-GCM 密钥,绝不通过网络发送
- **零配置** — 单个二进制文件,无需设置,无需账户
## 安装
### 下载二进制文件
从 [Releases](https://github.com/axiom0x0/bifrost/releases) 获取适用于您平台的最新版本:
| 平台 | 二进制文件 |
|----------|--------|
| Linux (x86_64) | `bifrost-linux-amd64` |
| Linux (ARM64) | `bifrost-linux-arm64` |
| macOS (Intel) | `bifrost-darwin-amd64` |
| macOS (Apple Silicon) | `bifrost-darwin-arm64` |
| Windows (x86_64) | `bifrost-windows-amd64.exe` |
```
# 示例:Linux x86_64
curl -LO https://github.com/axiom0x0/bifrost/releases/latest/download/bifrost-linux-amd64
chmod +x bifrost-linux-amd64
sudo mv bifrost-linux-amd64 /usr/local/bin/bifrost
```
### 通过 Go 安装
```
go install github.com/axiom0x0/bifrost@latest
```
### 从源码构建
```
git clone https://github.com/axiom0x0/bifrost.git
cd bifrost
make install # builds and installs to ~/.local/bin/bifrost
# 或者:make all # 将所有平台交叉编译到 dist/
```
## 用法
### 发送文件(双向)
```
bifrost myfile.gpx
bifrost -f photo.jpg -p 9090
```
打开一个包含下载按钮和上传表单的页面。您的手机既可以获取文件,也可以发送文件回来。
### 仅接收文件
```
bifrost -r
bifrost -r -o ~/Downloads
```
打开一个适合移动端的上传页面。扫描二维码,选择文件,它们就会直接传送到您的电脑上。
### 浏览目录
```
bifrost -d ~/Photos
bifrost -d /path/to/files -p 9090
```
提供一个带有图标和大小的文件列表。点击任意文件进行下载。包含上传表单。
### 加密传输
在任何模式下添加 `-e`:
```
bifrost -e myfile.gpx # encrypted send
bifrost -e -r # encrypted receive
bifrost -e -d ~/Photos # encrypted browse
```
生成一个随机的 AES-256-GCM 密钥,并将其嵌入到二维码的 URL fragment(即 `#` 部分)中。密钥绝不会通过网络传输 —— 它仅存在于二维码和您的浏览器内存中。文件使用 Web Crypto API 在客户端进行加密/解密。
### 参数标志
| 标志 | 描述 | 默认值 |
|------|-------------|---------|
| `-f` | 要提供的文件(发送模式) | — |
| `-r` | 仅接收模式 | `false` |
| `-d` | 要浏览和提供的目录 | — |
| `-o` | 接收文件的输出目录 | `.` |
| `-p` | 服务监听的端口 | `8888` |
| `-e` | 启用端到端加密 | `false` |
| `-v` | 打印版本信息并退出 | — |
## 工作原理
1. 检测您的本地网络 IP
2. 以适当的模式启动 HTTP 服务器
3. 生成指向该 URL 的二维码(如果使用了 `-e`,加密密钥会包含在 fragment 中)
4. 您的手机扫描二维码并直接通过局域网进行交互
无需互联网 —— 完全在您的本地网络上运行。
## 对比
| 工具 | 接收方需要安装 | 加密 | 二维码 | 支持互联网 |
|------|----------------------|------------|---------|-------------------|
| [LocalSend](https://localsend.org) | 是 | 是 | 否 | 否 |
| [Croc](https://github.com/schollz/croc) | 是 | 是 | 否 | 是(中继) |
| [Magic Wormhole](https://github.com/magic-wormhole/magic-wormhole) | 是 | 是 | 否 | 是(中继) |
| [KDE Connect](https://kdeconnect.kde.org) | 是 | 是 | 否 | 否 |
| [qrcp](https://github.com/claudiodangelis/qrcp) | 否 | 否 | 是 | 否 |
| **Bifrost** | **否** | **是** | **是** | **否** |
Bifrost 的独特优势:接收方只需要一个摄像头和一个浏览器。无需应用,无需账户,无需配对。
## 许可证
MIT
标签:Go, Ruby工具, 二维码, 实用工具, 局域网传输, 文件传输, 日志审计, 端到端加密