还在用浏览器单线程龟速下载?Surge 这款开源终端下载神器打开32个连接并行下载,实测比 aria2 快38%、curl 快99%。专为键盘党打造的 TUI 工具,支持多镜像分发、流式边下边播、后台守护进程,Docker一键部署远程管理,适合内容创作者和开发者

🎤 引言

你是否经历过这样的场景:下载一个几GB的文件,浏览器进度条像蜗牛一样爬行;网络波动导致下载中断,只能从头再来;多个下载任务同时跑,系统资源被占满却看不到直观的管理界面。

传统的下载工具要么太简单(浏览器内置),要么太复杂(aria2 配置繁琐)。今天介绍的 Surge 是一款专为极客打造的终端下载管理器——它拥有漂亮的 TUI 界面、32 线程并行下载、多镜像自动负载均衡,实测下载速度比 aria2 快 38%,比 curl 快近一倍。


⭐ 核心功能

🔥 极致速度:32 线程并行下载

Surge 的核心优势在于多连接分片下载。传统浏览器只打开一个连接,而 Surge 最多可同时建立 32 个连接,将文件切分成多个区块并行下载,最后自动合并。

根据官方 Benchmark 数据,在 360Mbps 网络环境下下载 1GB 文件:

工具耗时平均速度相对速度
Surge28.93s35.40 MB/s基准
aria2c40.04s25.57 MB/s慢 38%
curl57.57s17.79 MB/s慢 99%
wget61.81s16.57 MB/s慢 114%

这意味着同样的网络条件下,Surge 能比传统工具节省近一半的时间。

🎯 多镜像智能分发

如果你手上有同一个文件的多个镜像源(比如不同 CDN 或网盘分流),Surge 可以同时从所有可用源下载,自动分配下载任务到各个镜像,并在某个源失效时自动故障转移。这对于下载大型开源项目或系统镜像特别有用。

📺 流式顺序下载

Surge 支持Sequential Download(顺序下载模式),即使文件还没完全下载完成,你也可以边下边播。这对于视频、音频文件特别友好——不用等到 100% 就能开始预览内容。

🖥️ 优雅的 TUI 界面

基于 Bubble TeaLipgloss 构建的终端界面,不仅功能强大,颜值也在线。你可以实时看到:

  • 每个任务的下载进度条
  • 实时速度曲线图
  • 队列管理(暂停、恢复、删除)
  • 多任务并行状态

⚙️ 守护进程架构

Surge 采用后台引擎 + 前端界面的架构设计。你可以启动一个后台服务(daemon),然后在任意终端通过 surge connect 连接管理。这意味着:

  • 可以在服务器上常驻后台下载
  • 多个终端窗口共享同一个下载队列
  • 支持远程管理(通过 HTTP API)

📥 安装与使用

Surge 支持多种安装方式,覆盖主流平台:

快速安装

# macOS / Linux (Homebrew)
brew install surge-downloader/tap/surge

# Windows (Winget)
winget install surge-downloader.surge

# Arch Linux (AUR)
yay -S surge

# Go 安装(需要 Go 1.21+)
go install github.com/surge-downloader/surge@latest

Docker 部署

# 下载 compose 文件
wget https://raw.githubusercontent.com/surge-downloader/surge/main/docker/compose.yml

# 启动服务
docker compose up -d

# 获取 API Token
docker compose exec surge surge token

基础使用

# 启动 TUI 界面
surge

# 直接下载文件
surge https://example.com/file.zip

# 批量下载
surge --batch urls.txt

# 启动后台服务
surge server

# 连接远程服务
surge connect 192.168.1.10:1700 --token <token>

🛠️ 高级特性

🌐 浏览器扩展集成

Surge 提供 Chrome/Firefox 浏览器扩展,可以拦截浏览器的下载请求,自动转发到 Surge 处理。安装后,点击网页上的下载链接会直接弹出 Surge 的下载确认框。

扩展默认通过 1700 端口与 Surge 客户端通信,支持本地和局域网远程连接。

🔧 工作窃取与慢速连接优化

Surge 内置智能调度算法:

  • Work Stealing(工作窃取):当某个连接速度变慢时,其他连接会自动分担其任务
  • 慢速连接检测:自动识别并隔离慢速源,避免拖累整体下载速度

详细的优化策略可以参考官方的 Optimization Guide

🔐 API 与自动化

Surge 提供完整的 HTTP API,支持:

# 获取当前下载列表
curl http://localhost:1700/api/downloads -H "Authorization: Bearer <token>"

# 添加下载任务
curl -X POST http://localhost:1700/api/downloads \
  -H "Authorization: Bearer <token>" \
  -d '{"url": "https://example.com/file.zip"}'

这让它可以轻松集成到自动化脚本或第三方应用中。


📊 同类对比

特性Surgearia2MotrixPersepolis
界面TUI (终端)CLIGUIGUI
多线程✅ 32 连接✅ 16 连接
多协议HTTP/HTTPSHTTP/FTP/BTHTTP/BTHTTP/BT
多镜像
流式下载
守护进程
远程管理✅ API✅ RPC
浏览器扩展
内存占用极低

选择建议

  • Surge:追求极致速度、喜欢终端操作、需要远程管理
  • aria2:需要 BitTorrent 支持、偏好配置文件管理
  • Motrix:偏好图形界面、需要简单的拖拽操作
  • Persepolis:需要 YouTube 下载集成

🎯 适用场景

1. 服务器/远程下载

在 VPS 或 NAS 上部署 Surge Server,通过浏览器扩展或 API 远程添加下载任务,不占用本地带宽。

2. 大文件批量下载

需要下载多个镜像源的大型文件(如系统 ISO、数据集),Surge 的多镜像分发能显著提升效率。

3. 弱网环境优化

在网络不稳定的环境下,Surge 的断点续传和连接自动重试机制比传统工具更可靠。

4. 自动化工作流

结合 n8n、Home Assistant 等自动化平台,通过 API 实现下载任务的自动触发和管理。


💡 使用技巧

配置环境变量

# 设置默认服务器地址和 Token
export SURGE_HOST=192.168.1.10:1700
export SURGE_TOKEN=your_token_here

# 之后可以直接使用 surge connect 无需参数
surge connect

批量下载清单

创建一个 urls.txt 文件,每行一个 URL:

https://mirror1.example.com/file.iso
https://mirror2.example.com/file.iso
https://mirror3.example.com/file.iso

然后执行:

surge --batch urls.txt

Surge 会自动从所有镜像同时下载,加速完成。

与浏览器无缝集成

  1. 安装 Surge 浏览器扩展(Chrome/Edge/Firefox 均支持)
  2. 确保本地 Surge 客户端正在运行
  3. 点击网页下载链接时选择"使用 Surge 下载"
  4. 文件将自动进入 Surge 队列,可在终端查看进度

🔗 下载链接


✅ 总结

Surge 是一款为极客而生的下载工具。它用 Go 语言编写,性能优异;TUI 界面基于 Bubble Tea,交互流畅;32 线程并行 + 多镜像分发,速度碾压传统工具;守护进程架构支持远程管理,拓展了使用场景。

如果你厌倦了浏览器的龟速下载,又不想折腾 aria2 的复杂配置,Surge 是一个开箱即用的优秀选择。两位 CS 学生开发的这个项目,已经展现出了专业级下载工具的潜力。

适合人群

  • 终端重度用户
  • 追求下载速度的极客
  • 需要远程/自动化下载管理的用户
  • 喜欢键盘驱动工作流的人

不适合人群

  • 需要 BitTorrent 支持(暂不支持)
  • 偏好图形界面操作
  • 只需要简单偶尔下载的用户