v2rayN Linux版のインストール:deb/rpmパッケージと自動起動の設定

Debian/UbuntuとFedora/openSUSE向けに、v2rayNのdeb/rpmパッケージ導入、デスクトップ起動項目、自動起動の設定を解説。GNOME・KDEでのシステムプロキシの適用方法も紹介します。

この記事の概要

この記事は、Linuxデスクトップ環境と利用可能なサブスクリプションを用意している方向けです。まずCPUアーキテクチャを確認し、ディストリビューションのパッケージ管理ツールでdebまたはrpmをインストールします。次にローカルプロキシの待ち受けとデスクトップのプロキシ設定を確認し、最後にログイン後の自動起動を設定します。GUIクライアント、プロキシコア、デスクトップセッションを区別し、「ウィンドウが開いた」だけで「すべてのアプリがプロキシ経由になった」と判断しないよう解説します。

インストール前の確認:ディストリビューション、アーキテクチャ、デスクトップセッション

v2rayNはデスクトップ向けの設定管理アプリで、実際の接続処理は呼び出されたプロキシコアが行います。この記事で扱うのはGUIクライアントのため、利用可能なデスクトップセッションが必要です。ターミナルのみのサーバーには、この手順は適しません。まず通常ユーザーのターミナルで次のコマンドを実行し、ディストリビューション、CPUアーキテクチャ、デスクトップ環境を確認してください。

cat /etc/os-release
uname -m
printf 'デスクトップ環境:%s\nセッション種別:%s\n' "$XDG_CURRENT_DESKTOP" "$XDG_SESSION_TYPE"

Debian / Ubuntu

パッケージ形式
deb
インストールツール
apt
x86_64の場合
x64 / amd64用パッケージ
aarch64の場合
arm64用パッケージ

拡張子だけで互換性を判断せず、ディストリビューションのバージョンとパッケージに記載された依存関係を確認してください。

Fedora / openSUSE

パッケージ形式
rpm
Fedora用ツール
dnf
openSUSE用ツール
zypper
アーキテクチャの確認
x86_64またはaarch64

rpm系のOSでも依存パッケージ名が異なる場合があります。インストール前にパッケージ管理ツールの処理概要を確認してください。

クライアントのダウンロードページでLinuxと対応アーキテクチャを選択してください。Windows用ファイルをLinuxに使ったり、拡張子を変更してパッケージ形式を変換したりしないでください。以下のコマンドはBashで実行します。対話形式で実際のファイルパスを入力するため、特定のバージョン番号やファイル名には依存しません。

debのインストール:依存関係の処理はaptに任せる

DebianまたはUbuntuでは、ローカルのdebパッケージをaptでインストールする方法がおすすめです。設定済みのリポジトリから依存関係を解決できます。低レベルのインストールコマンドだけを使うと、展開は完了しても依存関係が未解決のままになることがあります。パスを入力するときは絶対パスをそのまま貼り付け、余分な引用符は付けないでください。変数は後続のコマンドで適切に引用しています。

read -r -p 'debファイルの絶対パスを入力してください:' package_file
dpkg-deb -f "$package_file" Package Version Architecture
sudo apt install "$package_file"
  1. パッケージ情報の確認

    表示されたパッケージ名、バージョン、アーキテクチャを確認し、今回ダウンロードしたファイルと一致していることを確かめてください。アーキテクチャが違う場合はパッケージを選び直し、アーキテクチャチェックを強制的に無効化するオプションは使わないでください。

  2. インストール結果の確認

    aptが正常に終了したことを確認してください。依存関係を利用できないというエラーが出た場合は、まずディストリビューションのリポジトリとサポート対象のバージョンを確認します。他のディストリビューションのシステムライブラリを混在させないでください。

  3. アプリメニューから起動

    デスクトップのアプリメニューを開いてv2rayNを検索し、現在ログイン中のユーザーで起動してください。設定ファイルの所有者が管理者に変わるおそれがあるため、sudoでGUIを起動しないでください。

  4. インポートして動作確認

    メイン画面で「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、信頼できる配布元のリンクを追加して更新します。ビルドによってボタンの表示名が多少異なる場合があるため、画面上の表示を確認してください。

