中国のクラウドサーバーで Bun インストールスクリプトを加速する三つの方法
スクリプト修正から環境変数の利用、そして自前の海外 VPS 経由 SOCKS プロキシまで、より洗練され、より速く、より確実な方法を段階的に示す。実測では自前で組んだプロキシが公開ミラーより約 16 倍速かった。
中国のクラウドサーバーで 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} はシェルの既定値の書き方で、環境に GITHUB があればそれを使い、なければ既定値を使う。つまり一行で済む。
curl -fsSL https://bun.sh/install | GITHUB="https://hk.gh-proxy.com/https://github.com" bash
一時ファイルを落とさず、ゴミも残らない。スクリプトを使う前に、作者が設定の余地を用意していないか確かめる。ほかのインストールスクリプトにも同じ手が使える。
方法三:自分の海外 VPS の SOCKS プロキシを通す(推奨)
gh-proxy.com のような公開ミラーは速度制限があり、急に止まったりブロックされたりする可能性もある。海外 VPS(Vultr、BandwagonHost(搬瓦工)、テンセントクラウド香港 Lighthouse など、月数ドルで借りられる)を一台持ち、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 の帯域は一人で使えて、たいていの公開 CDN より速い。
- サードパーティのサービスに頼らず、マシンを自分で管理できる。
- 汎用性が高く、nvm、rustup、deno、ollama など、GitHub から入れるスクリプト全般に使える。
実測比較
同一の上海 VPS で Bun 1.3.13 をインストール。
| 方法 | ダウンロード元 | 所要時間 |
|---|---|---|
| 方法二 | 公開ミラー hk.gh-proxy.com | 2m59s |
| 方法三 | 自前の香港 VPS(SOCKS5) | 11s |
約 16 倍の差だ。
三つの方法には、それぞれ向いている場面がある。一度きりのインストールなら方法二が最も手軽だ。中国で長く開発するなら、方法三は一度設定すれば長く効く。方法一は、スクリプトの中身を読み解きたいときだけ意味がある。中国で長く開発するなら、安価な海外の小さなサーバーを一台、踏み台として持っておくと、月額をはるかに超える見返りがある。
ついでに補足。まだサーバーを持っていないなら、まず安定した海外の軽量サーバーを一台用意するのがいちばん手間が省ける。テンセントクラウド Lighthouse のような用途別の軽量サーバーは、この手のプロキシの踏み台や臨時の開発機に向いている。
海外の軽量サーバーを探していて、これを踏み台に使いたいなら、テンセントクラウド Lighthouse のキャンペーンページを直接見てほしい:【腾讯云】Lighthouse助力跨境电商业务扬帆出海。この用途に合っている。香港の軽量サーバーは、踏み台にもプロキシにもテスト機にも使いやすい。
更新履歴
- 公開
