Linuxデスクトップにv2rayNを導入する場合は、まずディストリビューションのパッケージ管理ツールでインストールし、一般ユーザーでシステムプロキシの動作を確認してから、ログイン時の自動起動とTUNを設定します。Debian、Ubuntu、Fedoraのデスクトップ環境を使う方向けに、アーキテクチャの確認、依存関係の修復、自動起動用ファイルのコピー、権限の調査に使うコマンドを紹介します。ここでいう「自動起動」はデスクトップへのログイン後にクライアントを起動する設定であり、ログイン前に動作するシステムサービスではありません。
1. インストール前にディストリビューション・アーキテクチャ・パッケージ形式を確認
まずシステム環境を確認し、適切なパッケージを選びます。DebianとUbuntuでは通常deb、Fedoraではrpmを使います。拡張子を書き換えても、異なる形式のパッケージを相互に使うことはできません。v2rayNはクライアントの管理画面で、実際のプロキシ接続はコアが処理します。ウィンドウが開いても、コアやルーティング、プロキシの適用がすべて正常とは限りません。
cat /etc/os-release
uname -m
getconf GNU_LIBC_VERSION
uname -mの出力がx86_64ならx64パッケージ、aarch64ならARM64パッケージを選びます。どちらのプロセッサーも64ビットの場合があるため、「64ビットOS」という情報だけでは判断できません。3つ目のコマンドはglibcのバージョン確認に使います。GLIBC_… not foundと表示された場合は、システムのCライブラリを入れ替えるのではなく、パッケージのシステム要件を確認してください。
Debian / Ubuntu
- パッケージ形式
- deb
- インストールツール
- apt
- パッケージ内のアーキテクチャ
- amd64 または arm64
- 確認する項目
dpkg-deb -f
aptでローカルパッケージとソフトウェアソースの依存関係をまとめて処理します。
Fedora
- パッケージ形式
- rpm
- インストールツール
- dnf
- パッケージ内のアーキテクチャ
- x86_64 または aarch64
- 確認する項目
rpm -qpi
dnfで依存関係を解決します。アーキテクチャと依存関係の確認を省略しないでください。
ダウンロードページで、Linux用の適切なアーキテクチャを選んでください。以下のコマンドはパッケージを保存したディレクトリで実行します。そのディレクトリには今回インストールするdebまたはrpmファイルを1つだけ置いてください。他のパッケージが混在するダウンロードフォルダーで、ワイルドカードを使ったインストールを実行しないでください。
2. aptまたはdnfでインストールし、依存関係を解決
GUIのソフトウェアインストーラーでもターミナルでも、最終的にはシステムのパッケージ管理機能を使います。ターミナルならエラーの詳細を確認できます。インストール前にパッケージ情報の名前、バージョン、アーキテクチャを確認し、選択した環境と一致していることを確かめてください。
Debian / Ubuntu:aptでローカルのdebをインストール
# 今回インストールするdebだけがあるディレクトリで実行
dpkg-deb -f ./*.deb Package Version Architecture
sudo apt update
sudo apt install ./*.deb
./を省略すると、ローカルファイルではなくソフトウェアソースから同名のパッケージを探すことになります。以前にdpkg -iでインストールし、依存関係が未設定のまま残っている場合は、次の修復コマンドを実行してください。aptが提示する処理内容を確認し、対象パッケージを削除しようとしている場合は、現在のソフトウェアソースで依存関係を解決できない可能性があるため、すぐに承認しないでください。
sudo apt --fix-broken install
sudo dpkg --configure -a
Fedora:dnfでローカルのrpmをインストール
# 今回インストールするrpmだけがあるディレクトリで実行
rpm -qpi ./*.rpm
sudo dnf install ./*.rpm
依存関係を無視してインストールを「成功」させようとしないでください。共有ライブラリの不足、システムのバージョンが古いこと、パッケージのアーキテクチャ違いは、それぞれ別の問題です。パッケージ管理ツールで補えるのはソフトウェアソースにある依存関係までです。新しい実行環境向けにビルドされたプログラムを、古いシステムに対応させることはできません。
3. 初回起動:コア、システムプロキシの順に動作確認
インストール後はデスクトップのアプリケーションメニューからv2rayNを起動し、まず一般ユーザーで動作を確認します。sudoでGUI全体を起動しないでください。管理者権限の設定ファイルが作られたり、デスクトップセッション、プロキシ環境、権限の問題が混在したりするおそれがあります。画面のメニュー名はバージョンによって多少異なるため、以下では一般的な日本語UIにおける操作の流れを説明します。
-
クライアントを起動
アプリケーションメニューでv2rayNを検索します。ウィンドウが表示されない場合は、インストール時に作成されたデスクトップランチャーの
Exec=で起動プログラムを確認し、ターミナルから実行してエラー出力を保存してください。 -
サブスクリプションを追加
「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、グループを追加して、信頼できる提供元のサブスクリプションURLを入力します。保存後、「サブスクリプショングループ」に戻り、該当するサブスクリプションを更新してください。
-
接続を開始
サーバー一覧からサーバーを選んで有効にし、ログにコアの起動エラーがないか確認します。VMessやVLESSなどのプロトコル設定はサーバー側と一致させてください。エラーを消すために、伝送方式やセキュリティ設定をむやみに変更しないでください。
-
ポートを確認
「設定」→「パラメーター設定」を開き、ローカルの待ち受けアドレスとポート、使用するプロキシプロトコルを確認します。実際の設定を基準にし、まずはアクセスをローカルホストのみに制限してください。
-
プロキシを有効化
メイン画面の「システムプロキシ」で「システムプロキシを自動設定」を選び、デスクトップ環境のネットワークプロキシ設定を確認します。まずはシステムプロキシに従うアプリでテストし、TUNは同時に有効にしないでください。
以下では診断例として10808を使います。これは例示用のポートで、常にデフォルト値とは限りません。まずこのポートがSOCKSまたはSOCKS互換の混合リスナーとして設定されていることを確認してから、2つ目のコマンドを実行してください。socks5hでは接続先のドメイン名がプロキシ側で名前解決されます。デスクトップでプロキシを設定していても、ターミナルのcurlが自動的にその設定を使うとは限りません。
ss -lntp | grep ':10808'
curl --proxy socks5h://127.0.0.1:10808 --connect-timeout 10 --max-time 30 -I https://example.com/
このコマンド群では、「ローカルでポートを待ち受けているか」と「指定したプロキシ経由でリクエストを送信できるか」を個別に確認します。HTTPレスポンスが返っても、今回のリクエストが成功したことを示すだけで、すべてのアプリがプロキシを使っているとは限りません。プロキシを明示したリクエストは成功するのにブラウザーで失敗する場合は、コアをすぐ再インストールするのではなく、ブラウザーやデスクトップのプロキシ設定、拡張機能を確認してください。
4. GNOMEとKDEで異なるシステムプロキシの設定
Linuxのシステムプロキシは、すべてのプロセスに一律で適用されるスイッチではありません。デスクトップ環境に保存されたプロキシ設定を使うかどうかはアプリによって異なります。ターミナルのプログラムはhttp_proxyやhttps_proxyなどの環境変数を参照することもあります。GNOMEの設定が有効でも、独自の設定方式を使うアプリが同じ設定に従うとは限りません。
使用中のデスクトップ環境でプロキシを確認
GNOMEデスクトップ
- 「設定」→「ネットワーク」→「ネットワークプロキシ」を開き、有効状態とローカルポートを確認します。
gsettings get org.gnome.system.proxy modeでプロキシモードを確認します。gsettings list-recursively org.gnome.system.proxyで関連する設定を確認します。
KDE Plasmaデスクトップ
- 「システム設定」→「ネットワーク」→「プロキシ」を開き、現在選択されている方式を確認します。
- 使用中のv2rayNがデスクトップ設定を同期できない場合は、リスナーの種類に応じてアドレスとポートを手動で入力してください。
- ブラウザーに独自のネットワーク設定がある場合は、別の固定設定ではなくシステムプロキシを使うよう設定されているかも確認します。
どちらのデスクトップ環境でも、まず個々のアプリから実際にリクエストを送って確認してください。設定画面で有効と表示されるだけでは、通信がプロキシ経由である証拠にはなりません。
手動設定する場合、アドレスには通常127.0.0.1を指定し、ポートにはv2rayNで実際に設定されている待ち受けポートを入力します。SOCKS専用ポートをHTTPプロキシ欄に指定することはできません。デスクトップのプロキシを手動で設定した場合は、クライアントを終了する前に手動で設定を戻してください。戻さないと、待ち受けが停止したローカルポートにアプリが接続し続けます。
5. システムサービスではなくデスクトップへのログイン時に自動起動
デスクトップクライアントの利用にはグラフィカルセッションが必要です。通常の利用では、管理者権限の起動サービスにするのではなく、ログイン後に起動する設定が適しています。ログイン後なら現在のユーザーのデスクトッププロキシ、通知、設定ディレクトリを利用できます。システムサービスとして起動すると、デスクトップの準備前に実行されたり、別ユーザーのデータディレクトリが使われたりするおそれがあります。
デスクトップへのログイン時に自動起動
推奨ディストリビューションのパッケージが用意するdesktopランチャーを使い、現在のユーザーのログイン後に起動します。プログラムのパスと起動オプションはそのまま使い、インストール先を推測して指定しないでください。
適した用途:GNOMEやKDEなどのデスクトップ環境での日常利用。
システムサービスとして起動
ユーザーのログイン前に動作する、別の導入方式です。GUIクライアントの実行コマンドをそのままシステムサービスに設定しても、デスクトッププロキシや権限が自動的に正しく設定されるわけではありません。
適した用途:独立したバックグラウンドサービスが必要で、コアの設定を個別に管理できる環境。この記事のデスクトップ向けインストール方法では扱いません。
KDE Plasmaでは「システム設定」→「自動起動」→「アプリケーションを追加」からv2rayNを選べます。GNOMEではデスクトップ環境の「自動起動するアプリケーション」ツールを使います。現在のディストリビューションにそのツールがない場合は、インストール済みのdesktopファイルをXDG自動起動ディレクトリにコピーしてください。以下のコマンドは一般ユーザーのBashターミナルで実行します。
launcher=$(find /usr/share/applications /usr/local/share/applications \
-maxdepth 1 -type f -iname '*v2rayn*.desktop' -print -quit 2>/dev/null)
if [ -n "$launcher" ]; then
autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
mkdir -p "$autostart_dir"
cp -- "$launcher" "$autostart_dir/v2rayn.desktop"
grep -E '^(Name|Exec|TryExec|Hidden|OnlyShowIn|NotShowIn|X-GNOME-Autostart-enabled)=' \
"$autostart_dir/v2rayn.desktop"
else
printf '%s\n' 'システムのdesktopランチャーが見つかりません。まずインストールパッケージのファイル一覧を確認してください。'
fi
出力されたExec=が、実在するプログラムを指しているか確認します。ファイルにHidden=trueや自動起動を無効にする項目、デスクトップ環境を限定する項目が含まれている場合は、各項目の意味を確認してから変更してください。ファイルが見つからない場合は、実行パスを推測で作らないでください。debはパッケージ管理ツールでインストール済みファイルを確認でき、rpmはrpm -qlでパッケージ内のファイル一覧を確認できます。
- 動作確認:クライアントを完全に終了し、ログアウトしてから再ログインします。起動するインスタンスが1つだけか、ログに問題がないか、ローカルポートが待ち受けているかを確認してください。
- 重複起動に注意:クライアント内蔵の自動起動設定、デスクトップの自動起動ツール、手動でのファイルコピーのうち、使う方法は1つだけにしてください。
- 自動起動を解除:コピーした
${XDG_CONFIG_HOME:-$HOME/.config}/autostart/v2rayn.desktopを削除するか、デスクトップの自動起動ツールから該当項目を削除します。 - アップグレード後:インストール先が変わった場合は、新しいランチャーを再度コピーしてください。ユーザーディレクトリにあるコピーは、システム側のファイルを更新しても自動では更新されません。
6. TUNの権限:デバイス・許可・ルーティングを確認
TUNは仮想ネットワークデバイスを使って、ルーティング条件に合う通信を処理します。システムプロキシに従わないアプリにも有効ですが、接続エラー全般を解決する機能ではありません。まず通常のプロキシ接続を確認してからTUNを有効にすれば、サーバーへの接続問題とローカルで通信を取り込む際の問題を切り分けられます。LinuxではTUNデバイスのほか、ネットワーク管理権限、DNS、ルート変更も関係します。
ls -l /dev/net/tun
ip -brief link
ip route show
ip rule show
/dev/net/tunが存在しない場合は、まずシステムがTUNをサポートし、モジュールが読み込まれているか確認します。管理者はシステムの状況に応じてsudo modprobe tunを実行できます。コンテナや制限された環境では、ホスト側でデバイスへのアクセスを許可する必要もあります。ファイル権限を変更するだけでは解決しません。デバイスが存在していても、一般ユーザーにインターフェースの作成やルート変更の権限があるとは限りません。
operation not permittedが表示される場合:仮想ネットワークインターフェースの作成、ルート変更、現在の権限設定手順を確認します。- デバイスが存在しない場合:サブスクリプションを変更する前に、TUNデバイスとシステム環境を確認してください。
- ドメイン名でのアクセスだけ失敗する場合:ログを見てDNSの処理を確認します。最初からシステムの名前解決設定を上書きしないでください。
- 他のトンネルとの併用で問題が起きる場合:有効化前後のルートとポリシールールを比較し、通信を取り込む方式を1つだけ有効にして再テストします。
TUNを無効にした後、ルートとネットワークが元に戻っているか確認してください。「ネットワークを復旧する」ためにポリシールールを一括削除すると、デスクトップで使っている既存のネットワーク接続まで損なうおそれがあります。無人でのログイン時に自動起動する場合は、権限が継続して有効かを別途確認してください。手動で権限を承認できても、ログイン時に承認画面を省略できるとは限りません。
7. インストールと自動起動に関するよくある質問
debのインストール後、アイコンをクリックしてもウィンドウが表示されない場合は?
まずdesktopファイルのExec=で起動プログラムを確認し、ターミナルから実行してください。ライブラリ不足、実行環境のバージョン不一致、終了していない既存プロセスは、それぞれ別に対処します。以前に管理者権限で起動したことがある場合も、ホームディレクトリ全体の所有者を再帰的に変更しないでください。まず現在のバージョンが実際に使っている設定ディレクトリを特定します。
Fedoraで依存関係の不足が表示されます。強制的にインストールできますか?
まずsudo dnf install ./*.rpmを実行し、dnfが不足している依存パッケージを表示するか確認します。アーキテクチャ、ソフトウェアソース、ディストリビューションの要件を確認してください。ソースに必要なバージョンがない場合は、システムに合ったパッケージを使うか、システムをアップグレードします。依存関係の確認を省略して問題を隠さないでください。
ログイン後にクライアントが起動しても、ウェブページが開かないのはなぜですか?
まずログでコアの起動結果を確認し、ss -lntpで待ち受け状態を調べます。次にシステムプロキシが正しいポートに設定されているか確認してください。ログイン時にネットワークの準備ができていない場合は、接続可能になってから再試行します。ウィンドウが表示されても、コアの起動に成功したとは限りません。
v2rayNの終了後、ブラウザーもインターネットに接続できなくなった場合は?
デスクトップのネットワークプロキシ設定を開き、停止済みの127.0.0.1のポートを参照していないか確認します。必要ならプロキシを使わない設定に戻してください。ターミナルでも接続に問題がある場合は、env | grep -i proxyを実行して現在の環境変数を確認します。シェル設定ファイルに記載したプロキシ変数は別途削除してください。
最後に次の順で動作を確認します。一般ユーザーでクライアントを起動できること、コアのログに問題がないこと、プロキシを指定したリクエストが成功すること、デスクトップアプリが想定どおりプロキシを使うこと、再ログイン後もクライアントが1つだけ起動することを確認してから、最後にTUNをテストしてください。ディストリビューションとクライアントのバージョン、パッケージのアーキテクチャ、重要なエラー行を記録すれば、原因究明に役立ちます。記録を共有する際は、サブスクリプションURLや認証情報などの個人情報を隠してください。