まずクライアント、サブスクリプション、システム権限を理解する

macOS VPNのインストールは、アプリを「アプリケーション」フォルダに入れるだけでは完了しません。クライアントのインストール、システムのネットワーク権限、サブスクリプションの追加、ノード選択、プロキシモード、接続確認までが必要です。どれか一つでも未完了だと、「クライアントは接続済みなのにウェブサイトはローカル回線を使っている」「ノード一覧はあるのに接続できない」といった問題が起こります。

クライアントは設定を読み込み、トンネルを確立します。サブスクリプションURLはノード、プロトコル、サーバーのパラメータを提供し、macOSのネットワーク拡張機能の権限は、ルールに合う通信をクライアントが処理できるようにします。3つは連携しますが、同じものではありません。クライアントを削除しても残った設定が自動的に解決されるとは限らず、サブスクリプションを再追加してもシステムの許可の代わりにはなりません。

設定項目 主な役割 よくある問題 対処の方向性
クライアントアプリ 設定の解析、トンネルの確立、ルール分岐の実行 起動できない、メニューバーに状態が表示されない 入手元とアプリの権限を確認する
ネットワーク拡張機能 システムのネットワークスタックで接続を処理する 許可を繰り返し求められる、接続直後に切断される システム設定で許可の状態を確認する
サブスクリプションURL ノードとプロトコルのパラメータを同期する 一覧が空、更新に失敗する URLの完全性とネットワーク到達性を確認する
プロキシモード どの通信を回線に通すか決める 一部のアプリだけ使える、一部は直接接続される ルール、システムプロキシ、トンネルモードを確認する
DNS設定 ドメイン名を接続先アドレスに変換する ページを開けない、名前解決の結果がおかしい DNSがトンネル経由になっているか確認する

macOSに適したクライアントをダウンロードしてインストールする

サービスパネルのダウンロードページからmacOSクライアントを入手します。プロトコル名だけを見てアプリを選ばないでください。「そのプロトコルに対応」と書かれていても、サブスクリプション内のすべての項目に対応しているとは限りません。クライアントによってルーティングルール、DNS、トランスポート層のパラメータ、更新形式への対応が異なるため、サービス側が明示しているクライアントを優先してください。

ダウンロード後、インストーラーを開きます。ディスクイメージで提供されている場合は、アプリを「アプリケーション」へドラッグします。インストーラーの場合は、画面の指示に従って完了させます。初回起動時、macOSがアプリの入手元を確認することがあります。ファイルが想定したダウンロードページのものだと確認できた場合だけ続行し、個別アプリの警告を回避するためにシステム全体のセキュリティ機能を無効にしないでください。

クライアントによってはメニューバーに常駐し、起動しても従来のメインウィンドウが表示されません。その場合は、アプリのアイコンを何度もクリックするのではなく、画面上部のステータスバーを確認します。メニューバーの空きが少ないと、他の項目にアイコンが隠れることもあります。不要なメニューバーアプリを終了してから確認してください。

  • ✅ ダウンロード元がサービスパネルまたはプロジェクトの正式なリリースページである。
  • ✅ アプリを「アプリケーション」に移動しており、ダウンロードフォルダやディスクイメージから実行し続けていない。
  • ✅ 初回起動後にメインウィンドウまたはメニューバーのステータス項目が表示される。
  • ✅ インストール中に表示された開発元が想定したアプリと一致している。
  • ❌ システム全体のセキュリティ保護を無効にして、通常の許可ダイアログに対処しない。

Intel搭載モデルとAppleシリコン搭載モデルでは、異なるビルドを使う場合も、同じユニバーサルビルドで対応する場合もあります。ダウンロードページの表示に従って選び、ファイル名だけで判断しないでください。アプリが起動直後に終了する場合は、まずビルドが合っているか確認し、その後にネットワーク拡張機能がシステムにブロックされていないかを調べます。同じファイルを繰り返し再インストールするのは避けてください。

ネットワーク拡張機能とVPN設定の許可を処理する

クライアントが初めて接続するとき、macOSは通常、VPN設定の追加またはネットワーク拡張機能の有効化を求めます。このダイアログはシステムから表示されるもので、アプリがネットワークインターフェースを作成し、設定に従って通信を処理できるようにします。アプリ名に間違いがないことを確認してリクエストを許可し、続いてシステムの指示に従い、このMacの認証方法で許可を完了してください。

