「アーキテクチャを確認 → アプリの入手元を確認 → 初回起動の警告に対処 → システムプロキシを確認 → 必要に応じてTUNを有効化 → ログイン項目を設定」の順に進めます。サブスクリプションは取得済みでも、macOSへのインストールや権限設定で困っている方向けです。設定を一度に変更せず、まず通常のプロキシ接続を確認してからTUNと自動起動を設定すると、問題の切り分けが簡単になります。
プロセッサのアーキテクチャとアプリの保存場所を確認
Appleメニューから「このMacについて」を開きます。Appleチップ搭載のMacではARM64版、Intelプロセッサ搭載のMacではx64版を選んでください。v2rayNのmacOS版とWindows版は共用できません。アプリの画面が起動しても、同梱されたコアのアーキテクチャが適切とは限りません。必要なmacOSのバージョンは、選択したリリースパッケージの説明を確認してください。
-
アーキテクチャを確認
Appleメニューから「このMacについて」を開き、「チップ」または「プロセッサ」を確認します。「ターミナル」で
uname -mを実行する方法もあります。ネイティブ環境では通常、arm64またはx86_64と表示されます。Rosetta経由で動作するターミナルでは結果が異なる場合があるため、システム情報での確認を優先してください。 -
インストールパッケージを選ぶ
当サイトのダウンロードページで、macOS用の適切なアーキテクチャのv2rayNを選びます。ダウンロードしたファイルはそのまま保管し、内容をすべて展開してください。ディスクイメージの場合は開いて、アプリを「アプリケーション」フォルダにコピーします。
-
アプリの保存場所を固定する
初回起動の前に、アプリを固定の場所に保存します。マウントしたディスクイメージから使い続けたり、アプリパッケージ内の実行ファイルだけを取り出したりしないでください。
-
初回起動
Finderの「アプリケーション」からv2rayNを開き、警告の正確な文言を確認します。開発元の確認に関する警告、アプリが破損しているという警告、コアの実行エラーを区別してから次の手順に進んでください。
この記事では「システム設定」というメニュー名を使います。古いmacOSでは「システム環境設定」と表示される場合があります。v2rayNの設定項目はバージョンによって変わることもあります。ポートやTUNの設定では、インストール中のバージョンに表示される項目を確認し、他のプラットフォームの画面で見た手順をそのまま当てはめないでください。
「開発元を確認できません」という警告と初回起動のブロックに対処
Gatekeeperはアプリの配布元に対する信頼性を確認します。「開発元を確認できません」と表示されても、サーバーへの接続失敗を意味するわけではなく、サブスクリプションの変更で解決する問題でもありません。ダウンロード元とファイルが正しいことを確認したうえで、そのアプリだけを許可してください。
-
警告の内容を確認
初回起動がブロックされたら、まず警告を閉じます。表示されているのが、ダウンロードしたv2rayNであることを確認してください。同じ名前の古いコピーや、見覚えのない補助プログラムではないかも確かめます。
-
セキュリティ設定を開く
Appleメニューから「システム設定」→「プライバシーとセキュリティ」を開き、下にスクロールして「セキュリティ」を確認します。直前にブロックされたアプリについての説明が表示されていることがあります。
-
対象アプリだけを許可
システムに許可され、入手元も確認できている場合は、アプリの横にある「このまま開く」をクリックします。画面の指示に従って管理者認証を行い、起動を確認してください。ボタンの表記はmacOSのバージョンによって多少異なります。
-
アプリを再度起動
「アプリケーション」に戻り、同じコピーを起動します。許可するボタンが表示されない場合は、もう一度アプリを開いてから再確認してください。管理対象のMacでは、組織のセキュリティポリシーで許可が制限されていないかも確認します。
クライアントをインストールするためにMac全体のGatekeeperを無効にしたり、「ダウンロード」フォルダ全体から隔離属性を削除したりしないでください。許可しても起動できない場合は、アプリを終了して問題のあるコピーを削除し、アーキテクチャに合った完全なリリースパッケージを再ダウンロードしましょう。出どころのわからないターミナルコマンドを次々に試すより、原因を絞り込みやすくなります。
まずシステムプロキシを確認し、必要ならTUNを有効にする
v2rayNの画面、プロキシコア、システムのネットワーク設定はそれぞれ別の層です。画面が開くのはアプリが起動できたことを示すだけです。コアがローカルポートで待ち受けて初めて、アプリから利用できるプロキシの接続先ができます。さらにシステムプロキシが正しく設定されていれば、その設定に従うアプリが接続先を利用します。
アプリに応じて接続方法を選ぶ
まずはシステムプロキシ
- ブラウザーや、システムプロキシ設定に従うアプリに適しています。
- サーバー、コア、ローカルポートの待ち受けが正常か先に確認します。
- 通常のWeb閲覧だけなら、TUNを同時に有効にする必要はありません。
必要に応じてTUNを使う
- システムプロキシ設定に従わないアプリの通信に適しています。
- 仮想インターフェース、ルーティング、DNSの確認が必要です。
- 追加の権限を設定してから、通信が適切に取り込まれるか確認します。
システムプロキシはアプリケーション層の接続方法、TUNはネットワーク層で通信を取り込む方法です。どちらも、正しいサーバー設定やルーティングルールの代わりにはなりません。
サブスクリプションをインポートしてサーバーを選んだら、まずTUNを無効のままにします。v2rayNの「システムプロキシ」メニューから「システムプロキシを自動設定」を選んでください。ここでの「自動設定」が必ずPACを使うとは限りません。実際に設定されたHTTP、HTTPS、SOCKSプロキシの項目をシステム側で確認します。
- 「システム設定」→「ネットワーク」→現在使用中のWi-FiまたはEthernet→「詳細」→「プロキシ」を開きます。
- 有効になっているプロキシのサーバーアドレスとポートを確認します。ローカルプロキシを使う場合、アドレスは通常
127.0.0.1です。ポートはv2rayNが現在待ち受けている値と一致している必要があります。 - クライアントからネットワーク設定の変更を求められた場合は、要求元を確認してから認証します。許可を取り消した場合や、ネットワークサービスを切り替えた場合、または別のプロキシアプリに設定を上書きされた場合は、変更が反映されないことがあります。
- 外部への接続を直すために、macOSのファイアウォールを安易に無効にしないでください。受信接続の制御と、Mac上で送信プロキシを設定する問題は別です。
ポートとコマンドで権限の問題を切り分ける
以下では、ローカルHTTPプロキシの例としてポート10808を使います。すべてのバージョンの既定ポートとは限りません。まずv2rayNの「設定」→「パラメーター設定」で、ローカルの待ち受けポートとプロトコルを確認してください。現在のバージョンでメニューの場所が異なる場合は、該当するローカル受け入れ設定を確認します。
scutil --proxy
lsof -nP -iTCP:10808 -sTCP:LISTEN
curl -I --connect-timeout 15 --max-time 30 --proxy http://127.0.0.1:10808 https://example.com/
scutil --proxyは現在のプロキシ設定を確認するコマンドです。lsofではローカルのTCP待ち受けを確認できます。待ち受けが見つからない場合は、コアのログに起動失敗、アーキテクチャの不一致、アドレスの競合がないかを先に調べてください。システムプロキシの権限設定を繰り返し試す必要はありません。ポートが待ち受け中でもHTTPを受け付けるとは限らないため、受け入れプロトコルも確認します。
プロキシを指定したリクエストが成功
- コマンドの結果
- 接続先サイトからHTTPレスポンスヘッダーを受信
- ブラウザーで問題が発生
- まずシステムプロキシとブラウザーの設定を確認
- システム側の確認情報
- scutil --proxyに表示されるアドレスとポートを確認
レスポンスを受信できても、そのリクエストが到達したことしか示しません。すべてのドメインやルートが正常とは限りません。
プロキシを指定したリクエストが失敗
- 接続が拒否された
- ポート、待ち受け状態、受け入れプロトコルを確認
- ハンドシェイクがタイムアウト
- サーバーアドレス、ネットワーク、送信ログを確認
- 証明書エラー
- 時刻、サーバーのドメイン名、TLS設定を確認
プロキシを明示したcurlはシステムプロキシの設定に依存しないため、アプリケーション層の設定問題を切り分けるのに役立ちます。
ローカルポートがSOCKSのみを提供している場合は、テスト時に--proxy socks5h://127.0.0.1:10808を使い、実際のSOCKSポートに置き換えてください。socks5hは接続先のドメイン名の解決をプロキシ側に任せる指定です。Mac上での名前解決結果と混同しないでください。
必要に応じてTUNとネットワークアクセスの権限を付与する
通常のプロキシ接続が成功してから、クライアントの「TUNを有効にする」を試します。仮想ネットワークインターフェースの作成、ルートの変更、関連する補助サービスの有効化には、管理者権限が必要な場合があります。具体的な動作はv2rayNのバージョンや使用するTUNコンポーネントによって異なるため、毎回同じシステムダイアログが表示されるとは限りません。
- 起動ログを確認:TUNを有効にした際に最初に表示されるエラーを記録します。権限不足、インターフェースの作成失敗、DNSのタイムアウトは分けて対処してください。
- 認証要求を確認:システムから管理者認証を求められたら、操作の時刻と要求元のプログラムを確認します。サブスクリプションのパスワードやサーバーの認証情報を、システムの認証画面に入力しないでください。
- 表示された要求に応じて設定:VPN構成やネットワーク機能拡張の要求が実際に表示された場合に限り、「システム設定」→「ネットワーク」→「VPNとフィルタ」など、該当する項目を確認します。新しいmacOSでは「一般」→「ログイン項目と機能拡張」で機能拡張を管理する場合もあります。
- ローカルネットワークの許可と区別:macOS 15以降では、「プライバシーとセキュリティ」→「ローカルネットワーク」でLANへのアクセスを管理します。これはインターネット全体へのアクセスを制御する設定ではありません。アプリが一覧に表示されないからといって、TUNの権限に問題があるとは限りません。
- 通信の重複制御を避ける:デフォルトルート、DNS、システムプロキシを変更する他のツールを一時的に停止し、v2rayNだけで動作を確認します。複数のTUN方式を同時に実行してテストしないでください。
ログイン項目を設定し、終了後に設定が戻るか確認
ログイン時の起動、バックグラウンド動作、TUNの許可はそれぞれ別の設定です。v2rayNをログイン項目に追加しても、ユーザーのログイン後にアプリの起動が試みられるだけで、サーバーの自動選択、システムプロキシの設定、TUNの確立までは保証されません。これらの動作は、クライアントの起動オプションやシステム権限にも左右されます。
-
ログイン項目に追加
「システム設定」→「一般」→「ログイン項目」を開きます。バージョンによっては「ログイン項目と機能拡張」と表示されます。「ログイン時に開く」にある追加ボタンから、「アプリケーション」フォルダ内のv2rayNを追加してください。
-
二重起動を避ける
クライアントの起動時に開く設定をすでに使っている場合は、システムの一覧に登録済みか確認します。起動方法は明確なものを一つだけ残し、古いパスと新しいパスを重複して登録しないでください。
-
バックグラウンド項目を確認
現在のバージョンで関連する補助項目が実際にインストールされている場合に限り、「バックグラウンドでの実行を許可」の一覧で名前と入手元を確認します。該当項目がなくても、アプリのインストールが不完全とは限りません。
-
終了後の動作をテスト
ウィンドウを閉じるだけでなく、メニューからアプリを終了します。システムプロキシが元に戻っているか確認してください。その後Webに接続できなくなった場合は、「ネットワーク」→現在のネットワークサービス→「詳細」→「プロキシ」に戻り、残っているローカルプロキシ設定を削除します。
最後に一度ログアウトして再度ログインし、固定した場所にあるアプリが起動すること、コアが待ち受けること、システムプロキシまたはTUNが想定どおり動作することを確認します。スリープから復帰した後に動かなくなった場合も、待ち受け、プロキシ設定、DNSの順に確認してください。Macの再起動だけを唯一の対処法にしないでください。
よくある警告と対処できる範囲
「このまま開く」ボタンが表示されない場合は?
まず「アプリケーション」からもう一度起動し、「プライバシーとセキュリティ」で該当するブロックの記録を確認します。組織管理のMacでは、例外的な許可がデバイスポリシーで禁止されていないか確認してください。悪意のあるソフトウェアに関する警告が表示された場合は、通常の開発元確認の手順で先に進まないでください。
アプリは起動したのに、コアのエラーが繰り返し表示されるのはなぜ?
まずダウンロードしたパッケージのアーキテクチャと内容を確認し、ログでコアの名前、実行パス、最初のエラーを調べます。メインアプリの許可が、独立したコアの実行ファイルにも適用されるとは限りません。子プロセスが別途ブロックされた場合は、同じリリースパッケージに含まれることを確認し、見覚えのないプログラムを安易に許可しないでください。
ブラウザーではアクセスできるのに、ターミナルのコマンドでは接続できないのはなぜ?
多くのコマンドラインツールは、macOSのシステムプロキシを自動で参照しません。まずこの記事のcurlコマンドでプロキシを明示してテストし、その後ツールの説明に従ってプロキシ環境変数を設定してください。ターミナルから接続できないだけで、システムのネットワーク権限を何度も申請しないでください。
アップデート後に再び確認を求められます。古いログイン項目はそのまま使えますか?
新しいバージョンでは、セキュリティチェックが再び行われることがあります。入手元を改めて確認し、アプリごとの手順で許可してください。アプリの保存先や名前を変えた場合は、「ログイン項目」から古いパスを削除して新しい場所を追加し、ポートと起動オプションを確認します。同じアプリを2つ同時に起動しないでください。
トラブルシューティングの記録として残すのは、macOSのバージョン、v2rayNのバージョン、プロセッサのアーキテクチャ、エラーの発生時刻、個人情報を伏せたエラー行だけで十分です。ログを共有する前に、サブスクリプションのURL、サーバーの認証情報、ネットワークを特定できる情報を削除してください。サブスクリプションのインポートやルーティングの基本は、当サイトの入門ガイドと応用ガイドをご覧ください。