利用ガイド · Clash 技術ブログ

Clash for macOS の使い方:サブスクリプション、システムプロキシ、TUN、権限の設定

macOS では、まずシステムプロキシで安定した接続を一度確立します。ターミナルやほかのアプリが Clash へ入らない場合に限り、TUN を有効にして追加の権限を付与してください。これにより、権限の問題とノードの問題を切り分けられます。

  • macOS
  • 権限
  • クライアントの選び方
目次

メニューバーにアイコンが表示されたら、コアが安定していることを確認する

macOS の Clash クライアントは通常メニューバーに常駐し、メインウィンドウを閉じても動作を続けます。初回設定の前に設定またはログを開き、コアの状態が安定し、core failed や permission denied が繰り返し表示されていないことを確認してください。

古い ClashX、ほかの Mihomo クライアント、VPN を同時に終了し、複数のプログラムが一緒にシステムプロキシを変更しないようにしてください。

このガイドでは、一般的な Profiles、Proxies、System Proxy、TUN という名称を使います。クライアントによって日本語ラベルが多少異なる場合がありますが、順序は変わりません。まず設定を更新できるようにし、次にノードでリクエストを完了し、最後にシステムレベルの取り込み権限を追加します。

サブスクリプションの更新に成功した後、現在の設定として選択する

macOS でリモート設定をインポートする

  1. Profiles / 設定を開く

    サービス提供元の Clash または Mihomo 互換 HTTPS リンクを貼り付けます。

  2. 手動で更新する

    新しい更新日時を待ち、401、403、timeout、parse error に注意します。

  3. Profile を選択する

    現在のマークが古い設定またはサンプルファイルに付いていないことを確認します。

  4. Proxies を開く

    ポリシーグループとノードが空でないことを確認します。

macOS のネットワーク権限ではサブスクリプションエラーを修正できません。更新で 401/403 が返る場合は token またはアカウントを、YAML の解析エラーが返る場合はコアと形式を確認してください。Profile が読み込まれて初めて、システムプロキシと TUN に実行する内容ができます。

メニューバーに実行中と表示されても通信がなければ、まず System Proxy を確認する

メニューバーのアイコンが点灯していても、クライアントが動作中であることしか分かりません。ブラウザがクライアントへ渡されたとは限りません。Proxies のメイン選択グループでノードを一つ固定し、モードは Rule のままにします。System Proxy を有効にすると、macOS からアプリによるネットワークプロキシ変更の許可を求められる場合があります。要求元が現在のクライアントであることを確認してから、システム認証情報を入力するか Touch ID を使用してください。

Safari または Chrome で使い慣れたサイトを開き、Connections で直前のドメインを探します。記録にルールと送信経路が表示されれば、設定、ノード、システムプロキシはすべて動作しています。ブラウザは正常でもターミナルに記録がない場合に限り、ターミナルがシステムプロキシを参照していない可能性があります。

システムプロキシが動作する証拠

  • macOS のネットワーク設定に、現在のクライアントのローカルプロキシポートが表示される
  • ブラウザリクエストが Connections に入る
  • Rule と最終送信経路が想定どおりである
  • System Proxy を無効にすると、同じリクエストが Clash を経由しなくなる
macOS ウィンドウに表示された Clash Verge Rev 公式ライトテーマ。プロキシ画面には複数のポリシーグループが並ぶ
macOS の画面構成は Windows とほぼ同じです。まずプロキシ画面でポリシーグループを固定し、次にシステムプロキシを確認します。公式プレビューを見る

取り込めないアプリだけに TUN と追加権限が必要

TUN は仮想ネットワークインターフェースを作成し、より多くの TCP、UDP 接続を Mihomo へ渡します。ターミナルツール、ゲームランチャー、システムプロキシを参照しないソフトウェアが Connections にまったく表示されない場合は、TUN と比較してください。すでに Clash に入っているものの誤ったルールに一致するリクエストでは、取り込み範囲を広げる必要はありません。

TUN を有効にすると、macOS からネットワーク拡張、補助サービス、または VPN 設定のインストールや許可を求められる場合があります。システム設定には具体的な項目が表示されます。許可する開発元とアプリが現在のクライアントと一致することを確認してください。

有効にしてもスイッチがすぐ戻る、またはログに permission denied と表示される場合は、システム設定の VPN、フィルタ、ネットワーク拡張画面で許可を完了してください。クライアントへ戻って再度有効にし、仮想インターフェースの準備ができるまで待ちます。

権限の案内とその用途