インストールに成功したのにメニューに項目がない場合は、パッケージにデスクトップファイルが含まれているか確認してください。次のコマンドは、package_file変数が設定された同じターミナルで実行します。新しいターミナルを開いた場合は、先にファイルパスを読み込み直してください。

package_name=$(dpkg-deb -f "$package_file" Package)
dpkg-query -W "$package_name"
dpkg-query -L "$package_name" | grep -E '/applications/[^/]+\.desktop$'

rpmのインストール:FedoraとopenSUSEでコマンドを使い分ける

rpmはパッケージ形式であり、同じ形式を使うディストリビューションの実行環境が同じとは限りません。まずパッケージ情報を確認し、ディストリビューションに応じたコマンドを一つ選んで実行してください。dnfとzypperを両方実行したり、依存関係チェックを省略してランタイム不足を隠したりしないでください。

read -r -p 'rpmファイルの絶対パスを入力してください:' package_file
rpm -qp --queryformat '%{NAME}\n%{VERSION}-%{RELEASE}\n%{ARCH}\n' "$package_file"

# Fedora:次のコマンドを実行
sudo dnf install "$package_file"

# openSUSE:こちらのコマンドを実行
sudo zypper install "$package_file"

インストール後は、パッケージに含まれるアプリの起動項目を確認できます。ここで確認するのはインストール済みファイルの一覧です。インストール処理に失敗した場合は、先に問題を解決してください。自動起動の設定はその後に行います。

package_name=$(rpm -qp --queryformat '%{NAME}' "$package_file")
rpm -q "$package_name"
rpm -ql "$package_name" | grep -E '/applications/[^/]+\.desktop$'

初回接続:待ち受けを確認してからシステムプロキシを設定

サブスクリプションのインポート、コアの起動、アプリによるプロキシ利用は、それぞれ別の段階です。利用権限のあるサーバーを選び、ログでコアの起動結果を確認してください。「設定」→「パラメーター設定」を開き、ローカルの待ち受けアドレス、ポート、プロトコルを確認します。設定項目の場所はクライアントのバージョンによって変わるため、実際の設定内容と待ち受け状態を基準にしてください。

127.0.0.1
この記事の例:ローカルループバックアドレス
10808
この記事の例:SOCKSポート
10809
この記事の例:HTTPポート

以下のポート番号は設定例であり、すべてのバージョンの初期値を示すものではありません。単一の混合ポートを使う設定もあれば、HTTPとSOCKSを別々に待ち受ける設定もあります。実際に該当ポートで待ち受けていることを確認してから設定してください。ローカルのデスクトップで使う場合は通常、ループバックアドレスのままにし、すべてのネットワークインターフェースで待ち受ける必要はありません。

# 実際のポートに合わせて条件を調整
ss -lntp | grep -E ':(10808|10809)[[:space:]]'

# 対応するプロキシプロトコルとポートを確認してからテスト
curl --proxy http://127.0.0.1:10809 --head --max-time 15 https://example.com/
curl --proxy socks5h://127.0.0.1:10808 --head --max-time 15 https://example.com/

socks5hは、接続先ドメインの名前解決をプロキシ側で行う指定です。HTTPレスポンスが返れば今回のリクエストが接続先に到達したと判断できますが、すべてのルーティング規則や名前解決経路が正しいとは限りません。接続拒否と表示された場合は、待ち受け状態とコアのログを優先して確認してください。ローカル接続は確立するもののタイムアウトする場合は、サーバー、通信パラメーター、ネットワークを調べます。

GNOMEとKDE:システムプロキシが適用される範囲

デスクトップのシステムプロキシは、アプリが参照する設定であり、すべての通信を透過的にプロキシへ転送する機能ではありません。ブラウザー、デスクトップコンポーネント、ターミナルのプログラムでは、プロキシ設定の読み取り方が異なる場合があります。まずプロキシに対応していることが明確なアプリでテストし、その後ほかのアプリにも適用してください。システム設定、ブラウザー設定、環境変数を同時に変更すると、原因の切り分けが難しくなります。

