Linuxデスクトップにv2rayNを導入するには、まずディストリビューションとCPUアーキテクチャに合ったパッケージを選び、パッケージマネージャーで依存関係を解決します。初回は一般ユーザーで起動してローカルプロキシを確認し、その後ログイン時の自動起動を設定します。デスクトップの起動項目とバックグラウンドサービスの違いも説明します。Debian、Ubuntu、Fedora、openSUSEでデスクトップクライアントを継続利用する方向けの記事です。
インストール前に確認すること:ディストリビューション、アーキテクチャ、実行方法
v2rayNはAvaloniaを使用したLinux向けデスクトップクライアントです。設定の管理、コアの起動、ログの表示を担い、実際のプロキシ接続は選択したコアが処理します。デスクトップ用パッケージをインストールしても、システムサービスが自動起動するわけではなく、すべてのアプリがプロキシを利用するわけでもありません。
まず、次の2つのコマンドを実行します。uname -m の結果が x86_64 ならx64パッケージ、aarch64 ならarm64パッケージを選びます。debとrpmのどちらを使うかはディストリビューションで判断してください。PCのメーカーやブランドだけでアーキテクチャを決めないでください。
cat /etc/os-release
uname -m
Debian / Ubuntu
- パッケージ形式
- deb
- x64のアーキテクチャ名
- amd64
- ARMのアーキテクチャ名
- arm64
- インストールツール
- apt
パッケージ内のアーキテクチャは dpkg-deb でも確認できます。実機の dpkg アーキテクチャと照合してください。
Fedora / openSUSE
- パッケージ形式
- rpm
- x64のアーキテクチャ名
- x86_64
- ARMのアーキテクチャ名
- aarch64
- インストールツール
- dnf / zypper
どちらもrpmパッケージを使いますが、リポジトリや依存パッケージの名称は異なる場合があります。
以降では、ダウンロードしたパッケージを v2rayN.deb または v2rayN.rpm にリネームし、~/Downloads に置いたものとします。これはローカルでの操作名であり、サーバー上の実際のファイル名ではありません。ダウンロード先が異なる場合は、実際の保存先に移動してください。パッケージはクライアントのダウンロードページから選び、異なるアーキテクチャ向けのものを無理にインストールしないでください。
Debian/Ubuntu:aptでローカルのdebパッケージをインストール
apt install ./ファイル名 を使うのがおすすめです。パスの先頭にある ./ はローカルファイルを示します。aptは有効なリポジトリを参照して、パッケージが必要とする依存関係を解決します。dpkg -i でも展開できますが、不足している依存パッケージは自動でダウンロードされません。初回インストールの手順として、これだけを実行するのは避けてください。
cd ~/Downloads
dpkg --print-architecture
dpkg-deb -f ./v2rayN.deb Package Version Architecture
sudo apt update
sudo apt install ./v2rayN.deb
-
パッケージ情報を確認
実機のアーキテクチャとパッケージの Architecture フィールドを比較します。Version フィールドも控えておき、問題を報告する際はクライアントとOSのバージョンを併記してください。
-
依存関係を解決してインストール
aptが表示するインストール内容を確認してください。デスクトップ環境の主要コンポーネントを大量に削除する提案が表示された場合は、いったん中止し、強制オプションで競合を回避しないでください。
-
初回は手動で起動
デスクトップのアプリメニューでv2rayNを検索し、現在ログイン中のユーザーで起動します。インストール時にはsudoが必要ですが、GUIの起動にsudoは不要です。
-
エラー出力を記録
ウィンドウが表示されない場合は、デスクトップ起動ファイルの Exec フィールドを確認し、該当するプログラムをターミナルから実行して、エラー全文を記録してください。
dpkgでインストールした後に「未設定」の状態が残っている場合は、次の修復コマンドを実行できます。依存パッケージがインストールされることも、依存関係を満たせないパッケージの削除を提案されることもあります。内容を確認してから進めてください。リポジトリに接続できない場合は、ネットワークやリポジトリの設定を先に修正します。何度展開してもダウンロードエラーは解決しません。
sudo apt --fix-broken install
sudo dpkg --configure -a
Fedora/openSUSE:各ディストリビューションのツールでrpmをインストール
rpmはパッケージ形式であり、ディストリビューション間の互換性を保証するものではありません。Fedoraではdnf、openSUSEではzypperを使い、依存関係は各環境のパッケージマネージャーに解決させてください。インストール前にパッケージ情報を確認し、アーキテクチャとバージョンを確かめてから、該当するディストリビューションのコマンドを実行します。
cd ~/Downloads
rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' ./v2rayN.rpm
# Fedora
sudo dnf install ./v2rayN.rpm
# openSUSE:こちらのコマンドを使用。上記のdnfコマンドを重ねて実行する必要はありません
sudo zypper install ./v2rayN.rpm
| 表示される内容 | まず確認する項目 | 対処時の注意 |
|---|---|---|
| アーキテクチャが一致しない | パッケージの ARCH と uname の出力 | x64またはarm64のパッケージを選び直し、アーキテクチャのチェックを強制的に無視しない |
| 依存パッケージが見つからない | ディストリビューションのバージョンと有効なリポジトリ | 異なるディストリビューションの基本ランタイムを混在させない |
| ランタイムのバージョンが古い | ターミナルに表示されるGLIBCなどのバージョン要件 | OSのアップグレードを検討し、システムのlibcを手作業で置き換えない |
| パッケージの提供元を確認する警告 | ダウンロード元とパッケージマネージャーの警告内容 | 提供元を確認してから判断し、セキュリティチェックを全体的に無効化しない |
インストールは成功しても起動しない場合、「パッケージの依存関係が満たされていること」と「GUIの実行環境が利用できること」を分けて考えてください。グラフィカルセッションがない、ディスプレイ環境変数が設定されていない、リモート端末がデスクトップに接続されていないといった場合、GUIは起動しません。こうした問題をsudoでの起動によって隠さないでください。
初回起動:ローカルの待ち受けを確認してからシステムプロキシを有効化
入手済みのノードまたはサブスクリプションをインポートし、利用可能なノードを選んでから、コアが待ち受けていることを確認します。サブスクリプションにはサーバーへの接続情報が含まれるため、適当なアドレスを入力してテストすることはできません。プロトコルとトランスポートの組み合わせが利用できるかは、使用中のコアの対応状況を確認してください。コアを変更した場合は、ログも再確認します。
該当するメニューがあるバージョンでは、「設定」→「パラメータ設定」→「基本設定」でローカルの待ち受けポートを確認します。ポートやメニューの構成はバージョンによって変わるため、画面上の値を優先してください。以下ではトラブルシューティングの例として、HTTPプロキシの待ち受けを 127.0.0.1:10808 とします。既存の設定をこの値に変更する必要はありません。
ss -lntp 'sport = :10808'
curl --proxy http://127.0.0.1:10808 --max-time 15 -I https://example.com/
1つ目のコマンドでTCPの待ち受けを確認し、2つ目でHTTPプロキシを明示してテストサイトにアクセスします。ポートがSOCKS接続専用の場合は、socks5h://127.0.0.1:10808 に変更してください。ドメイン名の名前解決もプロキシ側で行われます。待ち受けが確認できない場合は、回線速度を疑う前にコアの起動エラーを確認します。
- プロキシを明示したリクエストが成功しても、そのリクエストでプロキシ経由の通信ができたことを示すだけです。すべてのアプリがプロキシを利用しているとは限りません。
- デスクトップアプリをプロキシに接続する場合は、クライアントの「システムプロキシ」→「システムプロキシを自動設定」を使います。実際に適用される範囲はデスクトップ環境やアプリによって異なります。
- コマンドラインのプログラムは、デスクトップのプロキシ設定を参照しない場合があります。各プログラムのプロキシオプションまたは環境変数を使用してください。
- 初回のセットアップでは、まず通常のプロキシモードを確認してください。TUNは権限やルーティングを変更するため、別途設定し、同時に複数の要因を持ち込まないようにします。
デスクトップの自動起動:ユーザーのログイン起動項目を推奨
デスクトップクライアントの「起動時に自動起動」は、通常、グラフィカルデスクトップへのログイン後に起動する設定を指します。XDG Autostartの利用がおすすめです。インストールパッケージに含まれるdesktopファイルを再利用し、正しいExec、アイコン、起動オプションを保てます。メインプログラムの場所を推測する必要がなく、クライアント全体をrootで実行する必要もありません。
XDGログイン時起動
おすすめ現在のユーザーのグラフィカルセッションで起動し、デスクトップ環境とユーザー設定をそのまま利用します。デスクトップ上でトレイやウィンドウを使う場合に適しています。
適した用途:個人用Linuxデスクトップ、ログイン後の自動接続
systemdサービス
サービスとして動かす場合は、実行環境、権限、ライフサイクルを個別に設計する必要があります。システムサービスは自動的にグラフィカルセッションを利用できるわけではないため、デスクトップGUIにそのまま適用するのは適切ではありません。
適した用途:コアを独立して動作させる必要が明確なバックグラウンド環境
まず、クライアントの「設定」→「パラメータ設定」に「ログイン時に自動起動」の項目があるか確認します。現在のバージョンでユーザーの起動項目が正しく作成されるなら、そのまま利用してください。もう一つコピーすると、ログイン時に二重起動することがあります。手動で設定する場合は、まずインストールパッケージに含まれるdesktopファイルを探します。
find /usr/share/applications -maxdepth 1 -type f -iname '*v2rayn*.desktop' -print
該当するファイルが1つだけ見つかった場合に限り、次のコピー操作を実行してください。スクリプトで一致したファイル数を確認するため、複数の起動項目から適当に1つ選ぶことを防げます。見つからない場合は、debなら dpkg-deb -c、rpmなら rpm -qlp でパッケージ内の一覧を確認し、desktopファイルの実際の名称と場所を特定してください。
bash <<'BASH'
mapfile -t entries < <(find /usr/share/applications -maxdepth 1 -type f -iname '*v2rayn*.desktop')
if [ "${#entries[@]}" -ne 1 ]; then
printf 'desktop起動項目が1つ必要ですが、見つかった数は %s 個です。\n' "${#entries[@]}"
exit 1
fi
target="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
mkdir -p "$target"
cp -- "${entries[0]}" "$target/v2rayN.desktop"
chmod 644 "$target/v2rayN.desktop"
grep -E '^(Type|Name|Exec|TryExec|Hidden|OnlyShowIn|NotShowIn|X-GNOME-Autostart-enabled)=' "$target/v2rayN.desktop"
BASH
TypeはApplicationである必要があります。Execに指定されたプログラムが実際に存在することも確認してください。Hidden=trueまたはX-GNOME-Autostart-enabled=falseが設定されている場合は、テキストエディターで修正してからテストしてください。OnlyShowInとNotShowInはデスクトップ環境を制限する場合があります。コピー後にこれらの項目も確認してください。- Execに
~、パイプ、シェルのリダイレクトを直接記述しないでください。desktopファイルの内容は通常の対話型シェルのようには解釈されません。
保存後にログアウトして再ログインし、クライアントのプロセスが1つだけ起動することと、例に示したポートで再び待ち受けていることを確認します。ウィンドウを閉じて開き直すだけでは、ログイン時の自動起動を検証できません。クライアントのアップデートでインストール先や起動オプションが変わった場合は、手動でコピーしたdesktopファイルも更新してください。
権限、トレイ、再起動後によくある問題
「プログラムが起動するか」「コアが待ち受けるか」「リクエストが通るか」「ログイン時に起動するか」の順で確認してください。ウィンドウの非表示、ポートの競合、ネットワーク障害を混同せずに済みます。初回導入では、次の4つのケースが特によく発生します。
インストール後、メニューにv2rayNが見つからない
まず、前述のfindコマンドでdesktopファイルを検索し、パッケージ内のファイル一覧も確認します。ファイルが存在する場合は、ログアウトして再ログインし、アプリメニューを更新してください。ファイルがなければ、実行パスを推測するのではなく、想定したデスクトップ用パッケージをダウンロードしたか確認します。
sudoなら起動するのに、一般ユーザーでは権限不足になる
まずrootで起動したインスタンスを停止します。ターミナルでエラーに記載された設定ディレクトリを確認し、ls -ld で所有者を調べてください。現在のユーザーが所有することを確認できたアプリ設定ディレクトリだけを修正します。ホームディレクトリやインストール先全体に再帰的な権限変更を行ったり、誰でも書き込める権限を設定したりしないでください。
ログイン後にウィンドウが表示されない。起動していないのか
まず、システムのプロセス確認ツールでv2rayNを検索し、ローカルの待ち受けも確認してください。アプリがトレイに最小化されている場合があります。デスクトップ環境によっては、トレイ機能を別途有効にする必要があります。初回の確認では、起動後にウィンドウを隠す設定を無効にし、表示を確認してから調整してください。
ログにaddress already in useと表示された場合
ss -lntp 'sport = :10808' を実行して、ポートを使用しているプロセスを調べます。権限が足りない場合は、この診断コマンドだけをsudoで実行してください。まず自動起動による二重起動を解消し、その後、古いインスタンスを停止するか待ち受けポートを変更します。ポートを変えた場合は、システムプロキシとコマンドライン引数も合わせて更新してください。
アップデートとロールバック:パッケージ管理と起動項目を一貫させる
以降のアップデートも、同じ方法でパッケージマネージャーを使って新しいパッケージをインストールします。更新前にクライアントの設定をバックアップし、サブスクリプションURLやノードの認証情報を安全に保管してください。アクセス権限に関わる情報が含まれる場合があるため、公開するトラブル報告のスクリーンショットに載せないでください。更新後はクライアントとコアのバージョン、待ち受けポート、自動起動項目を再確認します。
- クライアントを終了し、元のプロセスとコアが停止したことを確認してから、アーキテクチャに合った新しいパッケージをインストールします。
- まず手動で起動し、プロキシを明示したリクエストが一度成功することを確認します。その後、ログアウトしてログイン時の自動起動を検証してください。
- 新しいバージョンで問題が起きた場合は、具体的なエラーを記録し、システムランタイムの要件変更が原因か確認します。ユーザー設定をすべて削除するのは避けてください。
- 以前のバージョンに戻す場合は、パッケージマネージャーがサポートする方法を使います。古いバージョンとの設定互換性は個別に確認し、双方向に互換性があると決めつけないでください。
- 手動で設定したログイン時起動を解除するには、ユーザーのautostartディレクトリにある該当のdesktopファイルを削除します。システムパッケージをアンインストールしても、ユーザーがコピーしたファイルは削除されない場合があります。
導入完了の判断基準は、ウィンドウが開くことだけではありません。一般ユーザーで起動できる、プロキシリクエストが通る、ログイン後に1回だけ起動する、終了後にアプリのネットワーク状態が元に戻る、の4点を確認してください。順に検証すれば、問題がインストール、コア、プロキシ設定、デスクトップセッションのどこにあるかを特定しやすくなります。