クライアントによって許可を求めるタイミングは異なります。初回起動時に申請するもの、接続ボタンを押して初めて表示されるもの、トンネルモードの有効化時に追加の権限を求めるものがあります。そのため、初めて開いたときにダイアログが表示されなくても、インストールに失敗したとは限りません。先にサブスクリプションを追加して接続を試し、システムの案内を確認してください。

以前に許可を拒否した場合、接続ボタンを何度押してもダイアログが再表示されないことがあります。その場合はシステム設定を開き、プライバシーとセキュリティ、VPN、ネットワーク拡張機能に関する項目を確認し、対象クライアントが許可されているか調べます。システム設定内の分類名はmacOSのバージョンによって変わるため、設定画面に表示されるアプリ名とネットワーク設定を基準にしてください。

システムがVPN設定の追加を求めても、すべてのクライアントが従来型のVPNプロトコルを使うとは限りません。Shadowsocks、VMess、Trojan、VLESS、Hysteria2、TUICなどのプロトコルはクライアントが解析し、システムのネットワーク拡張機能を通じて通信をプロキシまたはトンネルへ送ります。プロトコルはクライアントとサーバー間の通信を担い、システム権限はアプリが処理対象の通信にアクセスできるようにします。この2つを混同しないでください。

この節の結論:現在使用しているクライアント名と一致するシステムのリクエストだけを許可します。許可を拒否した場合はシステム設定で該当する権限を復元し、古い拡張機能やVPN設定の競合を再インストールで隠そうとしないでください。

サブスクリプションを追加してノード一覧を確認する

サービスパネルにログインし、macOSクライアント用のサブスクリプションURLをコピーします。クライアントに戻り、「サブスクリプションを追加」「URLから追加」などの項目を探し、URL全体を貼り付けて確定します。クライアントによってはサブスクリプションを、設定グループ、リモート設定、設定ファイルなどと呼びます。画面上の名称が違うだけで、基本的にはリモートからノードとルールを取得する機能です。

追加が完了しても、すぐに接続しないでください。ノード一覧を開き、地域名、プロトコルの種類、設定グループが表示されていることを確認します。一覧が空の場合は、まず手動でサブスクリプションを更新します。それでも失敗する場合は、コピー時にスペース、改行、句読点が混入していないか確認してください。ブラウザのアドレスバーでは内容が自動的に省略されることがあるため、表示された文字列を手動で選択するのではなく、パネルのコピー機能を使います。

サブスクリプションにはShadowsocks、VMess、Trojan、VLESS、Hysteria2、TUICのノードが含まれることがあります。クライアントが対応するプロトコルと関連パラメータを扱える場合に限り、正常に読み込めます。一部のノードが無視される、利用不可と表示される、追加後に項目が欠ける場合は、サーバー側が推奨するクライアントに変更してください。サーバーアドレス、通信方式、TLSパラメータを自分で削除・変更するのは避けます。

  1. サービスパネルのクライアントダウンロードまたはサブスクリプション画面を開く。
  2. 現在のmacOSクライアントに合うサブスクリプション形式を選ぶ。
  3. サブスクリプションURL全体をコピーし、公開場所に転送しない。
  4. クライアントでリモートサブスクリプションまたは設定グループを新規作成する。
  5. 更新を実行し、ノード一覧の解析が完了するまで待つ。
  6. 目的の地域のノードを選び、接続設定へ進む。

システムプロキシ、トンネル、ルール分岐のモードを選ぶ

クライアントの一般的な動作方式には、システムプロキシとトンネルモードがあります。システムプロキシは主にmacOSのプロキシ設定に従うアプリに影響します。独自に接続を確立するプログラムはシステムプロキシを参照せず、直接接続を続けることがあります。トンネルモードはネットワーク拡張機能でより広い通信を処理するため、適用範囲は通常広くなりますが、システムの許可と正しいルーティング設定への依存も大きくなります。

ルール分岐は、どのドメイン、アドレス、アプリを国際回線へ通し、どれを直接接続にするかを決めます。ルールモードは不要な迂回を減らせるため日常利用に適しています。グローバルモードはより多くの通信を現在のノードへ渡すため、原因の切り分けに便利です。直接接続モードではプロキシ回線を使いません。トラブル対応では一時的に切り替えて比較できますが、原因を確認したら実際の用途に合う設定へ戻してください。

