Linuxのグラフィカルデスクトップ環境に入り、v2rayNをインストールするユーザー向けの記事です。ディストリビューションに応じてdebまたはrpmパッケージを選び、実行ファイルのパスとXray Coreを確認します。その後、トレイコンポーネント、10808のローカルプロキシポート、systemdによるログイン時自動起動を設定します。完了後はログとポートの待受状態から正常に起動したか確認できます。
アーキテクチャとデスクトップ環境を確認する
v2rayN Linuxデスクトップ版はグラフィカルセッションで動作します。Debian、Ubuntu、Linux Mintなどではdebパッケージ、Fedora、Rocky Linux、AlmaLinuxなどではrpmパッケージを使用します。パッケージ形式はディストリビューションに合わせ、プロセッサのアーキテクチャも一致させてください。一般的なPCはx64、ARMプロセッサ搭載デバイスはarm64を選びます。OSが64ビットだからといって、必ずしもx64とは限りません。
まずターミナルで次のコマンドを実行します。1行目はプロセッサのアーキテクチャ、2行目はディストリビューションの識別情報、3行目は現在のデスクトップセッションの種類を表示します。x86_64と表示された場合はx64パッケージ、aarch64と表示された場合はarm64パッケージを選択します。XDG_SESSION_TYPEには通常、waylandまたはx11と表示されます。
uname -m
cat /etc/os-release
printf '%s\n' "$XDG_SESSION_TYPE"
この記事では、v2rayN 7.15.2の画面とパッケージ管理手順を基準にしています。以降のバージョンではボタンの位置が多少変わる可能性がありますが、インストールコマンド、ユーザーサービスのディレクトリ、ポートの調査方法は変わりません。旧バージョンを更新する前に、実行中のv2rayNを終了し、古いプロセスが設定ファイルやローカルの待受ポートを使い続けないようにしてください。
debまたはrpmのインストール方式を選ぶ
debとrpmはいずれもシステム用パッケージです。プログラム、デスクトップエントリ、アイコンをディストリビューションで定められた場所に配置し、パッケージマネージャーに登録します。手動解凍と比べて、システムパッケージはファイルの場所を確認しやすく、アンインストールも簡単です。また、インストール時に不足している依存関係を明確に確認できます。
システム標準パッケージ
推奨DebianとUbuntuではdeb、Fedora系ではrpmを選びます。実行エントリとデスクトップファイルはパッケージマネージャーで一元管理されます。
適した用途:長期利用、メニューエントリとバージョン管理が必要な場合
手動解凍パッケージ
プログラムをユーザーディレクトリに保存し、更新時は自分でファイルを置き換え、systemdサービスの実行ファイルパスも手動で記述します。
適した用途:システムへのインストール権限がない場合、一時的なテスト
旧バージョンを残す
先に設定をエクスポートしてから、新しいパッケージをインストールしてプログラムを上書きします。10808または10809ポートが競合するため、2つのバージョンを同時に起動しないでください。
適した用途:アップグレード前に短期間のロールバックが必要な場合
DebianとUbuntuにdebをインストールする
ダウンロードしたdebファイルを「ダウンロード」ディレクトリに入れ、そのディレクトリへ移動してapt installでローカルパッケージをインストールします。コマンド内のファイル名は実際の名前に置き換えてください。入力前にls *.debで確認できます。dpkgを直接使う場合と異なり、aptはリポジトリから取得できる依存関係も同時に処理します。
cd ~/ダウンロード
ls *.deb
sudo apt install ./v2rayN-linux-64.deb
システムのディレクトリ名が英語の場合、パスは通常~/Downloadsです。すでにdpkg -iでインストールし、依存関係が満たされていないという表示が出た場合は、sudo apt -f installを実行して修復してから、インストールコマンドを再実行します。同じパッケージ名を更新する場合、aptはユーザーディレクトリ内の設定データを保持します。
Fedora系にrpmをインストールする
Fedoraでは、ローカルrpmの処理にdnf installを使うことをおすすめします。コマンド先頭の./は現在のディレクトリにあるファイルを示すため、リポジトリのソフトウェア名として扱われないよう省略しないでください。インストール後は、大文字と小文字を区別しない検索コマンドでパッケージの登録を確認できます。
cd ~/Downloads
ls *.rpm
sudo dnf install ./v2rayN-linux-64.rpm
rpm -qa | grep -i '^v2rayn'
Debian / Ubuntu
- パッケージ形式
- deb
- インストールコマンド
- apt install ./ファイル名.deb
- 依存関係の修復
- apt -f install
- アンインストールと確認
- dpkg -l | grep -i v2rayn
ローカルパッケージとリポジトリの依存関係は、まずaptに処理させます。
Fedora系
- パッケージ形式
- rpm
- インストールコマンド
- dnf install ./ファイル名.rpm
- 依存関係の処理
- dnfが解決
- インストールの確認
- rpm -qa | grep -i v2rayn
ローカルファイルをインストールするときは、パスの接頭辞./を残します。
初回起動とCoreパラメータの確認
インストール後は、まずアプリケーションメニューからv2rayNを起動し、すぐにバックグラウンド自動起動を設定しないでください。初回起動では、メインウィンドウが開くこと、Coreが起動できること、設定ディレクトリに書き込めることを確認します。アプリケーションメニューがまだ更新されていない場合は、ログアウトしてデスクトップに入り直すか、ターミナルでcommand -v v2rayNを実行して起動コマンドを探します。
メイン画面を開いたら、「設定」→「パラメータ設定」→「Core タイプ」に進みます。VLESS、Reality、または新しいXrayの機能が必要なノードではXrayを選択します。既存のVMessノードもXrayで処理できます。ノードのプロトコル、アドレス、ポート、ユーザー識別子、通信方式、TLS、Realityの各パラメータは、サーバー側と一つずつ一致させてください。クライアントのインストールが成功しても、ノード設定が正しいとは限りません。
メインプログラムを起動する
デスクトップのアプリケーションメニューからv2rayNを開き、メインウィンドウが完全に表示されるまで待ちます。ターミナルから起動する場合は、不足コンポーネントを確認できるよう、ターミナルの出力を残しておきます。
Coreを選択する
「設定」→「パラメータ設定」→「Core タイプ」に進み、VLESS、Reality、VMessを日常的に使用する場合はXrayを選択して設定を保存します。
サブスクリプションをインポートする
「サブスクリプショングループ」で完全なサブスクリプションURLを追加し、保存後にサブスクリプションを更新します。更新に失敗した場合は、まずシステム時刻、DNS、現在のネットワーク接続を確認してください。
ノードを選択する
ノード一覧から設定を1つ選び、アクティブサーバーに設定してからCoreを起動します。同じローカルポートを使用する別のプロキシプログラムを同時に実行しないでください。
プロキシを確認する
ローカルのSOCKSポート10808とHTTPポート10809を確認し、必要に応じてシステムプロキシを有効にします。ポート番号は現在のパラメータ設定画面に表示される値を基準にしてください。
起動後、ssで待受状態を確認します。127.0.0.1:10808または設定画面で指定したローカルアドレスが表示されれば、Coreがローカルの入口を確立しています。メイン画面では起動済みと表示されるのに待受記録がない場合は、v2rayNのログでCoreが終了した原因を確認してください。
ss -lntp | grep -E '10808|10809'
ps -ef | grep -E 'v2rayN|xray' | grep -v grep
デスクトップのトレイアイコンが表示されない場合
v2rayNはメインウィンドウを閉じた後も通常はトレイに常駐するため、トレイアイコンの表示は終了、ノード切り替え、ウィンドウの復元に直接影響します。アイコンが消えてもCoreが停止したとは限りません。まずpsとssでプロセスとポートを確認し、デスクトップ環境がステータスアイコンをサポートしているか調べてください。
Ubuntuおよび一部のGNOMEデスクトップでは、通常Ayatana AppIndicatorコンポーネントが必要です。まずランタイムをインストールし、ログアウトしてからデスクトップに再ログインします。Fedoraのパッケージ名はバージョンや有効なリポジトリによって異なるため、先にdnf search appindicatorで検索してください。他のディストリビューションのdebパッケージを混在させないでください。
sudo apt update
sudo apt install libayatana-appindicator3-1
dnf search appindicator
Waylandセッションでメインウィンドウは正常に表示されるのにトレイメニューが現れない場合は、まずデスクトップパネルでアプリケーションのステータスアイコンが表示可能になっているか確認します。その後、v2rayNを完全に終了して再起動してください。アプリケーションメニューを何度もクリックするだけでは、シングルインスタンス制限により新しいウィンドウが開かず、バックグラウンドの古いプロセスだけが残ることがあります。
アイコンをクリックしてもメインウィンドウが表示されない?
pgrep -a v2rayNを実行して古いプロセスを確認します。プロセスが存在する場合は、まずトレイから終了を選択してください。トレイが見えない場合はそのプロセスを終了し、ターミナルから起動して出力を確認します。
トレイアイコンが空白になっている?
AppIndicatorランタイムを再インストールし、デスクトップセッションからログアウトして再ログインします。v2rayNだけを再起動しても、デスクトップパネルがアイコン表示機能を再読み込みできない場合があります。
Core起動後もWebページを開けない?
まずss -lntpを実行して10808と10809を確認し、次にシステムプロキシでSOCKSポートとHTTPポートのどちらを指定しているか確認します。プロトコルとポートを取り違えないでください。
サブスクリプションの更新が何度もタイムアウトする?
まずシステム時刻を合わせ、DNSとサブスクリプションURLが完全か確認します。利用可能なノードがある場合は、サブスクリプション設定でプロキシ経由の更新を有効にして再試行できます。
アップグレード後に以前のノードが消えた?
起動しているのがシステムインストール版ではなく、古い解凍版ではないことを確認します。2つのプログラムが異なる設定ディレクトリを読み込む可能性があるため、古いプロセスを終了してから現在の設定パスを確認してください。
systemdユーザーサービスを設定する
デスクトッププログラムには、システム全体のrootサービスではなくsystemdユーザーサービスが適しています。ユーザーサービスは現在のアカウントのユーザーマネージャーで実行され、そのアカウントの設定ディレクトリを読み込めます。また、journalctl --userでログを確認しやすくなります。ここでいう自動起動とは、そのユーザーがグラフィカルデスクトップにログインした後に自動起動することです。v2rayNにはトレイと表示セッションが必要なため、誰もログインしていない状態で強制的に起動する用途には向きません。
まずcommand -v v2rayNを実行して実際のパスを取得します。システムパッケージでは/usr/bin/v2rayNと表示されることが多いですが、必ず実機の結果を使用してください。その後、ユーザーサービスのディレクトリとサービスファイルを作成します。
command -v v2rayN
mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/v2rayn.service
以下の内容をファイルに書き込みます。1行目のコマンドが/usr/bin/v2rayN以外のパスを返した場合は、ExecStartも必ず同じパスに変更してください。サービスは異常終了後5秒待って再起動し、グラフィカルセッションとネットワークのターゲットが利用可能になってから起動する設定です。
[Unit]
Description=v2rayN desktop client
After=graphical-session.target network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/v2rayN
Restart=on-failure
RestartSec=5
[Install]
WantedBy=default.target
サービスファイル
- 場所
- ~/.config/systemd/user/v2rayn.service
- サービス種別
- Type=simple
- 再起動ポリシー
- on-failure
- 待機時間
- 5秒
サービスは現在のデスクトップユーザーに属するため、sudoを使って作成しません。
実行条件
- プログラムのパス
- command -v v2rayN
- 起動ターゲット
- default.target
- セッション要件
- グラフィカルデスクトップにログイン済み
- ログの範囲
- systemdユーザーログ
グラフィカルクライアントをrootのシステムサービスとして設定しないでください。
保存後、ユーザーサービスを再読み込みし、有効化してすぐに起動します。約15秒待ってからサービスの状態を確認してください。状態がactive (running)で、ローカルポートも存在すれば、自動起動の設定は完了しています。
systemctl --user daemon-reload
systemctl --user enable --now v2rayn.service
systemctl --user status v2rayn.service
ss -lntp | grep -E '10808|10809'
ログの確認、無効化、アップグレード後のメンテナンス
サービスを起動できない場合は、まずユーザーログの最新50行を確認します。よくある原因は、ExecStartのパス間違い、別のv2rayNインスタンスの起動、10808ポートの使用中、デスクトップセッションの準備未完了です。ログを確認せずにパッケージを何度も再インストールしないでください。設定ミスやポート競合は、再インストールだけでは解消しません。
journalctl --user -u v2rayn.service -n 50 --no-pager
systemctl --user restart v2rayn.service
systemctl --user is-enabled v2rayn.service
systemctl --user is-active v2rayn.service
ログにAddress already in useと表示された場合は、次のコマンドでポートを使用しているプロセスを特定します。プロセスの用途を確認したら、競合するプログラムを終了するか、v2rayNの「設定」→「パラメータ設定」でローカルの待受ポートを変更します。変更後は、ブラウザー、ターミナルの環境変数、システムプロキシに設定したポートも更新してください。
ss -lntp | grep ':10808'
lsof -iTCP:10808 -sTCP:LISTEN
ログイン時の自動起動が一時的に不要な場合は、無効化と停止を同時に実行します。サービスファイルを変更した場合は、再読み込みして再起動してください。debまたはrpmでアップグレードした後も、command -v v2rayNを再実行し、プログラムのパスが変わっていないことを確認します。
systemctl --user disable --now v2rayn.service
systemctl --user daemon-reload
systemctl --user restart v2rayn.service
- メインウィンドウは開くがCoreを起動できない:「設定」→「パラメータ設定」→「Core タイプ」とノードのプロトコルパラメータを確認します。
- Coreは起動しているがローカルで待ち受けていない:Coreのログを確認し、10808と10809が他のプロセスに使用されていないか調べます。
- ポートは存在するがWebページにアクセスできない:システムプロキシの種類、アドレス、ポートを確認し、HTTPとSOCKSの設定が対応しているか確かめます。
- 手動起動は正常だが自動起動に失敗する:
ExecStartの絶対パスを確認し、systemdユーザーログを読み取ります。 - サービスが繰り返し再起動する:まずサービスを停止し、ターミナルからv2rayNを手動実行して、最初に表示されるエラーを確認します。