アップデート一覧に戻る
New releaseSep 2, 2026

bitbang-cli v0.5.0

エンドツーエンド暗号化されたピアツーピアWebRTCを介して、インタラクティブシェル・ファイル転送・Webプロキシを備えたマシンへの安全なリモートアクセスを確立します。ブラウザまたはCLIを使用し、ポートフォワーディングやアカウントは不要です。

共有

BitBang CLI

Tests License

bitbang は単一の静的バイナリによるリモートアクセスのマルチツールです。任意のブラウザから、リモートマシンへのインタラクティブシェルとファイルブラウザにアクセスできます。そのマシンのネットワーク上のWebアプリにも到達できます。ブラウザ以外にも、TCPポートフォワーディング、ファイルコピー、ターミナル共有を行えます。アカウントも設定も不要で、そのまま動作します。

bitbangをインストールし、bitbang serveを実行して、表示されたURLをブラウザで開くと、シェル、ファイルブラウザ、およびそのマシンのネットワークへのプロキシが利用できます

接続先のマシン上で:

curl -sSfL bitba.ng/install | sh
bitbang serve

serve は URL を出力します。任意のブラウザで開くと、ターミナル、ファイルブラウザ、そしてそのマシンのネットワークへのプロキシが利用できます。あるいは別のターミナルから bitbang connect <url> で同じマシンに接続でき、ポート転送(-L)とファイルコピー(bitbang cp)が追加されます。接続はエンドツーエンドで暗号化されたピアツーピア方式です。bitba.ng サーバーは両端を引き合わせた後、身を引きます。

bitbang は単一の静的 Go バイナリです。BitBang プロジェクトの一部であり、このホワイトペーパーでは設計を詳しく解説しています。

比較

ngrokTailscalebitbang
初回利用前のセットアップアカウント + authtokenアカウント + 各デバイスでのログインコマンドを1つ実行するだけ
何かを共有するために実行するものWeb サーバー、加えて ngrok両方のマシンでクライアントを実行bitbang serve
遠隔側のブラウザが得るものすでに実行していた Web サーバー何もなし -- クライアントが必要ターミナル、ファイルブラウザ、リモートネットワーク上の Web アプリ
データ経路彼らのサーバーP2P(リレーフォールバック)P2P(リレーフォールバック)
エンドツーエンド暗号化デフォルトではなしありあり

クイックレシピ

自宅のサービスにアクセスする

マシンに接続する

他の誰かと共有する

共有とは、単にアクセスを許可する一意の URL または QR コードを相手に渡すことです。権限は細かく調整でき、数分、数時間などで失効するように設定できます。

開発とデバイス

テクニック

bitbang の使い方

すべての接続には両端があります。リスナー (bitbang serve、到達される側のマシンで実行) と コネクター (到達する側のマシン上のブラウザ、または bitbang CLI) です。1 つのリスナー URL が両方の種類のコネクターにサービスを提供します。

リスナー: bitbang serve

bitbang serve                    # everything: shell + proxy + files + forward
bitbang serve shell              # just a terminal
bitbang serve files ~/share      # just a directory (-files-upload to allow uploads)
bitbang serve proxy localhost:8080       # just one web app, straight at the URL
bitbang serve proxy a.lan:80,b.lan:80    # ...or several, chosen in the browser
bitbang serve forward 127.0.0.1:22       # just TCP, for `connect -L`

bitbang serve shell files ~/share proxy nas.lan:8096   # any combination

それぞれが QR コード、URL、ペアリングコードを出力します。モードはリスナーがそもそも何を行えるかを決めます。serve shell には付与する転送機能がなく、転送専用リスナーはシェルを起動しないため、昇格できる対象は何もありません。

知っておくべきデフォルトが 1 つあります。転送とプロキシは、リスナーが到達できる任意の host:port に到達します。想定していた 1 つだけではありません。そのため、データベース用に発行したリンクは、そのネットワークの他の部分にも到達します。ターゲットをその語の後に指定すると範囲が狭まります。forward db.internal:5432 はそこにのみ到達し、それ以外には到達しません。

実行中のセッションを共有する: bitbang share

serve shell は新しいシェルを起動します。share はすでに実行中の tmux セッションを公開します:

bitbang share                    # publish the current tmux session
bitbang share --read-only        # publish without a control URL
bitbang share status|stop|rotate

コマンドは公開後に戻るため、すでに進行中のタスクに対して Ctrl-Z、bitbang share、fg が機能します。ホスティングには Unix または WSL 上の tmux 3.2+ が必要です。ネイティブ Windows クライアントは URL を開くことはできますが、共有をホストすることはできません。

デフォルトでは、コマンドは 2 つのベアラー URL を出力します:

  • Control URL はローカルキーボードと同じ権限で入力できます。一度に接続できるコントローラーは 1 つです。
  • View URL は閲覧専用です。入力は tmux に到達する前に破棄され、最大 --max-viewers 人のビューアが同時に接続できます (デフォルト 16)。

--read-only はコントロール用の認証情報を完全に省略します。ビューアとコントローラーの制限は、シェルを開く前であっても、各接続の存続期間中保持されます。

共有はデフォルトでは停止するまで実行されます; --ttl は存続期間を設定します (例: --ttl 1h)。共有 URL は一時的なものであり、devices.json に保存されることはありません。share stop、TTL の期限切れ、またはソースセッションの削除は、ソースセッションを停止せずにリモートピアを切断します。

bitbang share を再実行すると、実行中の共有の URL が再出力されます。実行中の内容と矛盾するフラグを渡した場合 (例えば、コントロール URL を持つ共有に対して --read-only)、古い URL を返すのではなくその旨を通知します; bitbang share rotate は、新しいフラグを使用する共有で既存の共有を置き換えます。

バックグラウンドワーカーは分離された _bbshare_* tmux 管理セッションで実行されるため、管理すべきデーモンや PID ファイルはありません。

共有は tmux のオプションを一切変更しません。tmux のデフォルトである window-size latest では、ウィンドウはアクティブな読み書きクライアントに追従します; ビューアのみの場合でも、利用可能な唯一のサイズを提供します。window-size が上書きされている場合、share はそれを報告しますが、ユーザーの設定は変更しません。

1 つのリスナー、1 つの URL、そして必要なだけの アクセスリンク。それぞれが同じ URL 上の別個のコードであり、リスナーが提供するもののサブセットを付与し、オプションで指定した時刻に失効します:

bitbang link edit                # add entries in $EDITOR
bitbang link ls                  # what you have handed out
bitbang link rm <label>          # revoke one
bitbang link qr <label>          # its URL and QR code

カテゴリ