IEPL専用線、中継回線、直接接続回線は、通信経路の構成方法を表すもので、クライアント内のプロキシモードではありません。直接接続回線はローカルから遠隔の入口へ直接アクセスするため経路が単純ですが、利用中の通信事業者や国際経路の変化を受けやすくなります。中継回線はまず中継入口へ接続し、そこから遠隔ノードへ転送します。IEPL専用線は、国際転送の一部を専用回線上で処理する方式です。クライアントはサブスクリプションのパラメータに従って接続する必要があり、「グローバル」に切り替えただけで通常の直接接続ノードを専用線に変えることはできません。

モード 通信の範囲 適した用途 確認するポイント
ルール分岐 ドメイン、アドレス、ルールに基づいて振り分ける 日常の閲覧と複数アプリの併用 対象ドメインが正しいルールに一致しているか
グローバルプロキシ 可能な限り現在のノードへ渡す ルール分岐が問題の原因か確認する ローカルサービスを不要に迂回させていないか
システムプロキシ システムプロキシ設定に従うアプリ ブラウザと一般的なデスクトップアプリ アプリがシステムプロキシを回避していないか
トンネルモード ネットワーク拡張機能が処理する接続 より多くのアプリ通信を対象にしたい場合 システムの許可、ルーティング、DNS
直接接続 プロキシ回線を経由しない ローカルリソースの利用または一時停止 直接接続を接続済みと誤認していないか

ブラウザでは対象サイトにアクセスできるのに、ターミナル、ゲームプラットフォーム、単体のアップデーターが接続できない場合は、まずそれらのアプリがシステムプロキシを回避していないか確認します。トンネルモードで復旧するなら、問題は主に通信の適用範囲にあります。トンネルモードでも機能しない場合は、ノード接続、ルーティングルール、ファイアウォール、DNSを続けて確認してください。

出口、DNS、実際の接続状態を確認する

クライアントに「接続済み」と表示されても、ローカルプロセスがトンネル確立を認識しているだけで、対象アプリの通信が選択した回線を通っている証明にはなりません。確認時は出口地域、DNSの名前解決、各アプリの動作を同時に見ます。まずブラウザの古いページを閉じ、新しいウィンドウで信頼できるIP確認ページを開き、出口地域が選択したノードと一致するか確認してください。

続いてDNSを確認します。DNSリークとは通常、通信はプロキシやトンネルを通っているのに、ドメインの名前解決だけがローカルネットワークのリゾルバーに任され、アクセス先と名前解決経路が一致しない状態を指します。クライアントにリモートDNS、暗号化DNS、「DNSをプロキシ経由にする」などの項目がある場合は、推奨設定に従って有効にします。DNSを同時に管理するアプリを複数重ねると、名前解決のループ、タイムアウト、結果の不一致が起きることがあるため避けてください。

ブラウザと、ブラウザのプロキシに依存しないアプリをそれぞれテストします。出口が異なる場合は、プロキシの適用範囲またはルール分岐を調整する必要があります。テスト後はMacをスリープさせて復帰し、クライアントが自動的に再接続するか確認します。Wi-Fiから有線、テザリングなど別の接続方法へ切り替えた後も出口を確認してください。ネットワークインターフェースの変更によって、古いトンネルが無効になることがあります。

  • ✅ クライアントの状態が接続済みで、再接続が続いていない。
  • ✅ 新しく開いた確認ページに、対象ノードに対応する出口地域が表示される。
  • ✅ DNSの名前解決経路が現在のプロキシ方針と一致している。
  • ✅ ブラウザと回線を使うデスクトップアプリの動作が一致している。
  • ✅ スリープ復帰後やネットワーク切り替え後に、接続状態を再確認する。
  • ❌ ノード名が選択されていることだけで出口確認を済ませない。
確認の結論:接続成功とは、クライアントがトンネルを確立し、対象アプリが正しいルールに入り、出口地域が想定どおりで、DNSが誤った経路へ戻っていない状態です。メニューバーのアイコンを見るだけでは確認は完了しません。

権限ダイアログ、追加失敗、切断を切り分ける

クライアントがVPN設定の追加を繰り返し求める

正式版、ベータ版、旧版のクライアントを同時にインストールしていないか確認します。同種のアプリをすべて終了し、システム設定で既存のVPN設定とネットワーク拡張機能を確認して、実際に使う項目だけを残します。整理後にクライアントを再び開き、該当するリクエストを許可してください。起動のたびに許可を求められる場合は、ディスクイメージや一時フォルダから実行し続けていないかも確認します。

サブスクリプションURLはコピーできるが、クライアントの更新に失敗する

