Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/ekzhang/bore
汎用ユーティリティネットワークセキュリティ
GitHubekzhang/bore

bore

Rustで書かれたシンプルなTCPトンネル。ローカルポートをリモートサーバーに公開し、NATファイアウォールをバイパスします。軽量で自己ホスト可能、インストールも簡単です。

リポジトリを見るウェブサイト
11.4k5146ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

bore

Build status Crates.io

Rust で書かれた、モダンでシンプルな TCP トンネル。ローカルポートをリモートサーバーに公開し、標準的な NAT 接続ファイアウォールをバイパスします。これだけです。それ以上でもそれ以下でもありません。

ビデオデモ

root@kitploit:~
# Installation (requires Rust, see alternatives below)
cargo install bore-cli

# On your local machine
bore local 8000 --to bore.pub

これにより、ローカルポート localhost:8000 が、公開インターネット上の bore.pub:<PORT> に公開されます(ポート番号はランダムに割り当てられます)。

localtunnel や ngrok と似ていますが、bore は非常に効率的で、TCP トラフィックを転送するための意見を持たないツールで、インストールが簡単でセルフホストも容易、余計な機能は一切ありません。

(bore は安全で非同期な Rust コード約400行で構成され、セットアップはクライアントとサーバーのバイナリを1つ実行するだけと非常に簡単です。)

インストール

macOS

bore は Homebrew の core formula としてパッケージ化されています。

root@kitploit:~
brew install bore-cli

Linux

Arch Linux

bore は AUR で bore として入手可能です。

root@kitploit:~
yay -S bore # or your favorite AUR helper

Gentoo Linux

bore は gentoo-zh オーバーレイで入手可能です。

root@kitploit:~
sudo eselect repository enable gentoo-zh
sudo emerge --sync gentoo-zh
sudo emerge net-proxy/bore

バイナリ配布

それ以外の場合、bore をインストールする最も簡単な方法は、ビルド済みバイナリを使用することです。これらは macOS、Windows、Linux 向けに リリースページ で入手できます。お使いのプラットフォームに適したファイルを解凍し、bore 実行ファイルを PATH 上のフォルダに移動するだけです。

Cargo

Rust パッケージマネージャーである Cargo を使用して、ソースから bore をビルドすることもできます。このコマンドは、ユーザーがアクセス可能なパスに bore バイナリをインストールします。

root@kitploit:~
cargo install bore-cli

Docker

各リリースごとにバージョン管理された Docker イメージも公開しています。イメージは AMD 64 ビットアーキテクチャ向けにビルドされています。特定のバージョンでタグ付けされており、最小限の "scratch" コンテナから静的リンクされた bore バイナリを実行できます。

root@kitploit:~
docker run -it --init --rm --network host ekzhang/bore <ARGS>

詳細な使用方法

このセクションでは、bore CLI コマンドの詳細な使用方法について説明します。

ローカル転送

bore local コマンドを使用して、ローカルマシンのポートを転送できます。このコマンドは、転送するローカルポートを位置引数として受け取り、リモートサーバーのアドレスを指定する必須の --to オプションも必要です。

root@kitploit:~
bore local 5000 --to bore.pub

オプションで --port オプションを指定してリモート側で特定のポートを選択することもできますが、そのポートが利用できない場合はコマンドは失敗します。また、--local-host を指定すると、ループバックアドレス localhost 以外のローカルエリアネットワーク上の異なるホストを公開できます。

完全なオプションは以下に示します。

root@kitploit:~
Starts a local proxy to the remote server

Usage: bore local [OPTIONS] --to <TO> <LOCAL_PORT>

Arguments:
  <LOCAL_PORT>  The local port to expose [env: BORE_LOCAL_PORT=]

Options:
  -l, --local-host <HOST>  The local host to expose [default: localhost]
  -t, --to <TO>            Address of the remote server to expose local ports to [env: BORE_SERVER=]
  -p, --port <PORT>        Optional port on the remote server to select [default: 0]
  -s, --secret <SECRET>    Optional secret for authentication [env: BORE_SECRET]
  -h, --help               Print help

セルフホスティング

起動手順で述べたように、bore.pub で公開インスタンスが稼働しています。ただし、自身のネットワークで bore をセルフホストしたい場合は、次のコマンドで実行できます。

root@kitploit:~
bore server

これだけです!サーバーが特定のアドレスで起動したら、bore local コマンドに --to <ADDRESS> オプションを指定して、ローカルポートをこのリモートサーバーに転送できます。

制御サーバーとトンネルに異なる IP アドレスを指定することも可能です。この設定は、制御サーバーをプライベートネットワークに置き、トンネル接続をパブリックインターフェース経由で許可したい場合や、その逆の場合に便利です。

bore server コマンドの完全なオプションは以下に示します。

root@kitploit:~
Runs the remote proxy server

Usage: bore server [OPTIONS]

Options:
      --min-port <MIN_PORT>          Minimum accepted TCP port number [env: BORE_MIN_PORT=] [default: 1024]
      --max-port <MAX_PORT>          Maximum accepted TCP port number [env: BORE_MAX_PORT=] [default: 65535]
  -s, --secret <SECRET>              Optional secret for authentication [env: BORE_SECRET]
      --bind-addr <BIND_ADDR>        IP address to bind to, clients must reach this [default: 0.0.0.0]
      --bind-tunnels <BIND_TUNNELS>  IP address where tunnels will listen on, defaults to --bind-addr
  -h, --help                         Print help

プロトコル

暗黙の 制御ポート が 7835 に存在し、オンデマンドで新しい接続を作成するために使用されます。初期化時に、クライアントは TCP 制御ポートを介してサーバーに "Hello" メッセージを送信し、選択したリモートポートのプロキシを要求します。サーバーは確認応答を返し、外部 TCP 接続のリッスンを開始します。

サーバーがリモートポートで接続を取得すると、その接続に対して安全な UUID を生成し、クライアントに送り返します。クライアントはサーバーに別の TCP ストリームを開き、そのストリーム上で UUID を含む "Accept" メッセージを送信します。サーバーはその後、2つの接続を互いにプロキシします。

正確性の理由とメモリリークを避けるため、着信接続はサーバーによって最大10秒間保存され、クライアントが受け入れない場合は破棄されます。

認証

bore server のカスタムデプロイメントでは、オプションで シークレット を要求して、サーバーが他の人に使用されるのを防ぐことができます。プロトコルでは、クライアントが HMAC コードの形式でランダムなチャレンジに応答することにより、各 TCP 接続でシークレットの保持を確認する必要があります。(このシークレットは初期ハンドシェイクにのみ使用され、デフォルトではそれ以上のトラフィックは暗号化されません。)

root@kitploit:~
# on the server
bore server --secret my_secret_string

# on the client
bore local <LOCAL_PORT> --to <TO> --secret my_secret_string

引数にシークレットが指定されていない場合、bore は BORE_SECRET 環境変数からの読み取りも試みます。

謝辞

Eric Zhang (@ekzhang1) によって作成されました。 MIT ライセンス の下で提供されています。

著者は、Rust で人間工学に基づいた効率的なネットワークサービスを書くことを可能にしてくれた Tokio プロジェクトの貢献者とメンテナーに感謝します。

ツールをダウンロード