デスクトップのシステムプロキシ

おすすめ

初めて設定する場合は手動プロキシから始めましょう。プロキシアドレスとローカルの待ち受け先が対応するため、問題が起きた際にクライアント、デスクトップ設定、アプリのどこに原因があるか切り分けやすくなります。

用途:通常のデスクトップ閲覧、段階的なトラブルシューティング

アプリごとに設定

ブラウザーやコマンドラインツールでHTTPまたはSOCKSのアドレスを明示的に指定します。そのアプリだけに適用されるため、デスクトップ設定を参照しないソフトに適しています。

用途:開発ツール、ターミナルからのリクエスト、分離テスト

TUNによる通信の転送

権限、仮想ネットワークインターフェース、ルーティング、DNSの追加設定が必要です。ログイン後の自動起動に必要な機能ではなく、ローカルポートが待ち受けていない問題を解決する方法でもありません。

用途:ルーティングへの影響を理解し、通信の転送が必要なユーザー

GNOMEで手動プロキシを設定

「設定」→「ネットワーク」→「ネットワークプロキシ」を開き、「手動」を選択します。HTTPとHTTPSにはHTTP CONNECTに対応するローカルHTTPプロキシを、SOCKSにはSOCKSの待ち受けポートを入力してください。HTTPSの項目は、ローカルプロキシの接続にTLSが必須という意味ではありません。設定場所はディストリビューションのカスタマイズによって異なる場合があります。次のコマンドで設定することもできます。

# 元の値を控えて復元できるようにする。現在のデスクトップユーザーのターミナルで実行
gsettings get org.gnome.system.proxy mode
gsettings list-recursively org.gnome.system.proxy.http
gsettings list-recursively org.gnome.system.proxy.https
gsettings list-recursively org.gnome.system.proxy.socks

# 例のポートが実際の待ち受けポートと一致する場合のみ実行
gsettings set org.gnome.system.proxy.http host '127.0.0.1'
gsettings set org.gnome.system.proxy.http port 10809
gsettings set org.gnome.system.proxy.https host '127.0.0.1'
gsettings set org.gnome.system.proxy.https port 10809
gsettings set org.gnome.system.proxy.socks host '127.0.0.1'
gsettings set org.gnome.system.proxy.socks port 10808
gsettings set org.gnome.system.proxy mode 'manual'

# 手動のシステムプロキシを使わない場合
gsettings set org.gnome.system.proxy mode 'none'

KDE Plasmaで手動プロキシを設定

「システム設定」を開き、「プロキシ」を検索して設定画面へ進み、「手動で指定したプロキシ設定を使用」を選択します。実際のHTTP、HTTPS、SOCKSの接続先を入力して適用してください。KDEの設定を参照するのは、主にデスクトップのプロキシ機構に対応したソフトです。ブラウザー独自の設定がある場合もあり、ターミナルツールには個別の設定が必要です。クライアントを終了する前にプロキシを無効にし、閉じたローカルポートへアプリが接続し続けないようにしてください。

自動起動の設定:システムサービスではなく、デスクトップへのログイン後に起動

デスクトップクライアントの「起動時に自動起動」は、通常、グラフィカルデスクトップへのユーザーログイン後に起動することを指します。ログイン前からプロキシを提供する設定ではありません。デスクトップセッションのXDG Autostart機構を使い、インストールパッケージが用意した起動項目を利用するのがおすすめです。実行ファイルの正しいパスと引数を維持し、推測でExec行を作らないでください。

  1. 重複する起動設定を無効にする

    クライアントの「設定」→「パラメーター設定」で自動起動の項目があるか確認してください。以下の手動設定を使う場合は、二重起動を防ぐため先にその項目を無効にします。

  2. デスクトップファイルの場所を確認

    前述のパッケージファイル一覧のコマンドを使い、実際の.desktopファイルのパスを探します。まずアプリメニューから正常に起動できることを確認してから、そのパスを下のコピーコマンドに入力してください。

  3. ユーザー用の起動項目をコピー

    デスクトップファイルを現在のユーザーのautostartディレクトリにコピーします。システム全体の起動項目は変更しません。この操作にsudoは不要です。

  4. 再ログインして確認

    クライアントを終了してデスクトップからログアウトし、再ログイン後にウィンドウまたはバックグラウンドプロセス、ポートの待ち受け、システムプロキシを確認します。トレイアイコンだけでコアの動作を判断しないでください。

