macOSでv2rayNを初めて開いた際に表示される「開発元を確認できません」「Appleでは悪質なソフトウェアが含まれていないことを確認できません」または「アプリが壊れているため開けません」という表示は、通常、Gatekeeperの検査、ダウンロードファイルの隔離属性、アプリの保存場所が原因です。VMess、VLESS、サブスクリプションURL、ノード設定が原因とは限りません。まずインストールパッケージの入手元とアプリの場所を確認し、macOSが用意する一度限りの許可操作を使います。システム設定の項目が表示されない、または隔離状態を正しく解除できない場合に限り、指定したアプリに対してターミナルコマンドを実行します。
macOS版v2rayNをダウンロード済みで、初回起動や権限確認で止まっている方に向けた記事です。Gatekeeperの表示の見分け方、システム設定での許可、隔離属性の削除、ネットワークとTUN権限の選び方、起動からプロキシが有効になるまでの確認手順を順に説明します。
まず遮断の種類を切り分ける:起動チェック・ファイル隔離・実行権限
macOSによる起動ブロックは、アプリが実際に実行される前に発生します。この段階ではv2rayNはまだXrayコアを読み込まず、サブスクリプションの読み取りやノードへの接続も行っていません。そのため、サーバーの変更、ローカルポートの変更、サブスクリプションの再インポートでは解決できません。ダイアログの文面を記録し、アプリが「アプリケーション」フォルダへ移動済みか確認してください。
この記事ではmacOS 15.5、v2rayN 7.13.2を例にしています。macOSのバージョンによってボタン名が多少異なる場合がありますが、設定項目は「システム設定」→「プライバシーとセキュリティ」に集約されています。v2rayNでよく使われるローカルHTTP待受ポートは10809、SOCKS待受ポートは10808です。ポートが接続に関係するのは、アプリが正常に起動した後です。
- 「開発元を確認できません」:通常のダブルクリックでは現在のアプリを起動できない状態です。「プライバシーとセキュリティ」から一度だけ明示的に許可できます。
- 「アプリが壊れている」:ダウンロードが不完全、解凍ツールによるアプリパッケージの変更、または隔離属性による厳しい検査が原因の可能性があります。まず再ダウンロードと再解凍を行い、その後に属性の処理を検討してください。
- アプリは開くがネットワークに接続できない:この時点ではGatekeeperの問題を越えています。ノードのログ、システムプロキシ、DNS、ローカルネットワーク、TUN権限を確認してください。
- アプリがすぐ終了する:v2rayNのログとmacOSの「コンソール」で起動エラーを確認してください。開発元の確認問題と決めつけることはできません。
まずはシステム設定で一度だけ許可する
システム設定から許可すれば、macOSの安全確認フローを維持したまま、このアプリだけを対象にできます。始める前に、解凍したv2rayN.appを「アプリケーション」フォルダへ移動してください。「ダウンロード」フォルダや圧縮ファイルのプレビュー画面から常用するのは避けます。アプリのパスを安定させると、コアの更新や設定保存時の権限範囲も確認しやすくなります。
-
アプリを移動する
Finderで「ダウンロード」を開き、v2rayN.appを「アプリケーション」へドラッグします。場所が「アプリケーション」→「v2rayN.app」になっていることを確認し、圧縮ファイル内から起動しないでください。
-
ブロックを発生させる
v2rayN.appをダブルクリックして「開発元を確認できません」という表示を出し、「完了」または「キャンセル」をクリックします。この操作により、該当アプリの許可項目がシステム設定に表示されます。
-
セキュリティ設定を開く
「システム設定」→「プライバシーとセキュリティ」を開き、下へスクロールして「セキュリティ」欄を確認します。v2rayNが使用をブロックされたという説明が表示されているはずです。
-
このまま開く
「このまま開く」をクリックし、デバイスのパスワードまたはTouch IDで認証します。再度確認されたら「開く」を選択してください。この項目は、ブロックを発生させてから一定時間だけ表示されることがあります。
-
メインウィンドウを確認する
v2rayNのメインウィンドウが表示されたら、まだTUNは有効にしないでください。まず「設定」→「パラメーター設定」で基本項目を確認し、サブスクリプションをインポートして通常のシステムプロキシをテストします。
別のグラフィカルな方法として、FinderでControlキーを押しながらv2rayN.appをクリックし、「開く」を選択できます。一部のmacOSでは、2回目の確認画面に「開く」ボタンが表示されます。それでも閉じる操作しかない場合は、「システム設定」→「プライバシーとセキュリティ」に戻って操作してください。目的は同じなので、両方の方法を繰り返す必要はありません。
システム設定で許可できない場合はアプリの隔離属性を確認・削除する
ブラウザーからダウンロードしたアプリには、通常com.apple.quarantine拡張属性が付いています。この属性は、ファイルが外部から取得されたことをシステムに伝えるものです。通常は「このまま開く」で確認を完了できますが、再圧縮、移動、サードパーティ製解凍ツールの使用によって属性の状態が異常になると、システムが繰り返しブロックする場合があります。その場合に限り、v2rayN.appだけを対象に処理します。
2つの対処方法:グラフィカルな許可を優先し、ターミナルコマンドは対象を限定して使う
システム設定で許可
- システムの確認手順を維持できる
- 初回起動時の一般的なブロックに適する
- ターミナルコマンドは不要
- 完全な新規ダウンロードのアプリパッケージに優先して使用
隔離属性を削除
- v2rayN.appのパスだけを指定
- 許可ボタンが表示されない、または繰り返しブロックされる場合に適する
- 実行前にパスとファイル名を確認
- 処理後は「アプリケーション」から再起動
結論:まずシステム設定で一度許可します。アプリの入手元を確認し、再ダウンロードしても失敗する場合に限り、対象アプリの隔離属性を削除してください。
「アプリケーション」→「ユーティリティ」→「ターミナル」を開き、まず次の読み取りコマンドで属性を確認します。出力にcom.apple.quarantineが含まれていれば、アプリに隔離マークが残っています。この属性がないと表示された場合は削除コマンドを実行せず、アプリパッケージの完全性と実行ログを確認してください。
xattr -p com.apple.quarantine "/Applications/v2rayN.app"
パスに間違いがないことを確認してから、対象を限定して削除します。-dは指定した属性を削除し、-rはアプリパッケージ内のファイルを再帰的に処理します。コマンドの対象はv2rayN.appだけにしてください。「アプリケーション」フォルダ全体やユーザーフォルダを指定してはいけません。
xattr -dr com.apple.quarantine "/Applications/v2rayN.app"
アプリ名や場所が異なる場合、パスを手入力で推測しないでください。まずxattr -dr com.apple.quarantine と入力して末尾のスペースを残し、Finderからv2rayN.appをターミナルウィンドウへドラッグします。実際のパスが自動入力されるので、Returnキーで実行した後、「アプリケーション」から再度開きます。
- 「Permission denied」と表示されたら、まず現在のアカウントでアプリを変更できるか確認し、アプリが読み取り専用のディスクイメージ内にないか調べてください。
- 「No such file」と表示された場合は、パスまたはファイル名が一致していません。ドラッグ&ドロップでパスを入力してください。
- コマンド実行後も「アプリが壊れている」と表示される場合は、現在のアプリパッケージを削除し、再ダウンロードしてmacOS標準の解凍手順で処理してください。
- アプリが開いた後はコマンドを繰り返し実行しないでください。隔離属性の処理は、ノードの接続速度、プロトコルの種類、ルーティングルールとは直接関係ありません。
初回接続時の権限:システムプロキシ・ローカルネットワーク・TUNを分けて判断する
v2rayNの起動後、ローカルネットワーク、受信接続、VPN構成に関する確認が表示されることがあります。これらは異なる通信経路に対応しており、すべてを有効にする必要はありません。通常のシステムプロキシは、macOSのプロキシ設定に従うアプリを本機の127.0.0.1ポートへ接続します。TUNは仮想ネットワークインターフェースを作成し、システムプロキシに従わない通信を取り込みます。
通常のシステムプロキシ
- ローカルアドレス
- 127.0.0.1
- SOCKSポート
- 10808
- HTTPポート
- 10809
- システム設定の場所
- ネットワーク→詳細設定→プロキシ
普段使うブラウザーやシステムプロキシに従うデスクトップアプリは、まずこのモードで確認できます。
ローカルネットワーク権限
- 設定の場所
- プライバシーとセキュリティ→ローカルネットワーク
- 本機だけで使う場合
- 通常は不要
- LAN共有
- 明示的な有効化が必要
- 待受アドレス
- 共有設定に応じて指定
他のデバイスからこのMacのプロキシポートへアクセスする必要がある場合だけ、LANアクセスを許可してください。
TUN仮想インターフェース
- 用途
- より多くのプロセスの通信を取り込む
- システムによる確認
- VPN構成または管理者の許可
- 起動順序
- ノードが利用可能になってから有効化
- 停止方法
- TUNを先に無効にしてから終了
仮想インターフェースの初回作成時にシステムレベルの確認が表示されるのは、想定された手順です。
ファイアウォールの受信接続
- 設定の場所
- ネットワーク→ファイアウォール→オプション
- リモートノードへの接続
- 送信接続に該当
- LANへのプロキシ提供
- 許可が必要になる場合がある
- 判断基準
- 他のデバイスからのアクセスを受け付けるか
LAN共有が実際に必要な場合だけ受信接続を許可し、待受範囲も同時に制限してください。
v2rayNをこのMacだけで使う場合は、待受アドレスを127.0.0.1のままにし、「LANからの接続を許可」を有効にしないでください。これにより10808と10809は本機からのアクセスだけを受け付けます。同じLAN内の他のデバイスから接続する必要がある場合にのみ、LAN共有を有効にし、ファイアウォールで該当する受信接続を許可します。
TUNモードでは、より高いレベルのネットワーク制御が必要です。有効化の際にmacOSがVPN構成の追加、ネットワーク拡張の変更、管理者資格情報の入力を求めた場合は、現在開いているv2rayNが操作を開始したことを確認してください。許可すると、システムのネットワーク設定に該当するインターフェースまたは構成が表示されます。許可しなかった場合も通常のシステムプロキシは利用できますが、TUNの仮想インターフェースは作成できません。
v2rayNの基本設定:通常のプロキシを確認してからTUNを有効にする
アプリが起動したら、「設定」→「パラメーター設定」→「Coreタイプ」を開き、現在のノードで使うコアを確認します。VLESSやVMessなどのプロトコルパラメーターは通常サブスクリプションからインポートされ、プロトコル名そのものがmacOSの権限を決めるわけではありません。サブスクリプションでXrayに対応したトランスポートやセキュリティパラメーターが指定されている場合は、Xrayコアを選択してください。UUID、アドレス、ポート、トランスポート層、TLSパラメーターの意味を理解しないまま手動で書き換えないでください。
-
コアを選択する
「設定」→「パラメーター設定」→「Coreタイプ」を開き、サブスクリプションのノードで必要なプロトコルに応じてXrayを選択します。保存してメインウィンドウに戻り、コアの起動ログにエラーがないことを確認してください。
-
サブスクリプションをインポートする
「サブスクリプショングループ」に完全なサブスクリプションURLを追加します。更新後、ノード数、アドレス、ポート、プロトコルが正常に表示されることを確認してください。
-
ノードを選択する
ノードを1つ選択してアクティブサーバーに設定し、まず遅延テストを実行します。遅延結果は到達性の確認にすぎないため、実際のWebページへのアクセスでも検証してください。
-
システムプロキシを有効にする
まず「システムプロキシを自動設定」または使用中のバージョンにあるシステムプロキシの項目を使い、ブラウザーの通信を127.0.0.1:10809へ送ります。
-
その後でTUNを有効にする
通常のプロキシが利用できることを確認してから、「設定」→「パラメーター設定」→「TunMode設定」を開き、項目を確認してTUNを有効にします。システムの案内に従って許可を完了してください。
通常のシステムプロキシ
推奨通信経路が短く、必要な権限も少ないため、ノード、待受ポート、システムプロキシの状態を分けて確認できます。初回インストール時はこのモードで基本検証を行ってください。
適している用途:ブラウザー、システムプロキシに従うデスクトップアプリ、初回のトラブル対処
TUNモード
仮想インターフェースでより広範囲の通信を取り込みます。システムレベルのネットワーク許可が必要で、DNSとルーティング分岐の設定も確認してください。
適している用途:システムプロキシを読み取らないアプリ、通信を一元的に取り込みたい場合
LAN共有
他のデバイスからMac上の待受ポートへ接続するには、待受アドレス、ファイアウォールの受信接続、LAN権限を調整する必要があります。
適している用途:このMacをLANプロキシの入口として明確に利用する場合
v2rayNの状態が実行中なのにmacOSのプロキシ設定が変わらない場合は、「システム設定」→「ネットワーク」→現在のネットワークインターフェース→「詳細設定」→「プロキシ」を開き、WebプロキシとセキュアWebプロキシが127.0.0.1と10809を指しているか確認してください。別のネットワークツールが設定したプロキシアドレスを同時に残さないでください。アプリ終了後に競合設定が残る可能性があります。
10808または10809が別のプロセスに使用されている場合、コアのログにアドレスのバインド失敗が表示されることがあります。v2rayNのパラメーター設定でローカルポートを変更し、たとえばHTTPポートを10819、SOCKSポートを10818に設定できます。変更後はmacOSのネットワークプロキシ設定も必ず更新してください。ポートが一致しないと、ブラウザーは直接接続に失敗します。
起動から接続までの確認リスト
権限の処理が完了したら、「アプリプロセス→コアプロセス→ローカル待受→システムプロキシ→リモートノード→DNS」の順に確認します。層ごとに確認すれば、Gatekeeper、ポート競合、ノード障害を混同せずに済みます。一度に変更する項目は1つにし、調整のたびに再テストしてください。
- アプリ層:v2rayNのメインウィンドウが安定して開き、終了後も「アプリケーション」から再び起動できる。
- コア層:ログにXrayの起動が表示され、ファイル不足、設定解析失敗、権限拒否のエラーがない。
- 待受層:127.0.0.1:10808と127.0.0.1:10809のうち、現在の設定で有効なポートが少なくとも1つ待受状態になっている。
- プロキシ層:macOSの現在のネットワークインターフェースに設定されたプロキシアドレスがv2rayNのローカルポートと一致し、システムプロキシモードを終了すると関連設定が復元される。
- ノード層:アクティブノードのサーバーアドレス、ポート、プロトコルが有効なサブスクリプション由来で、接続ログに継続的なタイムアウトやハンドシェイクエラーがない。
- TUN層:通常のプロキシが利用できてから、仮想インターフェース、ルーティングルール、DNSを確認する。異なる2つの入口を同時に調べるのは避ける。
lsof -nP -iTCP:10808 -sTCP:LISTEN
lsof -nP -iTCP:10809 -sTCP:LISTEN
上記のコマンドは、ポートが待受中かどうかを確認するためのものです。出力されたプロセスがv2rayN関連のコアでない場合は、使用中のプログラムを終了するか、v2rayNのローカル待受ポートを変更してください。何も出力されない場合はコアがまだ起動していない可能性があるため、ログに戻って設定の読み込み結果を確認します。macOSのファイアウォールをさらに変更する必要はありません。
サブスクリプションの更新に失敗しても既存ノードへ接続できる場合は、サブスクリプションリクエストのログ、システム時刻、現在のネットワークを確認してください。サブスクリプションは設定を配布する入口であり、プロキシコア自体が無効になったことを意味しません。逆に、サブスクリプションの更新に成功してもノードが利用できるとは限らないため、接続ログと実際のアクセスで判断してください。
「このまま開く」をクリックした後、次回の起動でも表示されますか?
同じアプリパッケージで確認を完了すれば、通常はそのまま起動できます。新しい完全版をダウンロードした場合、移動中に隔離属性が再付与された場合、またはアプリパッケージの内容が変わった場合は、再度確認を求められることがあります。
隔離属性を削除しても、アプリが開かないのはなぜですか?
隔離属性の削除で解決できるのは、特定の起動チェックだけです。アプリパッケージの不完全さ、CPUアーキテクチャの不一致、コアファイルの不足、設定フォルダの権限異常でも起動に失敗します。該当するmacOSビルドを再ダウンロードし、「コンソール」とv2rayNのログを確認してください。
ローカルネットワーク権限を拒否すると、このMacでの利用に影響しますか?
127.0.0.1の本機プロキシだけを使う場合、通常はプロキシポートをLANへ公開する必要はありません。他のデバイスからこのMacの待受ポートへアクセスする場合は、「プライバシーとセキュリティ」→「ローカルネットワーク」、待受アドレス、ファイアウォールルールを改めて確認してください。
TUNの許可後も通信が流れない場合はどうすればよいですか?
まずTUNを無効にし、通常のシステムプロキシと現在のノードが利用できることを確認します。その後TUNを再度有効にし、仮想インターフェース、デフォルトルート、DNS、分流ルールを確認してください。通常のプロキシも利用できない場合は、先にノードまたはローカルポートの問題を解決します。