macOS の案内有効になる機能
システムプロキシを変更するシステムプロキシに従うアプリをローカルポートへ接続させる
ネットワーク拡張 / VPN 設定TUN の取り込み経路を作成または実行する
管理者権限 / 補助サービスシステム権限が必要なネットワーク操作を実行する
ローカルネットワークへのアクセスLAN 内の端末を検出または接続する。必要かどうかは用途によって異なる

元々取り込めなかったプログラムへ戻り、Connections に表示されるか確認する

TUN の前後で操作を一つだけ比較する

  1. TUN を無効にして再現する

    システムプロキシ使用時に、そのプログラムの接続記録がないことを確認します。

  2. TUN を有効にする

    同じ Profile、Rule モード、固定ノードを維持します。

  3. まったく同じ操作を繰り返す

    たとえば、同じターミナルコマンドを実行するか、同じランチャーページを開きます。

  4. 新しい接続を確認する

    プロセス、ドメイン、一致ルール、送信経路を記録します。

有効化後に記録が表示されて成功すれば、TUN が不足していたトラフィック入口を補っています。記録は表示されても DIRECT ならルールを、ノード使用後に timeout になるならノードとネットワークを比較してください。まだ記録がなければ、サブスクリプションを変更し続けず、ネットワーク拡張の状態、ファイアウォール、ほかの VPN を確認します。

スリープ解除後に通信できなければ、コアに現在の送信インターフェースを再検出させる

Mac がスリープから復帰した後、または社内 Wi-Fi からモバイルホットスポットへ切り替えた後は、実際の送信アダプターが変わっても TUN の仮想インターフェースに古い状態が残る場合があります。まず数秒待ち、同じリクエストをやり直してください。Connections に新しい記録がなければ、コアを再読み込みするか TUN を一度無効にして再度有効にします。通常、コンピュータの再起動より直接的です。

システムプロキシモードでも、古いプロキシ値が残っていないか確認してください。クライアント画面を閉じた後も macOS のネットワーク設定が 127.0.0.1 のポートを参照していると、すべてのWebページが失敗します。古い値を消すか、現在のクライアントを再起動してください。

スリープ解除後に Connections が空

コアを再読み込みし、クライアントに Wi-Fi と既定の送信経路を再検出させます。

ネットワーク変更後、TUN だけが失敗する

TUN インターフェースを作り直し、ほかの VPN がルートを奪っていないか確認します。

クライアント終了後、ブラウザの通信がすべて切れる

macOS の HTTP、HTTPS、SOCKS プロキシが古いポートを参照したままか確認してください。

TUN は正常でも NAS へ接続できない場合は、ローカルアドレス用の直接経路を残す

プリンター、NAS、ルーターの管理画面、社内ドメインが TUN 有効時に到達不能になる場合、原因はノードではなく、プライベートアドレスがプロキシ経路へ入ったことにある可能性が高いと考えられます。TUN を無効にするとローカル端末がすぐ復旧するなら、原因を LAN ルール、内部 DNS、ルーティングへ絞れます。

その IP が Connections で DIRECT に一致するか確認します。自宅で一般的なプライベートアドレス範囲は通常すでにルールがありますが、企業独自の範囲と split DNS は実際の環境に合わせて追加する必要があります。見覚えのない範囲を含む「全体迂回リスト」をコピーせず、自分で確認できるアドレスだけを扱ってください。

IP では開けるが、内部ドメインでは開けない
内部 DNS が元のネットワーク経由で解決されていない可能性が高いと考えられます。
IP とドメインの両方がプロキシグループへ入る
正確なローカルサブネットまたはドメインルールを、より広いルールより前へ置きます。
すべてのプロキシを無効にしてもアクセスできない
問題は Clash の外にあります。現在の Wi-Fi と端末自体を確認してください。

一度の再起動とスリープ解除で、権限が維持されるか確認する

サブスクリプション、System Proxy、TUN の権限を設定した後、クライアントを一度再起動し、Mac をスリープさせて復帰させます。Profile が現在の設定のままで、ブラウザリクエストが Connections に入り、以前 TUN を必要としたプログラムにも接続記録が出続けるなら、権限とバックグラウンドサービスは今回のセッションだけに一時適用されたものではありません。

システムプロキシは使えるのに、再起動後 TUN が再び拒否される場合は、ネットワーク拡張の権限へ戻ってください。スリープ後にすべてのリクエストが記録されない場合は、コアを再読み込みし、メニューバーのプロセスを確認します。正常な状態は明確です。サブスクリプションを更新でき、ブラウザはシステムプロキシ経由で記録され、TUN を必要とするプログラムも表示され、macOS が起動のたびに同じ権限を要求することはありません。

参考資料