read -r -p 'インストール済み.desktopファイルの絶対パスを入力してください:' desktop_file
grep -E '^(Type|Name|Exec|TryExec|Hidden|OnlyShowIn|NotShowIn)=' "$desktop_file"

autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
mkdir -p "$autostart_dir"
cp -- "$desktop_file" "$autostart_dir/v2rayn-login.desktop"

コピーの前後にType=ApplicationとExec=を確認してください。Hidden=trueがある場合や、OnlyShowInまたはNotShowInによって現在のデスクトップが対象外になっている場合は、テキストエディターでユーザーディレクトリ内のコピーを修正します。システム側の元ファイルは変更しないでください。GNOMEではトレイアイコンが表示されない場合もあるため、プロセス、ログ、待ち受け状態を確認してください。

KDEでは「システム設定」で「自動起動」を検索し、「アプリケーションを追加」からv2rayNを選ぶ方法もあります。手動コピーとどちらか一方を使えば十分です。GUIアプリをシステムサービスに直接登録しないでください。サービスには通常、完全なデスクトップセッション環境がなく、ウィンドウやユーザー設定の保存先に問題が生じることがあります。

# この記事の手順で作成したログイン時の自動起動項目を削除
autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
rm -f -- "$autostart_dir/v2rayn-login.desktop"

よくある問題:アップデート、起動失敗、プロキシ設定の残存

インストール後、アイコンをクリックしてもウィンドウが開かない

パッケージ内のファイル一覧からデスクトップファイルを探し、Execが指すプログラムを確認します。通常ユーザーのターミナルで実行し、出力を記録してください。まず不足しているランタイム、権限、グラフィカルセッションのエラーに対処します。sudoで起動したことがある場合は、実際の設定ディレクトリを特定してから所有者を確認してください。ホームディレクトリ全体に再帰的な権限変更を行わないでください。

ログイン後にクライアントは起動するのに、Webページが開けない

まずssで設定したポートを確認し、curlでプロキシを明示したテストを実行します。コアが起動し、サブスクリプションが有効で、サーバーが選択されていることを確認してから、GNOMEまたはKDEのプロキシ設定を調べてください。ウィンドウが開いても、コアが正常に接続したとは限りません。

クライアントを終了すると、かえってネットワークに接続できない

デスクトップで127.0.0.1の手動プロキシがまだ有効になっていないか確認してください。GNOMEではプロキシモードをnoneに変更し、KDEではプロキシ設定で「プロキシなし」を選択します。アプリごとの設定やターミナルの環境変数も個別に元に戻してください。環境変数を変更しても、起動中のプロセスには自動反映されません。

パッケージ更新後に自動起動項目が動かなくなった

apt、dnf、zypperで同じパッケージ名の新しいバージョンをインストールした後、アプリのデスクトップファイルを再検索し、Execのパスが変わっていないか確認してください。ユーザーのautostartにあるコピーは、システム側の項目を更新しても自動では追従しません。新しい項目から正常に起動することを確認してから、古いコピーを置き換えてください。

導入後の確認は決まった順番で進めます。パッケージ管理ツールでインストール完了を確認し、アプリメニューから起動できること、サブスクリプションとコアのログが正常であること、ローカルプロキシのテストが成功すること、対象アプリがプロキシを使うことを確認します。最後にログアウトして自動起動を検証してください。アップグレード前に、クライアントのバックアップ機能または実際のデータディレクトリを使って設定を保存します。サブスクリプションURLや設定にアクセス情報が含まれる場合があるため、トラブルシューティングのスクリーンショットで公開しないでください。

クライアントをダウンロード