国内云服务器加速 Bun 安装脚本的三种方式

在国内云服务器上跑 Bun 的官方安装脚本经常很慢。原因是脚本会从 GitHub Releases 下载二进制,而国内访问 GitHub 受限。

本文假设你已经有一台国内云服务器,能用 SSH 登录,会跑基本命令。下面三种方式按"优雅程度"递进,最后一种实测速度差距悬殊。

方式一:修改脚本里的 GitHub 地址

最直白的做法,把脚本下载下来手动改地址。

wget https://bun.sh/install -O bun-install.sh
# 编辑 bun-install.sh,把 GITHUB 默认值改成 gh-proxy 镜像
# GITHUB=${GITHUB-"https://hk.gh-proxy.com/https://github.com"}
bash bun-install.sh

能用,但绕远路。

方式二:通过环境变量覆盖(无需改文件)

读一下安装脚本就会发现,脚本本身就把 GITHUB 设计成可被环境变量覆盖:

GITHUB=${GITHUB-"https://github.com"}
github_repo="$GITHUB/oven-sh/bun"

${VAR-default} 是 shell 的默认值语法:环境里有 GITHUB 就用环境的,没有才用默认。所以一行就够了:

curl -fsSL https://bun.sh/install | GITHUB="https://hk.gh-proxy.com/https://github.com" bash

不下载临时文件,不留垃圾。这条思路适用于任何"读脚本前先看看作者留没留口子"的场景。

方式三:用自己的境外 VPS 走 SOCKS 代理(推荐)

公益镜像如 gh-proxy.com 有限速、可能跑路、可能被封。如果你已经有一台境外 VPS(比如 Vultr、搬瓦工、腾讯云香港轻量,月付几美元就能拿到),并且配好了 SSH 免密登录,就可以用 SSH 动态转发开一个 SOCKS5 端口:

# 1. 临时建立到境外 VPS 的 SOCKS5 隧道(-f 后台运行,-N 不执行命令)
ssh -fN -D 127.0.0.1:1080 your-overseas-host

# 2. 让安装脚本走代理
ALL_PROXY=socks5h://127.0.0.1:1080 bash -c "$(curl -fsSL --socks5-hostname 127.0.0.1:1080 https://bun.sh/install)"

# 3. 用完记得关掉,否则隧道会一直挂在后台
pkill -f 'ssh -fN -D 127.0.0.1:1080'

socks5h--socks5-hostname 表示让 DNS 解析也走代理,避免国内 DNS 污染导致解析到错误地址。

这套方案的好处:

实测对比

同一台上海 VPS 安装 Bun 1.3.13:

方案下载来源耗时
方式二公益镜像 hk.gh-proxy.com2m59s
方式三自建香港 VPS(SOCKS5)11s

差了约 16 倍。

三种方式各有归宿:临时一次性安装用方式二最省事;长期在国内开发,方式三一次配置长期受益;方式一只在你想看清脚本逻辑时才有意义。如果你在国内长期搞开发,配一台便宜的境外小鸡当跳板,回报远超那点月租。

顺手补一句:如果你还没机器,先把一台稳定的境外轻量服务器配起来最省心。像腾讯云 Lighthouse 这种按场景卖的轻量机型,就很适合拿来做这类代理跳板和临时开发机。

腾讯云 Lighthouse 助力跨境电商业务扬帆出海

如果你正好想找一台境外轻量服务器来做这件事,可以直接看这个腾讯云 Lighthouse 活动页: 【腾讯云】Lighthouse助力跨境电商业务扬帆出海。它和这里的场景是贴合的:拿一台香港轻量做跳板、代理、测试机都比较顺手。

相关文章