· プラットフォーム · 約10分

Linuxへのインストールと自動起動

Ubuntu、Debian、Fedoraなどにdebまたはrpmでv2rayNをインストール。依存関係や権限を確認し、デスクトップへのログイン時に自動起動する設定方法を解説します。

この記事の概要

この記事では、Linuxのデスクトップ環境でv2rayNを使う方向けに、ディストリビューションとCPUアーキテクチャに合ったパッケージの選び方、パッケージマネージャーでの依存関係の解決、一般ユーザーでの初回接続と自動起動の設定を説明します。「システムの起動」と「ユーザーのログイン」は別です。ここで設定するのは、グラフィカルデスクトップにログインした後にクライアントを起動する方法で、ログイン前に動くシステムサービスではありません。

ディストリビューションとアーキテクチャを確認

v2rayNは、ノードやサブスクリプション、コアプロセスを管理するデスクトップクライアントです。debとrpmはパッケージ形式であり、ノードのプロトコルを決めるものではありません。VMessやVLESSのノードを利用できるかは、選択したコア、通信パラメーター、サーバー側の設定にも左右されます。インストール前にPCの環境を確認し、プロトコルのエラーをパッケージ形式の変更で解決しようとしないでください。

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

Ubuntu / Debian

パッケージ形式
deb
インストールツール
apt
x86_64の場合
通常はamd64またはx64と表記
aarch64の場合
通常はarm64と表記

最終的には、debパッケージのArchitectureフィールドとPCのアーキテクチャが一致することを確認してください。

Fedora

パッケージ形式
rpm
インストールツール
dnf
x86_64の場合
x86_64
aarch64の場合
aarch64

amd64は特定のCPUメーカー専用という意味ではなく、アーキテクチャの一種です。

クライアントのダウンロードページで、Linuxのインストール手順と対応アーキテクチャを確認してください。この記事ではバージョン番号やパッケージのファイル名を固定していません。更新後に古いファイルを指定してしまうのを避けるためです。以下のコマンドはBash向けです。実行時には、ダウンロードしたファイルの実際のパスを入力してください。パスに空白が含まれていても使えますが、入力時に引用符を追加する必要はありません。

パッケージマネージャーでdebまたはrpmをインストール

ローカルパッケージをインストールするときは、ディストリビューションのパッケージマネージャーで依存関係を解決するのが基本です。UbuntuとDebianではapt install、Fedoraではdnf installを使います。リポジトリに接続できない場合、依存関係の解決にも失敗することがあります。その場合は依存関係を無視して強制インストールせず、まずリポジトリへのネットワーク接続を直してください。

  1. パッケージのパスを確認

    ファイルマネージャーでダウンロードしたファイルを見つけ、フルパスをコピーします。ターミナルにパスを入力したら、以下のコマンドでパッケージ名、バージョン、アーキテクチャを確認し、現在のディストリビューションに合っていることを確かめてください。

  2. インストールを実行

    利用しているディストリビューションに該当するコマンドだけを実行してください。パッケージマネージャーが提示する依存関係の変更内容を確認してから、インストールを確定します。デスクトップ関連のパッケージが大量に削除される場合は、いったん中止してリポジトリの混在がないか調べてください。

  3. 初回起動

    デスクトップのアプリケーションメニューからv2rayNを起動します。インストールには管理者権限を使いますが、普段の実行には一般ユーザーを使います。混同しないでください。ウィンドウを開いたまま、コアの起動エラーがないことを確認してから、自動起動を設定します。

Ubuntu / Debian:debをインストール

read -r -p 'debファイルのフルパスを入力:' pkg
pkg="$(realpath -- "$pkg")"
dpkg-deb -f "$pkg" Package Version Architecture
sudo apt install "$pkg"

ローカルの絶対パスを指定すると、aptはリポジトリからパッケージ名で検索するのではなく、ディスク上のファイルをインストールします。以前にdpkg -iを使って未設定のパッケージが残っている場合は、まずsudo apt --fix-broken installを実行し、修復内容を確認してから確定してください。依存関係を強制的に無視する方法を、通常のインストール手順にしないでください。

Fedora:rpmをインストール

read -r -p 'rpmファイルのフルパスを入力:' pkg
pkg="$(realpath -- "$pkg")"
rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' "$pkg"
sudo dnf install "$pkg"

接続を確認してから自動起動を設定

