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

Debian/Ubuntu と Fedora での deb・rpm パッケージの導入方法、デスクトップへのログイン時に自動起動する設定、権限やシステムプロキシの確認方法を解説します。

この記事の概要

Linuxのデスクトップ環境を使う方向けに、ディストリビューションとCPUアーキテクチャ、インストールパッケージを確認してから、システムのパッケージ管理ツールでv2rayNをインストールします。ローカルプロキシの接続を確認し、現在のユーザーでデスクトップへのログイン時に自動起動する設定まで説明します。コマンドは実際にダウンロードしたファイルを読み取るため、バージョン番号やパッケージ名を決め打ちしません。GUI環境のないサーバーでは、デスクトップ向け自動起動の手順は使えません。

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

Linuxではv2rayNのAvaloniaデスクトップ版を選びます。WPF版はWindows向けです。debとrpmはディストリビューションごとのパッケージ形式であり、プロキシプロトコルやコアの種類を示すものではありません。まずターミナルで次のコマンドを実行して、システム情報を確認しましょう。デスクトップ環境によって、システムプロキシや自動起動の設定方法も異なります。

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

ディストリビューションに合ったパッケージ

おすすめ

DebianとUbuntuでは利用できるdebパッケージ、Fedoraではrpmパッケージを選びます。aptまたはdnfでインストール履歴と依存関係を管理でき、後からパッケージ名を指定してアンインストールできます。

おすすめの用途:システムにインストール履歴を残して、普段使いのデスクトップに導入する場合。

Linux用アーカイブ

対象バージョンにパッケージがなく、アーカイブのみ提供されている場合は、そのバージョンの案内に従って展開・実行してください。拡張子をdebやrpmに変更してはいけません。デスクトップの起動項目と実行ファイルの場所は、自分で確認する必要があります。

おすすめの用途:ディストリビューションに合うパッケージがない場合や、特定のバージョンを個別に試す場合。

uname -m の結果が x86_64 なら通常はx64、aarch64 なら通常はarm64です。Debianのパッケージではアーキテクチャが amd64 と表記されることがあります。名称は異なりますが、同じ種類のCPUアーキテクチャに対応します。ダウンロードページで現在のLinux向けファイルを確認してください。以下の手順は、対応する形式のパッケージを入手済みの場合に限ります。すべてのバージョンで両方の形式が提供されるとは限りません。

Debian・Ubuntu:aptでdebパッケージをインストール

今回使うパッケージを専用のディレクトリに置き、そのディレクトリでターミナルを開くのがおすすめです。まず現在のディレクトリにあるdebファイルを一覧表示し、続けて実際のファイルパスを入力します。ターミナルにファイルをドラッグして入力する方法も使えます。変数を使えばファイル名に空白が含まれていても扱えます。過去のバージョンを複数選択しないでください。

find "$PWD" -maxdepth 1 -type f -name '*.deb' -print
read -r -p 'debファイルのフルパスを入力:' pkg
if [ -f "$pkg" ]; then
  dpkg-deb -f "$pkg" Package Version Architecture
  dpkg --print-architecture
else
  printf 'ファイルが見つかりません。選び直してください。\n'
fi

パッケージのアーキテクチャがシステムに合っていることを確認してからインストールしてください。apt install はローカルパッケージが宣言する依存関係も処理するため、単に展開するより一般的なデスクトップ利用に適しています。初回のインストールには管理者権限が必要ですが、クライアントの通常利用で管理者として実行する必要はありません。

if [ -f "$pkg" ]; then
  pkg="$(realpath "$pkg")"
  sudo apt update
  sudo apt install "$pkg"
fi

Fedora:dnfでrpmパッケージをインストール

Fedoraではdnfを使ってローカルのrpmパッケージをインストールします。デスクトップアプリ名を正確なパッケージ管理用の名前と取り違えないよう、インストール前にパッケージ名、バージョン、アーキテクチャを確認しましょう。以下のコマンドは実際のファイルを読み取ります。パッケージ名はインストーラーのメタデータから取得し、説明内で決め打ちしません。

find "$PWD" -maxdepth 1 -type f -name '*.rpm' -print
read -r -p 'rpmファイルのフルパスを入力:' pkg
if [ -f "$pkg" ]; then
  pkg="$(realpath "$pkg")"
  rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' "$pkg"
  uname -m
  sudo dnf install "$pkg"
else
  printf 'ファイルが見つかりません。選び直してください。\n'
fi

インストール時と実行時の権限を分ける

インストール時
  • aptやdnfでシステムディレクトリに書き込むには、管理者権限が必要です。
  • パッケージが宣言する依存関係は、パッケージ管理ツールが処理します。
  • エラーが発生したら、ターミナルの出力を保存し、まず該当する依存関係やファイルの競合を調べてください。
実行時
  • 現在のユーザーのデスクトップアプリ一覧からv2rayNを起動します。
  • サブスクリプション、ノード、ルーティング設定は現在のユーザー環境で管理します。
  • TUNの権限は個別に設定し、デスクトップアプリ全体を管理者権限で常時実行しないでください。

