Kivukoのアイコン

Kivuko

Rustで書かれた、WireGuardベースのMacメニューバー用NordVPNクライアント。

Kivuko(キヴーコ)はスワヒリ語で「渡し場」「渡し船」という意味です。

Kivukoは独立したプロジェクトです。Nord Securityが開発、推奨、サポートしているものではありません。ご自身のNordVPNサブスクリプションが必要です。

接続中のKivukoのメニュー:Disconnect、United Statesに設定されたLocation、チェックが入ったKill Switch、Auto-Connect、Block Ads and Trackers

キルスイッチ、自動再接続、広告ブロック

Kivukoは、WireGuard(NordLynx)で接続する、macOS向けの無料でオープンソースのNordVPNクライアントです。

Kivukoのキルスイッチは、macOSによって強制されます。Kivukoはスリープやネットワークの変更後に再接続し、NordVPNのDNSで広告やトラッカーをブロックできます。メモリ使用量は、メニューバーアプリが約23MB、トンネルが約8MBです。

トンネルでは、MullvadによるWireGuardのRust実装であるGotaTunが、macOSのパケットトンネル機能拡張の中で動作します。この機能拡張の起動や、スリープ後などの再起動はmacOSが行います。

サーバが応答しなくなったとき

KivukoはWireGuardのハンドシェイクを15秒ごとに確認します。

  1. 8秒次のサーバを試すサーバが8秒以内に応答しない場合、Kivukoは次のサーバを試します(最大3台)。
  2. 3分ハンドシェイクを強制WireGuardのハンドシェイクが3分間届かない場合、Kivukoは新しいハンドシェイクを強制します。
  3. 6分新しいサーバで再起動6分経つと、macOSが新しいサーバでトンネルを再起動します(Auto-Connectがオンの場合)。

しくみ

Kivuko.app                     app/       menu bar app: menu, token prompt, VPN configuration
└── Contents/PlugIns/
    └── KivukoTunnel.appex     provider/  packet-tunnel extension: server choice, GotaTun, watchdog
  • メニューバーアプリは、macOSが“システム設定”>“VPN”に保持するVPN構成を管理します。これには、キルスイッチ、オンデマンドルール、DNSの選択が含まれます。
  • トンネルはNetworkExtensionのパケットトンネルプロバイダです。アプリが起動していないときの自動再接続も含め、VPNが開始するたびにmacOSがトンネルを起動します。
  • トンネルは起動するたびにNordVPNに推奨WireGuardサーバを問い合わせ、アドレス、経路、DNSをmacOSに渡し、macOSが作成したトンネルインターフェイス上でGotaTunを実行します。
  • 設計上の判断、接続シーケンス、ウォッチドッグについては、docs/architecture.mdで説明しています。

プライバシーとセキュリティ

Kivukoが通信するのはNordVPNのAPIと接続中のVPNサーバだけで、アナリティクスは送信しません。

  • NordVPNのアクセストークンはログインキーチェーンに保存されます。“Connect”をクリックするとアプリがトークンをトンネルに渡し、トンネルはそれを使ってNordVPNからWireGuardの鍵を取得します。
  • トンネルはWireGuardの鍵を専用のサンドボックスコンテナに保存し、読み取れるのは現在のユーザだけです(モード0600)。
  • macOSのVPN構成はMacのどのユーザでも読み取れるため、Kivukoがそこに保存するのは選択した国とDNSだけです。
  • ログに記録されるのはイベントだけで、トークンや鍵は記録されません。Kivukoが書き込むすべてのファイルはdocs/setup.mdに記載されています。

リソース使用量

macOS 26のMacBook Proで測定。

プロセスメモリCPU
メニューバーアプリ23MBアイドル時0%
トンネル8MBバックグラウンド通信時は1%未満、212Mbit/sでのダウンロード中は1コアの約26%

Kivukoを入手