インストールが完了したのは、プログラムのファイルが配置されたことを意味するだけです。初回起動後、サブスクリプションを追加するかノードをインポートし、ノードを選んで接続をテストしてください。バージョンによってメニューの構成が変わることがあります。一般的な手順は「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、その後「サブスクリプショングループ」メニューから更新を実行します。画面上の表記が異なる場合は、使用中のバージョンのメニューを確認してください。他プラットフォーム版クライアントの同名ボタンを探す必要はありません。

127.0.0.1
ローカルプロキシのテスト先
10808
以下のコマンドで使うポートの例
15秒
1回のリクエストのタイムアウト上限

「設定」→「パラメーター設定」で、ローカルの待ち受けポートと種類を確認してください。ここで使う10808はテスト用の例で、すべてのバージョンのデフォルト値とは限りません。以下の例は、そのポートでSOCKSまたは混合インバウンドを使う想定です。実行前に実際の設定と照合してください。まずポートの待ち受けを確認し、デスクトップのシステムプロキシ設定を経由せず、プロキシを明示したリクエストを実行します。

ss -ltnp 'sport = :10808'
curl --proxy socks5h://127.0.0.1:10808 \
  --connect-timeout 5 --max-time 15 \
  --head https://example.com/

socks5hは、接続先のドメイン名をプロキシ側で処理する指定です。このテストではアプリ側での名前解決への依存を減らせますが、1回のリクエストだけで、システム全体のDNSやすべてのアプリの通信が想定どおりに振り分けられているとは判断できません。

ログイン時の自動起動方法を選択

デスクトップクライアントはユーザーセッションに依存します。普段デスクトップで使う場合は、システムサービスを作るよりXDG自動起動ファイルを使う方法が適しています。これはグラフィカルデスクトップへのログイン後に有効になり、ログイン画面が表示される前にクライアントを起動するものではありません。以下の方法はいずれか一つを選び、ログイン後に複数のインスタンスが起動しないようにしてください。

XDGデスクトップ自動起動

おすすめ

インストール済みのデスクトップ起動ファイルを、ユーザーのautostartディレクトリにコピーします。パッケージが用意した起動コマンド、引数、アイコン情報をそのまま利用できます。配置先は簡単に確認でき、設定を元に戻すのも容易です。

おすすめの対象:設定を確認・移行できる形で管理したいLinuxデスクトップユーザー。

デスクトップの設定画面

KDE Plasmaでは、「システム設定」→「自動起動」→「追加」から「アプリケーションを追加」を選び、v2rayNを指定します。項目やボタンの表記はPlasmaのバージョンによって異なります。追加後、同じ名前の項目がすでにないか確認してください。

おすすめの対象:デスクトップの設定画面で自動起動を管理したいユーザー。

現在のv2rayNに自動起動オプションがあり、有効になっている場合は、まず実際に作成された起動項目を確認してから、この記事の手動設定を使うか判断してください。クライアントが作成した項目、デスクトップ設定の項目、手動コピーした項目を重複して残さないでください。ウィンドウを閉じてもトレイに残ることと、次回ログイン時の自動起動設定は別です。

確認できる自動起動ファイルを作成

プログラムが特定の場所にあると決めつけず、パッケージに含まれる.desktopファイルを探します。以下の検索コマンドはdebとrpmにそれぞれ対応しています。インストール時に確認したパッケージ名を入力してください。検索結果から、/usr/share/applications/内にあるv2rayNのメイン起動ファイルを選びます。

デスクトップの起動項目を検索

# Ubuntu / Debian
read -r -p 'debのPackageフィールドを入力:' package
dpkg -L "$package" | grep -E '/applications/[^/]+\.desktop$'

# Fedora:Fedoraでのみこのコマンド一式を実行
read -r -p 'rpmのNAMEフィールドを入力:' package
rpm -ql "$package" | grep -E '/applications/[^/]+\.desktop$'

ここではdesktop-file-editを使って項目を編集します。UbuntuとDebianではsudo apt install desktop-file-utils、Fedoraではsudo dnf install desktop-file-utilsを実行して、必要なツールをインストールできます。その後は一般ユーザーでコピーを実行してください。以下のコマンドにはsudoを付けないでください。

read -r -p 'インストール済みdesktopファイルのフルパスを入力:' source
test -f "$source" && grep -E '^(Name|Exec|TryExec|DBusActivatable)=' "$source"

autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
target="$autostart_dir/v2rayn-login.desktop"

mkdir -p "$autostart_dir"
cp -- "$source" "$target"