一般的なインストールエラーを解決するために、システムのセキュリティ機能を無効にしないでください。パッケージのインストール、アプリの起動、プロキシ接続のどこで失敗しているかを切り分けましょう。

インストール後、rpm -ql "$(rpm -qp --queryformat '%{NAME}' "$pkg")" を実行すると、プログラムやデスクトップ起動項目の場所を確認できます。アプリ一覧にv2rayNが表示されても、起動直後に終了する場合は、デスクトップ起動項目に記録されたプログラムのパスをターミナルから実行し、不足しているライブラリやコアの起動エラーを確認してください。異なるアーキテクチャのパッケージを次々にインストールするのは避けましょう。

初回接続:サブスクリプション、待ち受けポート、システムプロキシ

インストールが完了しても、クライアントが起動できる状態になっただけで、接続先が使えるとは限りません。v2rayNでノードや設定を管理し、選択したコアが実際の接続を処理します。VMessとVLESSはプロトコル名です。サブスクリプションURLはノード一覧の取得に使うもので、ローカルのHTTPまたはSOCKS接続先とは別のアドレスです。

  1. サブスクリプションを追加

    「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、グループを追加して信頼できるサブスクリプションURLを入力します。バージョンによってボタンの位置が異なる場合があるため、現在の画面でグループ管理の項目を確認してください。

  2. ノード一覧を更新

    「サブスクリプショングループ」メニューから更新を実行します。初回接続がまだ確立していない場合は、プロキシを経由しない更新方法を選んでください。URLに直接接続できない場合は、先に利用可能な接続手段を用意する必要があります。何度もクリックしても解決しません。

  3. ノードを選択

    ノード一覧からノードを選び、使用するサーバーに設定します。プロトコルや通信パラメーターがサーバー側の要件に合っていることを確認し、ログでコアの起動結果を確認してください。

  4. ポートを確認

    「設定」→「パラメーター設定」を開き、ローカルの待ち受けアドレスとポートを確認します。この記事では混合プロキシの接続先として 127.0.0.1:10808 を例にします。画面に別のポートが表示されている場合は、以降のテストでも実際の値に置き換えてください。

  5. プロキシを設定

    まず明示的にプロキシを指定して接続テストを行い、その後、クライアントの「システムプロキシ」→「システムプロキシを自動設定」を試します。Linuxでは、設定が適用される範囲はデスクトップ環境やアプリが設定を参照するかどうかによって異なります。

10808
この記事で例にする混合待ち受けポート
127.0.0.1
このマシン内だけで使うループバックアドレス
15秒
以下のリクエストテストのタイムアウト

ここに記載した数値は設定例であり、性能測定の結果やすべてのバージョンの初期値ではありません。接続先がHTTPとSOCKSの両方に対応していることを確認してから、それぞれの方法でテストしてください。socks5h を使うと、curlが接続先のドメイン名をプロキシ側に渡します。ローカルでの名前解決とプロキシ接続のどちらに問題があるかを切り分けるのに役立ちます。

ss -ltnp 'sport = :10808'
curl --noproxy "" --proxy http://127.0.0.1:10808 \
  --max-time 15 --head https://example.com
curl --noproxy "" --proxy socks5h://127.0.0.1:10808 \
  --max-time 15 --head https://example.com

デスクトップへのログイン時に自動起動:既存のdesktopファイルを利用

ここでいう「自動起動」は通常、ユーザーがグラフィカルデスクトップにログインした後に起動することを指します。システム起動時にバックグラウンドサービスとして実行する設定ではなく、ログイン画面の段階でプロキシを提供するものでもありません。まず手動で起動して動作を確認してから自動起動項目を作成すれば、ログインのたびに同じ設定エラーが発生するのを防げます。

インストールパッケージに含まれるdesktopファイルを優先して使いましょう。通常は正しい Exec のパスと必要な引数が設定されており、実行ファイルの場所を推測するより確実です。以下では標準のアプリケーションディレクトリから候補を探します。複数のファイルが見つかった場合は、それぞれ確認し、今回のインストールに該当するものだけを選んでください。

find /usr/share/applications "$HOME/.local/share/applications" \
  -maxdepth 1 -type f -iname '*v2rayn*.desktop' -print 2>/dev/null

read -r -p '確認済みのdesktopファイルのフルパスを入力:' desktop_file
if [ -f "$desktop_file" ]; then
  grep -E '^(Type|Name|Exec|TryExec|Hidden|OnlyShowIn|NotShowIn)=' "$desktop_file"
fi

Type=Application が設定され、Exec がインストール済みプログラムを指していること、現在のデスクトップからの起動を妨げる制限がないことを確認してから、以下のコピーを実行します。コピー先は現在のユーザーのXDG自動起動ディレクトリなので、sudoは不要です。既存のファイルに Hidden=true がある場合は、無効化の理由を確認してください。そのままコピーしないでください。

