Turnoutは、MacをWireGuardサーバーにwg-quickと同じやり方でつなぐ、ネイティブアプリです。
フックは実行され、ルートはあなたのまま。トンネルがどのネットワークインターフェイスから出ていくかも、あなたが選べます。
近日公開
最初の公開版を準備しています。それまではダウンロードできるものはありません。公開を知りたい方は、GitHubリポジトリをWatchするか、Releasesページをご覧ください。
構成ファイルはwg-quickのとおりに
Turnoutは、wg-quickで使っている.confファイルをそのまま読み込み、macOS上のwg-quickと同じ手順で、同じシステムツールを使って適用します。
PreUpPostUpPreDownPostDown- フックが実行されます。
%iはトンネルのutunインターフェイスに、%Iはトンネル名に置き換えられます。ファイルのフックは、管理者が承認してから実行されます。その仕組み。 AllowedIPs- トンネルにルーティングされ、より具体的なものが優先されます。フルトンネルではデフォルトルートを置き換えず、
0.0.0.0/1と128.0.0.0/1(とIPv6の半分ずつ)を使います。サーバーのアドレスは物理ゲートウェイ側に残るので、自分のトンネルに入り込むことはありません。 Tableautoとmainは上記のとおりにルーティングし、offはルーティングテーブルをあなたに任せます。DNS- トンネルの接続中は、DNSサーバーと検索ドメインがネットワークサービスに設定され、接続を解除すると元の設定に戻ります。
MTU- 書かれた値か、wg-quickと同じ計算で求めた値(出口インターフェイスのMTUから80を引いた値)を使います。
ネットワークインターフェイスを選ぶ
wg-quickの形式にはない2行です。#@で始まるのでwg-quickはコメントとして扱い、同じファイルをそのままwg-quick upでも使えます。
[Interface]
PrivateKey = …
Address = 10.8.0.2/32
DNS = 10.8.0.1
#@ BindInterface = en0
#@ Route = 192.168.0.0/16 dev en0
[Peer]
PublicKey = …
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.com:51820
#@ BindInterface = en0- 暗号化された通信は、ほかのインターフェイスがデフォルトルートを持っていても、常に
en0から出ていきます。サーバーへのルートもen0を通ります。 #@ Route = 192.168.0.0/16 dev en0- これらのネットワークはトンネルを通らず、
en0自身のゲートウェイから出ていきます。カンマで区切って、必要なだけ並べられます。 AllowedIPs- それ以外はすべてトンネルに入ります。
接続中のトンネルの出口インターフェイスは、メインウインドウの経路から変更することもできます。Turnoutは接続を解除し、変更を保存して、もう一度接続します。
ネットワークの変化についていく
ゲートウェイ、インターフェイス、リンクが変わったときや、Macがスリープから復帰したとき、Turnoutは物理ネットワークを通るトンネルのルートを現在のゲートウェイに付け直し、自動MTUを計算し直し、DNSを適用し直します。
トンネルを固定したインターフェイスが一度なくなって戻ってくると、トンネルはそこに固定し直して、もう一度ハンドシェイクします。インターフェイスが戻らなければ、サーバーへのルートはブラックホールになり、ハンドシェイクがトンネル自身に入り込むことはありません。トンネルを通らないルートは、インターフェイスが戻るまで待機します。
自動で接続
トンネルには、スケジュール、Wi-Fiネットワークの一覧、またはその両方を設定できます。
スケジュールの時間帯が始まるとTurnoutはトンネルを接続し、終わると接続を解除します。一覧のネットワークにMacが接続するとトンネルが接続され、離れると接続が解除されます。その間に手動で行った操作はそのまま保たれ、ルールを変えただけで接続や接続解除が起きることはありません。
#@ Schedule = Mon-Fri 09:00-18:00
#@ OnWiFi = Office
ルールは構成ファイルの中の行で、トンネルのページから設定します。Turnoutは開いている間だけルールに従って動くので、“ログイン時に開く”を用意しています。Wi-Fiルールには位置情報へのアクセスが必要です。macOSはWi-Fiネットワークの名前を位置情報として扱うためです。Turnoutはルールを設定するときにアクセスを求め、起動時に求めることはありません。
ファイルを崩さないエディタ
トンネルはフォームでもテキストでも編集でき、いつでも切り替えられます。
変更は関係する行だけを書き換えるので、コメントや並び順はそのまま残ります。問題は行番号付きで一覧され、問題がなくなるまで“保存”はできません。新しいトンネルには、新しく生成した鍵ペアが付きます。
.confファイルや.zipをウインドウにドロップするか、“ファイル” › “ファイルから読み込む…”を選ぶか、コピーした構成を“ファイル” › “クリップボードから新規トンネル…”で貼り付けます。公式のWireGuardアプリが書き出したzipはまとめて開きます。すべてのトンネルを確認し、不要なものを外して、残りを一度に読み込めます。
“ファイル” › “トンネルを書き出す…”はその逆です。トンネルごとに.confを1つずつ入れたzipを、公式アプリが書き出し、読み込むのと同じ構成で作ります。各トンネルの“書き出す…”は、そのトンネルのファイルだけを保存します。
何も残さない
TurnoutがルートやDNSに加える変更は、すべて変更する前に記録されます。
トンネルの接続中にMacがクラッシュしたり電源が落ちたりしても、バックグラウンドサービスは次の起動時に残った変更を元に戻し、それが終わるまでトンネルを接続しません。“Turnout” › “ネットワーク設定を修復…”で、いつでも同じことができます。
アンインストールの経路はひとつです。アプリから始めても、インストーラから始めても、先に中身を読めるシェルスクリプトから始めても同じです。すべてのトンネルの接続を解除し、ルートとDNSを元に戻し、バックグラウンドサービスをログイン項目から外し、アプリ、ログ、環境設定を削除します。保存済みのトンネルは、削除を選ばない限り残ります。アプリからアンインストールすると、ライセンスでそのMacが使っていた枠も空きます。それぞれの方法で削除されるもの
Turnoutではないもの
- キルスイッチはまだありません。Turnoutはトンネル外の通信を遮断しません。トンネルが切れている間、Macは通常のネットワークを使います。
- VPNプロバイダではありません。サーバーはご自身で用意するか、プロバイダやネットワーク管理者から受け取った構成を使ってください。
- NetworkExtensionは使っていません。トンネルはTurnout自身のバックグラウンドサービスで動きます。だからフックが実行でき、ルートがあなたのままなのです。そのため“システム設定” › “VPN”には表示されません。
Macに対して行うこと
Turnoutはrootとして動くバックグラウンドサービスをインストールします。wg-quickと同じツールでアドレス、ルート、DNSを変更し、構成はrootしか読めないフォルダに置き、構成のフックは管理者が承認してから実行します。どれもご自身で確かめられます。
netstat -rn # 追加されたルート
networksetup -getdnsservers Wi-Fi # 設定されたDNSサーバー
cat /Applications/Turnout.app/Contents/Resources/uninstall.sh
ダウンロードとインストール
近日公開
最初の公開版を準備しています。それまではダウンロードできるものはありません。公開を知りたい方は、GitHubリポジトリをWatchするか、Releasesページをご覧ください。
- インストーラ(
.pkgファイル)をGitHubの最新リリースからダウンロードします。 - 開いて手順に従います。Turnoutは“アプリケーション”フォルダにインストールされ、インストールが終わると開きます。
- Turnoutのウインドウでバックグラウンドサービスをインストールし、macOSに尋ねられたら“システム設定” › “一般” › “ログイン項目と機能拡張”で許可します。
インストーラはDeveloper IDで署名されていますが、まだAppleの公証を受けていないため、macOSが開くのを拒否することがあります。その場合は“システム設定” › “プライバシーとセキュリティ”で“このまま開く”を選び、もう一度インストーラを開いてください。
macOS 15以降 · AppleシリコンとIntel · 7日間の試用 · US$19の買い切り、Mac 3台
1つのライセンスでMac 3台
US$19の買い切りで、Mac 3台に使えます。Turnout 1のアップデートはすべて含まれます。まずは試してください。7日間無料で使え、希望すればさらに7日間延長できます。アカウントもカードも不要で、試用期間中はライセンスの確認も行いません。
Mac 3台:あなたのMac、家族のMac、または同じ組織内のMacに使えます。支払いと税金の処理、領収書の送付はPolarが行います。支払いが済むとすぐにPolarのページにライセンスキーが表示されるので、コピーしてTurnoutに貼り付けてください。キーはPolarの購入履歴ページにも残ります。合わなければ、14日以内なら理由を問わず返金します。