追加画面がリモートサブスクリプションに対応しており、単一ノードの共有URLだけを受け付けるものではないか確認します。サブスクリプションURLと単一ノードのURIは構造も用途も異なるため、入口を間違えると形式が無効と表示されることがあります。URLがチャットツールによって書き換えられていないか、末尾に句点などの本文文字が付いていないかも確認してください。古いサブスクリプションのノードは表示されるのに更新できない場合は、その設定グループを削除してパネルから再度コピーします。

接続済みだがブラウザしか使えない

この状態はシステムプロキシモードでよく起こります。ブラウザはシステムプロキシに従いますが、他のアプリは直接接続します。まずクライアントがトンネルモードに対応しているか確認し、ネットワーク拡張機能が許可されているか調べます。ルールモードを使う必要がある場合は、対象アプリがアクセスするドメインやアドレスが直接接続と判定されていないか確認してください。ウェブページのドメインを1つ追加するだけでは不十分です。デスクトップアプリはAPI、コンテンツ配信、独自接続用のドメインにも依存することがあります。

ノードを切り替えても古い出口が表示される

まず手動で切断し、新しいノードを選んで再接続します。古い接続を保持しているアプリのウィンドウを閉じ、必要に応じて対象アプリを終了して再起動してください。ブラウザの接続再利用、DNSキャッシュ、クライアントがトンネルを再構築していないことにより、短時間は確認結果が古い回線を示す場合があります。クライアントに「切断時にシステムプロキシを解除」などの項目がある場合は、正常に実行されているか確認します。

Macのスリープ復帰後に接続を戻せない

復帰後、ネットワークインターフェースが変わっているのに、クライアントが古いセッションを保持していることがあります。いったん切断して再接続してください。頻発する場合は、クライアントの自動再接続設定を確認します。Hysteria2やTUICなどUDPベースの接続は、ネットワーク切り替え後に経路を再確立する必要があります。VMess、Trojan、VLESS、Shadowsocksも元の接続が無効になると再接続が必要になることがあり、プロトコル名だけで回避できる問題ではありません。

接続後にローカルサイトやLAN上のリソースを開けない

グローバルモードを誤って有効にしていないか、トンネル設定によってローカルネットワークも遠隔側へ送られていないか確認します。ルールモードへ戻して再度テストしてください。クライアントに「LANをバイパス」など同様の項目がある場合は、用途を確認したうえで有効にできます。社内ネットワーク、開発環境、ローカルデバイスには固有のDNSやルーティング要件があるため、2つのネットワーク方針が互いに上書きしないようにしてください。

日常のメンテナンスと更新ルール

設定後の主なメンテナンスは、クライアントの更新、サブスクリプションの更新、権限の再確認です。クライアントの更新によって、プロトコル対応、ネットワーク拡張機能、DNSの動作が変わることがあります。サブスクリプションの更新では、ノードのパラメータや設定グループが変更される場合があります。更新前に現在使える設定を覚えておき、更新後はノード一覧と出口を再確認してください。古い状態がすべて引き継がれるとは考えないようにします。

サブスクリプションURLは認証情報として管理し、公開メモ、共有されるターミナル履歴、スクリーンショットに保存しないでください。URLが漏れた可能性がある場合は、サービスパネルでURLを更新します。クライアントから削除するだけでは、すでにコピーされたURLを自動的に無効化できません。

複数のプロキシ、フィルター、企業ネットワークコンポーネント、セキュリティソフトを同時に実行する場合は、各ツールがどの層を担当するか明確にします。複数のツールがシステムプロキシ、ルーティング、DNSを同時に変更すると、接続順序が不安定になりがちです。切り分けでは不要なネットワークツールを一時終了し、単一のクライアントが正常に動作することを確認してから、1つずつ戻してください。

  • ✅ クライアント更新後に、システムのネットワーク拡張機能の状態を再確認する。
  • ✅ サブスクリプションを定期的に更新し、ノードが正常に解析されるか確認する。
  • ✅ ネットワーク環境を変えた後に、出口とDNSを再確認する。
  • ✅ 必要なネットワークツールだけにプロキシ、ルーティング、名前解決を任せる。
  • ❌ サブスクリプションURLを一般公開のURLとして保存・共有しない。

ここまでの手順を終えると、macOSでのVPN設定は単に「接続」を押すだけの作業ではないことが分かります。クライアント、システム権限、サブスクリプション、プロトコル、ルール分岐、DNSには、それぞれ明確な役割があります。問題が起きたときは層ごとに切り分けるほうが、アプリを何度も削除したり、むやみにノードを変えたりするより効果的で、確認済みの設定も保ちやすくなります。