ビルド済みのダウンロードはありません。macOSは有料のApple Developer Programメンバーシップで署名されたVPN機能拡張しか読み込まないため、Kivukoはご自身でビルドして署名する必要があります。詳しい手順はdocs/setup.mdにあります。

必要条件

Mac
Appleシリコン
macOS
14以降(現時点ではmacOS 26でのみテスト済み)
VPNサービス
ご自身のNordVPNサブスクリプション
署名
有料のApple Developer Programメンバーシップ

ビルドに必要なもの

Xcode
そのアカウントでサインイン済み
Rust
1.95以降
  1. リポジトリをクローンし、com.yournameのような独自のバンドルIDプレフィックスを決めます:

    git clone https://github.com/piedol/kivuko.git
    cd kivuko && cp signing/local.env.example signing/local.env

    signing/local.envでKIVUKO_BUNDLE_PREFIXを設定します。Apple IDが複数のデベロッパチームに属している場合は、KIVUKO_TEAMも設定します。scripts/bundle.sh --checkで、署名される内容を確認できます。

  2. ビルド、署名、インストールを行います。初回実行時に、XcodeがMacと2つのバンドルIDを登録し、開発用プロファイルをダウンロードします:

    scripts/bundle.sh --install
  3. Nord Account › NordVPN › Advanced settings › Access tokenで、NordVPNのアクセストークンを取得します。

  4. メニューバーの盾アイコンをクリックし、Set Up and Connectを選択します。トークンをペーストしてSave and Connectをクリックし、macOSからVPN構成の追加を求められたら許可をクリックします。

開発用プロファイルの有効期間は1年です。期限が切れるとmacOSはKivukoを読み込まなくなりますが、scripts/bundle.sh --installをもう一度実行すれば更新できます。Mac上にKivukoのコピーを2つ置かないでください。トンネル機能拡張が2つ登録されていると、どちらかのアプリを開いたときにmacOSがもう一方のトンネルを停止し、VPNが切断されます。

アンインストールするには、アンインストールの手順を順番どおりに実行してください。先にアプリを削除すると、VPN構成を削除するまでキルスイッチが接続をブロックしたままになることがあります。

よくある質問

Kivukoは無料でオープンソースですか?

はい。Kivukoは無料でダウンロードして使用でき、ソースコードはGNU General Public License v3.0以降のもとでGitHubで公開されています。

NordVPNのサブスクリプションは必要ですか?

はい。Kivukoは、Nord Account › NordVPN › Advanced settingsで取得したアクセストークンを使い、ご自身のサブスクリプションでNordVPNに接続します。

KivukoはNord Securityと関係がありますか?

いいえ。Kivukoは独立したプロジェクトです。Nord Securityが開発、推奨、サポートしているものではありません。

Kivukoをインストールするにはどうすればよいですか?

Appleシリコン搭載でmacOS 14以降のMacで、ソースからビルドします。macOSは有料のApple Developer Programメンバーシップで署名されたVPN機能拡張しか読み込まないため、ビルド済みのダウンロードはありません。手順はdocs/setup.mdにあります。

Kivukoはネットワークで何を送信しますか?

通信するのはNordVPNのAPIと接続中のVPNサーバだけで、アナリティクスは送信しません。アクセストークンはログインキーチェーンに保存されたままです。

Kivukoをアンインストールするにはどうすればよいですか?

まずKivukoを終了し、“システム設定”>“VPN”で構成を削除してから、Kivuko.appをゴミ箱に入れ、ログインキーチェーンからトークンを削除します。先にアプリを削除すると、キルスイッチが接続をブロックしたままになることがあります。

ライセンス

KivukoはGNU General Public License v3.0以降のもとで公開されているフリーソフトウェアです。バグ報告やプルリクエストはGitHubで受け付けています。

仕事を含めどこでも使用でき、ソースコードを読み、改変し、共有できます。改変版を配布する場合は、そのソースコードを同じライセンスで公開してください。

クレジット:MullvadによるGotaTun、wireguard-apple、objc2。