中国のクラウドサーバーで 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 で Bun 1.3.13 をインストール。

方法ダウンロード元所要時間
方法二公開ミラー hk.gh-proxy.com2m59s
方法三自前の香港 VPS(SOCKS5)11s

約 16 倍の差だ。

三つの方法には、それぞれ向いている場面がある。一度きりのインストールなら方法二が最も手軽だ。中国で長く開発するなら、方法三は一度設定すれば長く効く。方法一は、スクリプトの中身を読み解きたいときだけ意味がある。中国で長く開発するなら、安価な海外の小さなサーバーを一台、踏み台として持っておくと、月額をはるかに超える見返りがある。

ついでに補足。まだサーバーを持っていないなら、まず安定した海外の軽量サーバーを一台用意するのがいちばん手間が省ける。テンセントクラウド Lighthouse のような用途別の軽量サーバーは、この手のプロキシの踏み台や臨時の開発機に向いている。

テンセントクラウド Lighthouse が越境ECの海外展開を支援

海外の軽量サーバーを探していて、これを踏み台に使いたいなら、テンセントクラウド Lighthouse のキャンペーンページを直接見てほしい:【腾讯云】Lighthouse助力跨境电商业务扬帆出海。この用途に合っている。香港の軽量サーバーは、踏み台にもプロキシにもテスト機にも使いやすい。

更新履歴

  • 公開