desktop-file-edit \
  --remove-key=Hidden \
  --remove-key=OnlyShowIn \
  --remove-key=NotShowIn \
  --remove-key=DBusActivatable \
  --set-key=X-GNOME-Autostart-enabled --set-value=true \
  "$target"

desktop-file-validate "$target"

コピーを実行する前に、検索結果が対象プログラムを指していることと、Exec=に有効な起動コマンドが設定されていることを確認してください。パッケージ内のExecを引き継ぎ、デスクトップ環境の表示条件を取り除いて、D-Busによる起動ではなくコマンドを直接実行するようにします。元のファイルにTryExecがある場合は、指定されたプログラムも存在しなければ、デスクトップ環境が起動項目を無視することがあります。

ツールの実行結果に何も表示されなければ、通常は形式チェックに合格しています。ただし、プログラムが確実に起動することを保証するものではありません。保存したらクライアントを通常の方法で終了し、デスクトップからログアウトして再ログインしてください。ターミナルを開き直すだけでは自動起動を確認できません。ログイン後、デスクトップの読み込みを待ってから、ウィンドウ、トレイ、ローカルポートを確認し、インスタンスが1つだけ起動していることを確かめます。

依存関係・権限・ログイン時のトラブル対処

インストール時に依存関係がないと表示されたら、強制インストールしてもよいですか?

まずパッケージのアーキテクチャを確認し、リポジトリが有効でアクセスできるか調べます。UbuntuとDebianではaptでローカルのdebを、Fedoraではdnfでローカルのrpmをインストールしてください。現在のディストリビューションで必要なライブラリのバージョンを入手できない場合は、パッケージのシステム要件を確認します。他のディストリビューションの共有ライブラリをシステムディレクトリにコピーするのは避けてください。

アイコンをクリックしてもウィンドウが開かない場合、どう調べればよいですか?

まず、ウィンドウがトレイに格納されていないか確認し、次にdesktopファイルのExec=を調べてください。一般ユーザーのターミナルから、実際のプログラムのパスと引数を指定して起動します。desktopファイル用の%Uなどのフィールドコードは外し、標準エラー出力を確認してください。画面が起動しない問題と、コアが起動しない問題は別々に調べます。

手動なら起動するのに、ログイン後に起動しない場合は?

autostartファイルの所有者が現在のログインユーザーかを確認し、ExecとTryExecを確認してください。Hidden=trueが残っていないかも調べます。journalctl --user -bで現在の起動セッションのユーザーログを確認できます。ウィンドウが表示されたかどうかだけで判断せず、プログラム名または実際の実行ファイル名で検索してください。

ログイン後に起動するものの、接続がタイムアウトする場合は?

ネットワーク接続が確立するまで待ち、同じノードへの接続を手動で再試行してください。デスクトップの自動起動は、ネットワークの準備完了を保証しません。サブスクリプションの更新に失敗しても、既存のノードが必ず使えないとは限りません。プロキシを明示したテストを再度行い、ネットワーク未接続、ノードへの到達不能、アプリがシステムプロキシを参照していない状態を切り分けてください。

以前sudoで起動していたら、設定を保存できなくなりました。どうすればよいですか?

まずクライアントを終了し、ログに記録されたエラーのユーザーデータディレクトリを特定して、ls -ldで所有者を確認します。対象が現在のユーザーのクライアントデータであると確認できた場合に限り、所有者を修正してください。ホームディレクトリ全体やシステムのインストール先の権限を再帰的に変更しないでください。パッケージで配置されたシステムファイルは、引き続きパッケージマネージャーで管理します。

アップグレードと自動起動の解除

アップグレード時も、ディストリビューションに合ったローカルインストールコマンドを使い、実行中のクライアントを先に終了してください。通常、新版のインストールでユーザー設定が削除されることはありませんが、アップグレード前に実際に使っているデータディレクトリをバックアップしてください。特にサブスクリプショングループ、ルーティング、カスタム設定は保存しておきましょう。ディレクトリの場所は、使用中のバージョンの設定画面やログで確認してください。プログラムのインストール先だけがデータの保存先とは限りません。

ログイン時の自動起動を止めるだけなら、v2rayNをアンインストールする必要はありません。この記事で作成した起動ファイルを削除してください。デスクトップ設定やクライアントが作成した起動項目もある場合は、それぞれの設定画面で無効にします。自動起動を解除しても、現在実行中のプロセスは終了しません。

autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
rm -f -- "$autostart_dir/v2rayn-login.desktop"
クライアントとインストールパッケージ