Linuxのデスクトップ環境でv2rayNを使う方向けに、ディストリビューションとCPUアーキテクチャの確認から、aptまたはdnfによるパッケージのインストール、初回起動、ログイン時の自動起動設定まで解説します。最後に、待ち受けポート、プロキシ接続、デスクトップセッションを個別に確認し、「インストール済み」「プロキシ接続可能」「ログイン後に自動起動」を混同しないようにします。
1. ディストリビューション・アーキテクチャ・デスクトップ環境を確認
クライアントのダウンロードページからLinux用パッケージを選びます。Debian、Ubuntuおよびその派生ディストリビューションでは通常deb、Fedoraではrpmを使用します。パッケージ形式とCPUアーキテクチャの両方を合わせてください。x86_64はx64、aarch64はARM64に対応します。PCのメーカーだけでアーキテクチャを判断しないでください。
cat /etc/os-release
uname -m
printf 'デスクトップセッション:%s\n' "$XDG_SESSION_TYPE"
Debian / Ubuntu
- パッケージ形式
- deb
- インストールツール
- apt
- x64のアーキテクチャ名
- amd64
- ARM64のアーキテクチャ名
- arm64
aptでローカルパッケージをインストールすると、設定済みのリポジトリから依存関係も解決できます。
Fedora
- パッケージ形式
- rpm
- インストールツール
- dnf
- x64のアーキテクチャ名
- x86_64
- ARM64のアーキテクチャ名
- aarch64
rpmはパッケージ形式です。dnfでインストールすることで、リポジトリの依存関係も処理しやすくなります。
以下は、GNOMEやKDEなどのグラフィカルデスクトップにログインしている環境を対象とします。デスクトップセッションのないコマンドラインサーバーでは、デスクトップ向けの自動起動設定は使えません。v2rayNはGUIクライアントで、接続と通信の転送を担うのはプロキシコアです。クライアントをインストールしただけでは、プロキシは有効になりません。
2. Debian / Ubuntu:debパッケージのインストールと依存関係の修復
ファイルマネージャーでダウンロードフォルダーを開き、「端末で開く」を選択します。今回使うdebファイルだけを専用のフォルダーに入れ、古いバージョンや別のパッケージを誤って選ばないようにしてください。以下のコマンドはBashで実行します。カレントディレクトリにdebファイルが1つだけあることを確認し、パッケージ情報を表示してからインストールします。変数は現在の端末内でのみ有効です。
mapfile -d '' packages < <(find . -maxdepth 1 -type f -name '*.deb' -print0)
if [ "${#packages[@]}" -eq 1 ]; then
deb_file="${packages[0]}"
dpkg-deb -f "$deb_file" Package Version Architecture
sudo apt update
sudo apt install "$deb_file"
else
printf '現在のディレクトリには、今回インストールするdebパッケージを1つだけ置いてください。\n'
fi
表示されたパッケージ名、バージョン、アーキテクチャを確認してから、インストールの確認に進みます。パスが./で始まる場合はローカルファイルを指します。パスを省略すると、aptが引数をリポジトリ上のパッケージ名として扱うことがあります。アーキテクチャが一致しない場合は、強制オプションで回避せず、適合するパッケージを選び直してください。
-
パッケージ情報を確認
dpkg-deb -fの出力を確認し、ダウンロードしたものがv2rayN用のパッケージで、アーキテクチャがシステムと一致していることを確かめます。 -
インストールして依存関係を補う
sudo apt install "$deb_file"を実行します。以前dpkgを使ってインストールが未完了のままになった場合は、sudo apt --fix-broken installを実行し、修復内容を確認してから続行してください。 -
デスクトップの起動項目を確認
インストール後、アプリケーションメニューでv2rayNを検索します。最初からプログラムのディレクトリに再帰的な書き込み権限を付与しないでください。
-
一般ユーザーで起動
現在ログインしているユーザーでv2rayNを起動し、メインウィンドウとログに問題がないことを確認してから、サブスクリプションとログイン時の自動起動を設定します。
3. Fedora:dnfでrpmをインストール
今回使うパッケージだけを置いたディレクトリでBashを開きます。まずrpm -qpでメタデータを確認し、その後dnfでインストールします。ローカルパッケージの情報を調べるだけなら、インストールも管理者権限も不要です。
mapfile -d '' packages < <(find . -maxdepth 1 -type f -name '*.rpm' -print0)
if [ "${#packages[@]}" -eq 1 ]; then
rpm_file="${packages[0]}"
rpm -qp --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' "$rpm_file"
sudo dnf install "$rpm_file"
else
printf '現在のディレクトリには、今回インストールするrpmパッケージを1つだけ置いてください。\n'
fi
依存関係を無視するrpm --nodepsは使わないでください。インストール済みと表示されても、起動時に共有ライブラリが見つからなくなることがあります。依存関係のエラーが出たら、まずdnfが示すパッケージ名とバージョン条件を確認します。リポジトリに必要なバージョンがない場合は、システムとパッケージの互換性を調べてください。
- パッケージはインストール済みと表示される:まず現在のバージョンを確認してください。再インストールは不要です。更新する場合は、アーキテクチャに合ったパッケージを改めてダウンロードし、dnfで処理します。
- ファイルを読み取れないと表示される:端末の作業ディレクトリとファイル名を確認してください。ダウンロードフォルダー全体に
chmod -R 777を実行しないでください。 - セキュリティポリシーによるブロックが疑われる:実際のエラーと監査ログを確認してください。ウィンドウを開くためにSELinuxを無効化しないでください。
ローカルのdebまたはrpmをインストールしても、継続的に更新されるリポジトリが追加されるとは限りません。今後のアップグレードがシステム更新に含まれるかどうかは、パッケージがリポジトリを設定するかによります。設定されない場合は、新しいパッケージをダウンロードして再度インストールしてください。
4. 初回起動:待ち受けを確認してからプロキシをテスト
アプリケーションメニューからv2rayNを起動し、自分が利用できるサブスクリプションまたはノード設定をインポートして、使用可能なノードを選択します。次に「設定」→「パラメータ設定」でローカルの待ち受け設定を確認してください。バージョンによって項目の位置が異なる場合があるため、現在の画面に表示されているポートとプロトコルを基準にします。
以下では、ローカルのSOCKSまたは混合待ち受けポートを10808と仮定しています。これは動作確認用の例であり、すべてのバージョンでの既定値を保証するものではありません。実際のポートが異なる場合は、実行前にコマンド内の数字を変更してください。socks5hでは接続先のドメイン名をプロキシ側で解決するため、このテストでローカルDNSの影響を抑えられます。
ss -lntp 'sport = :10808'
curl --proxy socks5h://127.0.0.1:10808 \
--connect-timeout 5 --max-time 15 \
--head https://example.com/
- 待ち受けが確認できない:まずプロキシコアが起動しているか、ポート番号が正しいか、ログに設定ファイルの解析エラーがないかを確認してください。
- 接続が拒否される:通常は、そのアドレスとポートで待ち受けが行われていない状態です。まずローカルの接続先を確認してください。
- HTTPレスポンスが返ってくる:明示的に指定したプロキシリクエストに対し、接続先または中継サービスから応答があったことを示します。アクセスできたかどうかは、ステータスコードも確認してください。
ブラウザーからアクセスできても、端末がシステムプロキシを自動的に使うとは限りません。上記のcurlコマンドはプロキシを明示的に指定しており、デスクトップのプロキシ設定には依存しません。初回のセットアップでは、まずこの方法で単独の接続を確認し、必要に応じてシステムプロキシやTUNを有効にしてください。通常のローカルプロキシを使うために、GUIクライアントを常にrootで実行する必要はありません。
5. ログイン時の自動起動:パッケージのデスクトップ起動項目を再利用
ここでいう「自動起動」は、グラフィカルデスクトップへのログイン後にv2rayNを起動する設定です。PCの電源投入後、ログイン前に起動するという意味ではありません。普段のデスクトップ利用では、XDG自動起動の仕組みを使う方法がおすすめです。パッケージが管理する実行パスを再利用できるため、アップグレード後に起動項目が使えなくなるリスクを抑えられます。
XDGデスクトップ自動起動
推奨既存のデスクトップ起動項目を、ユーザーの自動起動ディレクトリにコピーします。デスクトップにログインすると、XDG自動起動に対応したデスクトップ環境が起動を処理します。
おすすめの用途:GNOMEやKDEなどのデスクトップでの日常利用。
クライアントの自動起動設定
現在のバージョンのパラメータ設定に自動起動の項目がある場合は、それを利用できます。ただし、手動で別の起動項目も作成しないでください。
おすすめの用途:クライアント内で起動方法をまとめて管理したい場合。
システムサービス
独立したプロキシコアプロセスをサービスとして動かす方法です。設定、ユーザー、ネットワーク依存関係を別途管理する必要があり、GUIの起動コマンドをそのまま流用することはできません。
おすすめの用途:ログイン前の起動が必要で、プロキシコアの設定を個別に管理できる管理者。
インストール済みのdesktopファイルを探す
一般ユーザーの端末で、次の検索コマンドを実行します。ファイルが1つ見つかった場合に限り、スクリプトがコピーします。複数見つかった場合は候補を表示して停止します。インストール先を決めつけず、パッケージのファイル名を起動コマンドと誤認することも避けられます。
mapfile -d '' entries < <(
find /usr/share/applications /usr/local/share/applications \
-maxdepth 1 -type f -iname '*v2rayn*.desktop' \
-print0 2>/dev/null
)
if [ "${#entries[@]}" -eq 1 ]; then
desktop_file="${entries[0]}"
grep -E '^(Name|Exec|TryExec|Path|Hidden|OnlyShowIn|NotShowIn)=' "$desktop_file"
autostart_dir="${XDG_CONFIG_HOME:-$HOME/.config}/autostart"
mkdir -p "$autostart_dir"
cp -- "$desktop_file" "$autostart_dir/v2rayn.desktop"
printf 'コピー先:%s\n' "$autostart_dir/v2rayn.desktop"
else
printf '起動項目が%s個見つかりました。内容を確認してください:\n' "${#entries[@]}"
printf '%s\n' "${entries[@]}"
fi
起動項目が見つからない場合は、先ほどインストールに使った端末に戻り、dpkg-deb -f "$deb_file" Packageまたはrpm -qp --queryformat '%{NAME}\n' "$rpm_file"でパッケージ名を確認します。その後、dpkg -Lまたはrpm -qlでパッケージ内のファイル一覧を調べてください。実際の起動項目を確認してから先へ進み、/opt以下の実行ファイルのパスを推測しないでください。
無効化されていないか確認
コピーしたファイルをテキストエディターで開き、[Desktop Entry]セクションを確認します。Hidden=trueがあればHidden=falseに、X-GNOME-Autostart-enabled=falseがあればtrueに変更してください。これらの無効化項目がなければ、通常は追加の変更は不要です。OnlyShowInまたはNotShowInがある場合は、現在のデスクトップ環境が対象外になっていないかも確認します。
Exec、TryExec、Pathの有効な値はそのままにし、起動コマンドを安易にsudoへ変更しないでください。Execは対話型シェルではありません。端末とは異なり、~、パイプ、リダイレクトは自動的に展開されません。- ユーザーの自動起動ディレクトリへの書き込みにsudoは不要です。sudoを使うと、root所有の設定ファイルが作成されるおそれがあります。
- クライアントの自動起動設定をすでに有効にしている場合は、起動方法が重複しないよう、どちらか一方を無効にしてください。
6. ログアウト後に動作を確認し、元に戻せるようにする
作業内容を保存し、v2rayNを通常の手順で終了してから、デスクトップをログアウトして再度ログインします。端末を閉じるだけでは、ログイン時の自動起動を確認できません。ログイン後、まずウィンドウまたはプロセスを確認し、次に待ち受けポートを確認します。トレイアイコンに対応していないデスクトップ環境もあるため、アイコンの有無だけで成功・失敗を判断しないでください。
pgrep -af '[vV]2ray[Nn]'
ss -lntp 'sport = :10808'
journalctl --user -b --no-pager -n 100
ユーザーログに起動情報が記録されるかどうかは、デスクトップ環境によって異なります。「ログに記録がない」ことだけで起動失敗と判断しないでください。クライアントが起動していてノード接続がタイムアウトする場合は、ネットワーク接続を待ってから、サブスクリプション、ノード、プロキシコアのログを確認します。ネットワークの問題を解決するために、自動起動項目を重複して追加しないでください。
rm -f -- "${XDG_CONFIG_HOME:-$HOME/.config}/autostart/v2rayn.desktop"
7. インストール・権限エラーの対処法
インストール時にPermission deniedと表示されました。ディレクトリ全体に権限を付与すればよいですか?
まず、エラーの対象を確認してください。システムパッケージのインストールでは、sudoを付けてパッケージマネージャーを実行します。インストールファイルを読み取れない場合は、ファイルと親ディレクトリの権限を確認してください。システムディレクトリの権限を再帰的に緩めないでください。aptがローカルパッケージを低権限ユーザーで読み取れないと表示しても、最終的にインストール成功と表示される場合は、終了ステータスとインストール結果を確認し、そのメッセージだけで起動エラーと判断しないでください。
ウィンドウが開かないとき、実際のエラーを確認するには?
デスクトップ起動項目のExec=を確認し、ログイン中のデスクトップで一般ユーザーの端末から対応するプログラムを実行します。%U、%Fなどのデスクトップ用プレースホルダーを取り除き、パスの引用符も正しく保ってください。出力から、共有ライブラリの不足、グラフィカル環境の利用不可、設定の異常のどれかを判断します。エラーを隠すためにsudoで起動しないでください。
以前sudoで起動してしまい、設定を保存できなくなった場合は?
エラーに表示されたパスとls -ldで、実際の設定ディレクトリがroot所有か確認します。プログラムを終了してから、v2rayNのユーザーデータディレクトリだと確認できた場所だけ、所有者を修正してください。ホームディレクトリ全体に再帰的な所有者変更を実行したり、ユーザー設定の保存問題を解決するためにプログラムのインストール先を変更したりしないでください。
アップグレード後に自動起動しなくなったが、手動起動はできる場合は?
ユーザーの自動起動ファイルと、新しくインストールされたデスクトップ起動項目を比較し、特にExec、TryExec、Pathを確認します。古いコピーは、システム側の起動項目が更新されても自動では更新されません。新しい起動項目が有効だと確認できたら再度コピーし、ログアウトしてからログインして動作を確かめてください。
TUNで権限不足と表示されます。rootで常時実行してもよいですか?
まず通常のローカルプロキシに戻し、ノードに接続できることを確認します。その後、使用中のバージョンに対応したLinux版TUNの権限設定手順に従ってください。TUNは仮想デバイスとルーティングの管理に関わるため、デスクトップの自動起動とは別の問題です。自動起動のためだけにクライアント全体を昇格すると、設定ファイルの所有者やデスクトップセッションの環境が変わるおそれがあります。
最終確認は3項目です。システムのパッケージマネージャーでパッケージ情報を確認できること、一般ユーザーで手動起動した後にプロキシリクエストが成功すること、デスクトップに再ログインした後に待ち受けが自動で復旧することです。3項目すべてを確認して、インストール、接続、自動起動が完了したと判断できます。ポートやアップグレード後のインストール先を変更した場合も、同じ順番で再確認してください。
クライアントとプラットフォームの選択
LinuxディストリビューションとCPUアーキテクチャに合ったdebまたはrpmパッケージを選択してください。初回インストール後は手動起動とプロキシ接続を確認し、その後この記事に戻ってログイン時の自動起動を設定します。