if [ -f "$desktop_file" ]; then
  autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
  mkdir -p "$autostart_dir"
  cp -- "$desktop_file" "$autostart_dir/v2rayN.desktop"
fi

現在のユーザーの自動起動

ディレクトリ
$XDG_CONFIG_HOME/autostart。未設定の場合は ~/.config/autostart
起動するタイミング
XDG自動起動に対応したグラフィカルデスクトップへのログイン時
実行ユーザー
現在のデスクトップユーザー
起動項目の取得元
今回のインストールパッケージに含まれるdesktopファイル

この記事ではこの方法を使います。デスクトップで対話的に使うクライアントに適しています。

システム起動サービス

起動するタイミング
システム起動時、またはサービスマネージャーで指定したタイミング
グラフィカルセッション
起動時に利用できるとは限らない
設定対象
専用に設計されたバックグラウンドプロセスと権限設定が必要
この記事で扱う範囲
v2rayNのデスクトップウィンドウをシステムサービスとして設定しない

デスクトップアプリの起動コマンドをそのままシステムサービスに登録しても、ウィンドウが正常に表示されるとは限りません。

権限とシステムプロキシ:症状別の確認方法

ローカルプロキシ、デスクトップのシステムプロキシ、TUNはそれぞれ異なるレイヤーの機能です。一般的なアプリはHTTPまたはSOCKSでローカルポートに接続できます。デスクトップの設定は、その設定を参照するアプリにプロキシ情報を提供します。TUNは仮想ネットワークデバイスやルーティング、追加の権限が関係します。まずローカルプロキシを確認し、それから適用範囲を広げると、問題を切り分けやすくなります。

症状まず確認する項目対処方法
ローカルポートへの接続が拒否されるss -ltnp、待ち受けポート、コアのログコアが起動していること、ポートが競合していないこと、テスト先が画面の設定と一致していることを確認します。
curlでは成功するが、ブラウザーでは失敗するブラウザーのプロキシ設定とデスクトップのプロキシ設定ブラウザーがシステムプロキシを参照しているか確認するか、ローカルの接続先をブラウザーに明示的に設定します。
デスクトップアプリは接続できるが、ターミナルからはプロキシを利用できない現在のシェルの環境変数コマンドに応じてプロキシを設定してください。デスクトップのプロキシ設定がすべてのターミナルアプリに自動適用されるわけではありません。
TUNで権限不足のエラーが表示される現在のバージョンにおけるLinux版TUNの権限に関する説明バージョンごとの案内に従って必要なコンポーネントに権限を設定し、インストールディレクトリ全体の権限をむやみに再帰変更しないでください。
ログイン後に起動しないdesktopファイルのExecとログアップデート後にパスが変わっていないか、セッションが利用可能か、自動起動項目が重複していないかを確認します。

GNOMEデスクトップでは、「設定」→「ネットワーク」→「ネットワークプロキシ」を開いて手動プロキシを確認できます。HTTP/HTTPSプロキシにはHTTP対応のローカル接続先を、SOCKSにはSOCKS対応の接続先を指定します。通常、「HTTPSプロキシ」欄にもローカルのHTTPプロキシのホストとポートを入力します。ローカル接続先が別途TLSに対応している必要はありません。他のデスクトップ環境ではそれぞれの設定画面を使い、GNOME専用のコマンドをそのまま流用しないでください。

# 現在のターミナルと、そこから起動するプロセスにのみ適用
export http_proxy=http://127.0.0.1:10808
export https_proxy=http://127.0.0.1:10808
export all_proxy=socks5h://127.0.0.1:10808

# テスト後に今回の設定を解除
unset http_proxy https_proxy all_proxy
v2rayNを終了した後、一部のアプリでネットに接続できなくなるのはなぜですか?

アプリが、すでに待ち受けを停止したローカルポートを引き続き参照している可能性があります。終了前にシステムプロキシをオフにするか元の設定に戻し、ブラウザー独自のプロキシ設定やシェルの環境変数も確認してください。プロキシ設定は独立した状態として管理されるため、アプリの終了時にすべてのデスクトップ環境で自動的に元に戻るとは限りません。

ファイアウォールでポート10808を開放する必要がありますか?

このマシン内だけで使う場合は、接続先をループバックアドレスにバインドしてください。通常、このポートを外部に開放する必要はありません。すべてのネットワークインターフェースで待ち受けると、アクセスできる範囲が広がります。LAN内で共有する明確な理由があり、アクセス制御も設定している場合を除き、この設定は避けてください。

アップデート後、自動起動項目を作り直す必要がありますか?

インストール先とdesktopファイルの起動パラメータに変更がなければ、通常は作り直す必要はありません。クライアントが起動しなくなった場合は、新しいインストール先のdesktopファイルと自動起動用コピーを比べ、Exec、TryExecなどの項目を確認してください。ユーザーディレクトリ内のコピーは、システム側のアプリケーションエントリーが更新されても自動で同期されるとは限りません。

v2rayN をダウンロード