macOS版v2rayNをダウンロードしたものの、初回起動時やネットワーク接続時にブロックされる方を対象に、原因の切り分けと対処方法を解説します。まず、開発元の確認、アプリのアーキテクチャ、ネットワーク接続の問題を区別し、「プライバシーとセキュリティ」で対象アプリの起動を許可します。アプリが開いたら、ローカルプロキシのポートを確認してからシステムプロキシを設定してください。ネットワーク拡張やTUNの権限が必要なのは、利用する機能が実際に要求する場合だけです。
まずブロックされた段階を確認
Gatekeeperは、ダウンロードしたアプリの署名や公証、ファイルの入手元などを確認し、起動を許可するか判断するmacOSのセキュリティ機能です。「開発元を確認できません」という警告はアプリの起動前に表示されます。サブスクリプションの有効性やVMess・VLESSのどちらを使うかとは直接関係ありません。サブスクリプションを何度更新しても、起動ブロックは解消しません。
v2rayNはデスクトップクライアントの画面で、プロキシ接続は呼び出されたコアが処理します。ウィンドウが表示されてもコアが起動したとは限らず、システムプロキシが有効でもローカルポートで待ち受けているとは限りません。次の表で症状ごとに確認すれば、あらゆる問題を「権限不足」と決めつけずに済みます。
| 症状 | まず確認すること | 次に行うこと |
|---|---|---|
| 「開発元を確認できません」と表示され、ウィンドウが開かない | Gatekeeperによる起動ブロック | 入手元を確認し、「プライバシーとセキュリティ」で今回の起動を許可する項目を探す |
| このMacではアプリを使用できないと表示される | プロセッサのアーキテクチャとシステム要件 | AppleシリコンまたはIntelに合ったパッケージか確認する |
| ウィンドウは開くが、ログにコアの起動失敗が表示される | コアファイル、実行権限、ファイルのパス | ログの詳細を確認し、解凍が完全か調べる。システムプロキシはまだ変更しない |
| ノードを選択しているのに、ブラウザーでアクセスできない | ローカルの待ち受け、システムプロキシ、ノードへの接続 | まずプロキシを明示したテストを行い、その後システムのネットワーク設定を確認する |
アーキテクチャとアプリの配置場所を確認
まずAppleメニューの「このMacについて」を開き、プロセッサ情報を確認します。Appleシリコン搭載MacではmacOS ARM64版、Intelプロセッサ搭載MacではmacOS x64版を選んでください。Windows用のWPF版をmacOSで実行することはできません。macOSの最低要件を満たしていないという警告が出た場合は、セキュリティ設定での許可を続けるのではなく、ダウンロードページで動作要件を確認してください。
- 完全に解凍する:圧縮ファイルをダウンロードした場合は、実行前に解凍し、パッケージ内のディレクトリ構成を保ってください。コアの実行ファイルだけを取り出して移動しないでください。
- 配置場所を決める:パッケージにアプリバンドルが含まれている場合は、「アプリケーション」フォルダに移動してから起動してください。ディレクトリ形式で配布されている場合は、付属の説明に従ってディレクトリ全体を保ち、現在のユーザーが読み書きできる場所に置いてください。
- 古いコピーを終了する:更新前にクライアントを終了してください。Dockから古い場所のアプリが起動し、実際には別のコピーを使っているという事態を防げます。
- 警告の全文を記録する:「開発元を確認できません」「壊れているため開けません」「コンピュータに損害を与える可能性があります」は、それぞれ対処方法が異なります。
「プライバシーとセキュリティ」で起動を許可
以下は「システム設定」を使うmacOSでの手順です。ボタンの名称はmacOSのバージョンによって多少異なります。古いmacOSでは「システム環境設定」→「セキュリティとプライバシー」→「一般」を開いてください。まずアプリを一度起動し、ブロックを記録させてから、該当する許可項目を探します。
-
起動時の警告を表示する
「Finder」で、配置済みのv2rayNを開きます。「開発元を確認できません」という警告が出たら、警告ウィンドウを閉じてください。複数のコピーを何度もダブルクリックしないでください。
-
セキュリティ設定を開く
Appleメニューから「システム設定」→「プライバシーとセキュリティ」を開き、「セキュリティ」までスクロールします。先ほどブロックされたアプリの名前が表示されているか確認してください。
-
アプリを確認して許可する
表示された名前が先ほど起動したアプリと一致することを確認し、「このまま開く」をクリックします。管理者認証を求められた場合は、許可されたアカウントで認証してください。出所の分からないコマンドを使って管理上の制限を回避しないでください。
-
もう一度開くことを確認
続いて表示される確認ダイアログで「開く」を選び、メインウィンドウが表示されるまで待ちます。アプリが自動で起動しない場合は、元の場所に戻り、同じコピーをもう一度開いてください。
-
コアの起動ログを確認
クライアントが起動したら、既存のノードを選び、ログでコアが正常に起動したか確認します。その後、別の実行ファイルがブロックされた場合は、そのファイルの場所と入手元を確認してください。メインアプリの起動許可に失敗したと誤解しないようにしましょう。
macOSのバージョンによっては、FinderでアプリをControlキーを押しながらクリックし、「開く」を選ぶ方法でも確認できます。新しいmacOSでは「プライバシーとセキュリティ」からの許可が必要な場合があります。実際にシステムに表示される手順に従ってください。「このまま開く」が表示されない場合は、直前に起動がブロックされたか、組織によるデバイス管理が適用されているか、警告がこの方法では許可できない種類かを確認してください。
まずシステムプロキシで接続を確認
初回設定では、まずシステムプロキシを使うのがおすすめです。システムプロキシ設定に従うアプリにローカルプロキシを使わせる機能で、ウェブ閲覧のためにすべてのネットワーク通信を取り込む必要はありません。TUNは仮想ネットワークインターフェースを使う方式で、システムプロキシに従わない通信を処理する場合などに利用します。両者では通信の対象範囲も必要な権限も異なります。
システムプロキシ
推奨クライアントのHTTPまたは混合プロキシの待ち受けポートを確認し、クライアントのシステムプロキシメニューから「システムプロキシを自動設定」を選びます。通常、この方法ではネットワーク拡張の許可は不要です。起動の問題と通信の取り込みに関する問題を分けて調べるのに適しています。
用途:初回インストール後の動作確認、ブラウザーでのアクセス、アプリごとの日常的なプロキシ利用。
TUNモード
仮想インターフェースを作成し、ルーティングやDNSを処理します。必要な権限はクライアントのバージョンや補助プログラムの実装によって異なります。管理者認証やネットワーク拡張の許可が必要な場合もありますが、すべてのバージョンでネットワーク拡張がインストールされるとは限りません。
用途:システムプロキシでは接続できるものの、対象のアプリがシステムプロキシを参照しない場合。
v2rayNの「設定」→「パラメーター設定」でローカルの待ち受け設定を確認し、実際のHTTPまたは混合プロキシのポートを控えます。画面の項目名はバージョンによって異なるため、フィールドの説明と起動ログを確認してください。次に「システム設定」→「ネットワーク」→現在使用中のWi-FiまたはEthernet接続→「詳細」→「プロキシ」を開き、「Webプロキシ(HTTP)」と「保護されたWebプロキシ(HTTPS)」が同じローカル待ち受け先を指しているか確認します。
ここでいう「保護されたWebプロキシ(HTTPS)」は、HTTPSリクエストがプロキシ経由で接続されることを示します。ローカルプロキシに独自のTLSを設定する必要があるという意味ではありません。SOCKS専用のポートをHTTPプロキシ欄に指定することもできません。クライアントを切り替える際は、古いプロキシ設定や自動プロキシ設定も解除し、同じネットワークサービスに競合する設定が残らないようにしてください。
待ち受けポートとプロキシ設定を確認
ここでは 127.0.0.1:10808 を使って確認方法を説明します。10808はこの記事での例であり、すべてのバージョン共通の既定値ではありません。実際のポートがHTTPまたは混合プロキシを提供している場合に限り、以下のコマンド例を使えます。記事に合わせるために、正常に動作している待ち受け設定を変更しないでください。
システムプロキシの確認項目
- サーバー
- 127.0.0.1
- ポート
- 10808(例)
- プロトコル
- HTTPまたは混合プロキシの待ち受け
- 認証
- ローカルの受け入れ設定と一致させる
ブラウザーが使用するネットワークサービスのプロキシアドレスは、クライアントが実際に待ち受けているアドレスと一致している必要があります。
ターミナルでのテスト項目
- テスト対象
- https://example.com
- プロキシアドレス
- http://127.0.0.1:10808
- 接続タイムアウト
- 10秒
- 全体の制限時間
- 20秒
プロキシを明示して指定すると、システムプロキシ設定の問題を切り分けられます。ただし、一度のテスト結果がすべてのノードやウェブサイトでの動作を保証するわけではありません。
「ターミナル」を開き、待ち受けポート、システムプロキシ、プロキシを明示したリクエストの順に確認します。以下のコマンドは状態の確認またはテストリクエストの送信のみを行い、システムのセキュリティ設定は変更しません。ローカルプロキシで認証を有効にしている場合、最後のコマンドは実際の認証方式に合わせて変更する必要があります。パスワードを含むコマンド全体を公開の場に貼り付けないでください。
# 10808 を実際の HTTP または混合プロキシの待ち受けポートに置き換える
lsof -nP -iTCP:10808 -sTCP:LISTEN
# システムが現在認識しているプロキシ設定を確認
scutil --proxy
# ローカル HTTP プロキシを明示してサンプルサイトにリクエストを送信
curl -I --connect-timeout 10 --max-time 20 \
--proxy http://127.0.0.1:10808 https://example.com
- 待ち受けポートの確認結果が空:まずコアの起動ログ、ポート設定、ポートの使用状況を確認してください。この段階ではブラウザーの設定を変えても解決しないことがほとんどです。
- 接続拒否と表示される:まずローカルアドレスとポートを確認し、テスト中もクライアントが起動しているか確かめてください。
- ローカル接続後にタイムアウトする:ノードのアドレス、リモートポート、TLSパラメーター、システム時刻、クライアントのログを確認してください。macOSの権限問題だとすぐに判断しないでください。
- プロキシを明示したテストは成功するが、ブラウザーで失敗する:現在のネットワークサービスのプロキシ設定、ブラウザー独自の設定、プロキシ対象外リストを確認してください。ターミナルのコマンドだけでは、ブラウザーが同じ経路を使っているとは限りません。
ネットワーク権限は機能ごとに確認
「ローカルネットワーク」権限、アプリファイアウォール、ネットワーク拡張、管理者認証は、それぞれ別の仕組みです。外部への通常のプロキシ接続は、ほかのデバイスからこのMacへの接続を許可することとは異なります。ループバックアドレスだけを使う場合、ローカルネットワークからの接続を許可して解決しようとしないでください。まず使用中の機能を確認し、それに対応する警告だけを処理します。
- ローカルネットワーク:この権限を管理できるmacOSでは、「システム設定」→「プライバシーとセキュリティ」→「ローカルネットワーク」でアプリの一覧を確認できます。LAN上のノードやサービスにアクセスする場合、または関連機能を使う場合にのみ、許可が必要か判断してください。アプリが一覧にないからといって、インストールに失敗したとは限りません。
- ネットワーク拡張:新しいmacOSでは「システム設定」→「一般」→「ログイン項目と機能拡張」→「ネットワーク機能拡張」で確認できます。バージョンによっては、「プライバシーとセキュリティ」に許可の通知が表示されます。該当する拡張機能が実際にインストールされている場合に限り項目が表示されるため、開発元と通知の出所を確認してください。
- 管理者認証:TUNや補助プログラムの設定では、インターフェースの作成やルートの変更に管理者権限が必要になることがあります。該当機能を自分で有効にした直後で、要求元を確認できる場合にのみ許可してください。キャンセルした場合は、まずシステムプロキシに戻して基本的な動作を確認します。
- ファイアウォール:「システム設定」→「ネットワーク」→「ファイアウォール」→「オプション」は、主に受信接続を設定する項目です。Mac上のブラウザーからローカルプロキシに接続できない場合、最初に確認すべき項目ではありません。ファイアウォール全体を無効にする必要はありません。
よくあるつまずきと終了後の復旧
「このまま開く」をクリックしても開けないのはなぜ?
許可したものと同じアプリを起動しているか確認し、新たな警告がメインアプリではなくコアのファイルを対象にしていないか確認してください。セキュリティ警告が出なくなったのにすぐ終了する場合は、アーキテクチャ、システム要件、ログを確認し、許可操作を繰り返さないでください。
会社のMacに「このまま開く」が表示されない場合は?
デバイス管理ポリシーによって、許可項目が制限されている場合があります。アプリ名、入手元、macOSのバージョン、警告の全文を記録し、管理者に許可されたインストール方法を確認してください。システムのセキュリティ機能を無効にして、組織のポリシーを回避しないでください。
ノードのテストは成功するのに、ブラウザーがタイムアウトするのはなぜ?
ノードテストで確認できるのは、特定のテスト経路だけです。まずこの記事のプロキシを明示したコマンドを実行し、次に使用中のWi-FiまたはEthernetサービスでHTTPとHTTPSのプロキシアドレスを確認します。さらに、クライアントのルーティング設定で対象ドメインが利用できない接続先に振り分けられていないか確認してください。
v2rayNを終了したら、ネットワークに接続できなくなったのはなぜ?
クライアントを再度開き、システムプロキシメニューから「システムプロキシを解除」を選んでから終了してください。アプリを起動できない場合は、現在のネットワークサービスの「詳細」→「プロキシ」で、今回設定したプロキシ項目を無効にします。組織のネットワークに元から設定されている項目は削除しないでください。
最後に決まった順序で確認します。アプリが起動すること、コアがポートで待ち受けていること、プロキシを明示したリクエストに応答があること、システムプロキシが正しいポートを指していることを確かめ、最後にTUNや拡張機能の権限を検討してください。クライアントやmacOSを更新した後も、この順序で確認できます。一度に変更する設定は一つにし、エラーの原文を記録しておくと、複数の権限を同時に有効にするより原因を特定しやすくなります。