まずディストリビューションとCPUアーキテクチャを確認し、aptまたはdnfでローカルパッケージをインストールします。インストール後、アプリメニューからv2rayNを起動し、ローカルの待ち受けとノードへの接続を確認します。最後に、インストール済みのデスクトップエントリーを現在のユーザーのログイン時に起動するよう設定します。GUI環境のあるLinux PCが対象です。GUIクライアントをシステム全体のバックグラウンドサービスとして設定する方法ではありません。
ディストリビューション、アーキテクチャ、デスクトップ環境を確認
「パッケージのアーキテクチャが一致しません」と表示されたり、インストーラーをダブルクリックしても反応しなかったりしても、まずカーネルを変更する必要はありません。debとrpmはディストリビューション用のパッケージ形式であり、プロキシのプロトコルではありません。UbuntuとDebianではdeb、Fedoraではrpmを使用します。v2rayNはノード管理や設定生成、コアの呼び出しを行うGUIクライアントです。Linuxデスクトップ向けのパッケージを、GUIのないサーバー向けのサービスパッケージとして扱わないでください。
cat /etc/os-release
uname -m
printf 'デスクトップ:%s\nセッション:%s\n' "$XDG_CURRENT_DESKTOP" "$XDG_SESSION_TYPE"
uname -m の出力が x86_64 ならx64パッケージ、aarch64 ならARM64パッケージを選びます。Debian系パッケージでは、これらのアーキテクチャをそれぞれ amd64、arm64 と表記することがありますが、名称が異なるだけです。展開や強制インストールのオプションで、アーキテクチャのチェックを回避しないでください。
ディストリビューション標準のパッケージ
推奨UbuntuとDebianではdeb、Fedoraではrpmを選びます。パッケージマネージャーがファイルを登録し、依存関係を解決するため、インストール済みファイルの一覧からデスクトップエントリーも確認できます。
対象:アプリメニューから起動したい方、アップグレードやアンインストールの記録を残したいデスクトップユーザー。
Linux用アーカイブ
ダウンロードページに対応するアーキテクチャのアーカイブがある場合に限り検討してください。ディレクトリ構成の維持、実行権限の設定、デスクトップエントリーの用意を自分で行う必要があり、以下のパッケージ検索コマンドは使えません。
対象:手動での導入に慣れている方、または提供されているパッケージをインストールできない環境の方。
クライアントのダウンロードページでLinux用パッケージを選びます。以下では特定のバージョンやファイル名を前提にせず、ダウンロードしたファイルのメタデータを確認します。古い記事に記載されたバージョン番号を、現在入手できるバージョンと誤認するのを防げます。
aptでUbuntu・Debianにdebパッケージをインストール
Bashのターミナルで操作することをおすすめします。以下では、最初にパッケージの絶対パスを入力し、パッケージ名、バージョン、アーキテクチャを確認します。パスを入力する際、引用符やバックスラッシュによる空白のエスケープは不要です。コマンド側で適切に引用されます。ファイルの入手元とメタデータを確認してから、インストールを実行してください。
read -r -e -p "debファイルの絶対パス:" package
package="$(realpath -- "$package")"
dpkg-deb -f "$package" Package Version Architecture
pkg_name="$(dpkg-deb -f "$package" Package)"
sudo apt update
sudo apt install "$package"
apt install にローカルパッケージの絶対パスを渡すと、設定済みのリポジトリから利用可能な依存パッケージが補われます。dpkg -i を実行しただけでインストールが完了したと思わないでください。パッケージの登録はできますが、不足している依存関係は自動でダウンロードされません。インストールコマンドが正常に終了したら、続けてインストール状態を確認します。
dpkg-query -W -f='${Package} ${Version} ${Status}\n' "$pkg_name"
dpkg -L "$pkg_name" | grep '/applications/.*\.desktop$'
パッケージ情報を確認
コマンド出力に表示されるバージョンとArchitectureを確認してください。これらを記録しておけば、「最新版を入れた」という曖昧な情報より、アップグレード時の問題を特定しやすくなります。
依存関係を含めてインストール
aptが正常に終了するまで待ちます。リポジトリに接続できないというメッセージが出た場合は、ネットワークまたはリポジトリの設定を修正してください。インストーラーを何度もダブルクリックしても解決しません。
デスクトップエントリーを確認
アプリメニューでv2rayNを検索します。メニューがまだ更新されていない場合は、再インストールせず、ログアウトしてから再ログインしてください。
一般ユーザーで起動
デスクトップエントリーからクライアントを起動します。インストールに管理者権限が必要でも、日常の起動にsudoを使う必要はありません。
dnfでFedoraにrpmパッケージをインストール
Fedoraでも、最初にメタデータを確認してからパッケージマネージャーでインストールします。以下のコマンドはdeb用の手順とどちらか一方だけを使い、同じPCで2種類のパッケージ形式を混在させないでください。後でデスクトップエントリーを検索する際も pkg_name 変数を使うため、現在のターミナルを開いたままにしてください。
read -r -e -p "rpmファイルの絶対パス:" package
package="$(realpath -- "$package")"
rpm -qpi "$package"
pkg_name="$(rpm -qp --queryformat '%{NAME}' "$package")"
sudo dnf install "$package"
rpm -q "$pkg_name"
rpm -ql "$pkg_name" | grep '/applications/.*\.desktop$'
dnf install は有効なリポジトリを参照して依存関係を解決します。共有ライブラリが見つからない、またはバージョン要件を満たせない場合は、エラー全文を保存し、パッケージが現在のFedoraのバージョンに対応しているか確認してください。依存関係を無視するオプションで問題を先送りし、起動時のエラーを招かないでください。また、出所不明のサイトから同名の共有ライブラリをダウンロードし、システムファイルを上書きしないでください。
起動できない場合はエラーの種類ごとに対処
「インストール済みなのにウィンドウが表示されない」からといって、依存関係の問題とは限りません。ウィンドウがトレイに最小化されている場合も、起動直後に終了している場合もあります。まずトレイとプロセスを確認し、パッケージに含まれるデスクトップファイルから起動コマンドを調べてください。実行ファイルの大文字・小文字やインストール先を、思い込みで判断しないでください。
| 症状 | 最初に確認する項目 | 対処方法 |
|---|---|---|
| アーキテクチャが一致しない | unameの出力とパッケージのメタデータ | x64またはARM64のパッケージを選び直し、強制インストールはしない。 |
| debの依存関係のインストールが未完了 | aptのエラー全文とリポジトリの状態 | apt --fix-broken installを実行し、提案された操作を確認してから続行する。 |
| 共有ライブラリが不足していると表示される | ターミナルに表示されたライブラリ名の全文 | ディストリビューションのリポジトリで対応するパッケージを検索し、システムのバージョンとの互換性を確認する。 |
| アプリメニューにエントリーが表示されない | インストール済みファイルに.desktopファイルがあるか | パッケージの内容とメニューキャッシュを確認し、必要に応じてログアウト後に再ログインする。 |
| 起動直後に終了する | Execコマンドの出力とディレクトリへの書き込み権限 | 具体的なエラーに応じて対処し、設定をすべて削除するのは避ける。 |
Debianでは、sudo apt --fix-broken install によって依存パッケージの追加が提案されることもあれば、設定できないパッケージの削除が提案されることもあります。操作一覧を確認してから実行してください。過去にsudoでGUIクライアントを起動した場合は、実際の設定ディレクトリの所有者を確認します。問題があると確認できたアプリのディレクトリだけを修正し、ホームディレクトリ全体の権限を再帰的に変更しないでください。
デスクトップファイルの Exec= は起動ルールであり、そのまま無条件にターミナルへ貼り付けて実行できるスクリプトではありません。%U や %F などのフィールドコードがある場合、手動でデバッグするときはそれらを取り除き、実際のコマンド、引数、パスの引用符を残してください。読み取った行全体を eval で実行しないでください。
待ち受けとプロキシ接続を確認してから自動起動を設定
v2rayNを初めて起動したら、まず利用可能な設定をインポートし、サーバーを1つ選択します。サブスクリプションを追加するには、メイン画面の「サブスクリプショングループ」→「サブスクリプショングループの設定」でグループとURLを入力し、「サブスクリプショングループ」メニューから該当する更新操作を実行します。バージョンによってボタンの配置が異なる場合があるため、現在の画面に表示されている文言を確認してください。サブスクリプションの更新に成功しても、ノード情報を取得できたことを示すだけで、ノードへの接続を保証するものではありません。
「設定」→「パラメーター設定」を開き、ローカルの待ち受けに関する項目を確認します。以下では、例として混合プロキシのアドレス 127.0.0.1:10808 を使います。実際の値はクライアントの設定と一致させてください。説明に10808とあるからといって既存のポートを変更したり、このPCからの接続問題を解決するために待ち受けアドレスを全ネットワークインターフェースに変更したりしないでください。
ss -ltnp 'sport = :10808'
curl --proxy http://127.0.0.1:10808 --max-time 15 -I https://example.com/
curl --proxy socks5h://127.0.0.1:10808 --max-time 15 -I https://example.com/
上記のリクエストは、対応するプロトコルの待ち受けを有効にしている場合にのみ意味があります。socks5h は接続先のドメイン名解決をプロキシ側に任せるため、ローカルのDNS経路と区別する際に使えます。HTTPレスポンスを受信できても、そのリクエストが完了したことを示すだけで、すべてのサイトやアプリがプロキシ経由になっているとは限りません。ログでルーティングが直接接続になっている場合は、想定するルーティングに応じてテスト先を選んでください。
プロキシを指定して接続を確認
- プロキシアドレス
- 127.0.0.1
- ポートの例
- 10808
- リクエスト方法
- curl --proxy
- タイムアウト上限
- 15秒
デスクトップのシステムプロキシ設定を介さず、まずクライアントの待ち受けと外部への接続経路を確認します。
デスクトップのプロキシ設定を確認
- GNOMEでの設定手順
- 「設定」→「ネットワーク」→「ネットワークプロキシ」
- 確認項目
- HTTP、HTTPS、SOCKSのアドレスとポート
- ブラウザーの設定
- 拡張機能とブラウザー独自のプロキシ設定
- ターミナルの環境変数
- http_proxy、https_proxy、all_proxy
デスクトップのプロキシ設定が、すべてのターミナルアプリに適用されるとは限りません。同じテスト先を使い、各レイヤーを順に確認してください。
デスクトップへのログイン時に自動起動するよう設定
デスクトップユーザーがいう「PC起動時の自動起動」は、実際には現在のユーザーがグラフィカルセッションにログインした後に起動する設定です。この時点ではデスクトップセッション、ユーザー設定、トレイ環境が利用可能になっています。ウィンドウアプリをrootで起動するシステムサービスとして設定しないでください。ディスプレイサーバー、セッションバス、設定ファイルの所有者をめぐる問題が発生しやすくなります。
自動起動の方法を1つ選び、二重起動を防ぐ
クライアント内蔵の設定
- 「設定」→「パラメーター設定」に「ログイン時に自動起動」の項目があるか確認します。
- 現在のLinux版で実際に提供され、利用できる場合に限って有効にします。
- 有効にしたらログアウトして動作を確認し、デスクトップエントリーを追加で複製しないでください。
XDGのログイン時自動起動
- インストール済みパッケージに含まれる.desktopファイルを使います。
- 現在のユーザーの~/.config/autostart/にコピーします。
- XDG自動起動仕様に準拠したデスクトップセッションで利用できます。
どちらか一方を選んでください。デスクトップ環境がなくウィンドウマネージャーだけの環境では、セッション固有の起動方法を別途確認する必要があります。
XDG方式を使う場合は、まずデスクトップファイルを探します。以下の検索コマンドはディストリビューションに合わせてどちらか一方を実行してください。インストールに使ったターミナルをすでに閉じた場合は、パッケージマネージャーで実際のパッケージ名を確認してから pkg_name に設定します。以前の変数が残っていると決めつけないでください。
# Ubuntu / Debian
dpkg -L "$pkg_name" | grep '/applications/.*\.desktop$'
# Fedora
rpm -ql "$pkg_name" | grep '/applications/.*\.desktop$'
複数のエントリーが表示された場合は、アンインストール用や補助用ではなく、メイン画面を起動するものを選びます。続いてその絶対パスを入力し、重要なフィールドを確認してから元のファイルをコピーしてください。インストールパッケージに設定されたExec、Icon、作業ディレクトリを維持できるため、プログラムの場所を推測する必要がありません。
read -r -e -p "メイン画面のdesktopファイルの絶対パス:" desktop
desktop="$(realpath -- "$desktop")"
grep -E '^(Type|Name|Exec|TryExec|Path|Hidden|OnlyShowIn|NotShowIn|X-GNOME-Autostart-enabled)=' "$desktop"
mkdir -p "$HOME/.config/autostart"
install -m 644 "$desktop" "$HOME/.config/autostart/v2rayn.desktop"
コピーする前に、エントリーが Type=Application であり、Hidden=true や自動起動を無効にするフィールドがないことを確認します。OnlyShowIn や NotShowIn がある場合は、現在のデスクトップ環境が対象外になっていないかも確認してください。こうした制限が見つかった場合は用途を確認し、パッケージマネージャーが管理する元ファイルではなく、ユーザー用のコピーを編集してください。
ログアウト後の再確認、アップグレード、設定の取り消し
自動起動の設定後、クライアントを通常の方法で終了してからログアウトし、再ログインします。ウィンドウを閉じただけでプロセスが終了したと判断しないでください。設定によっては、閉じる操作がトレイへの最小化になる場合があります。再ログイン後にプロセス、待ち受けポート、リクエスト結果を確認し、3つすべてが正常なら設定完了です。
- 二重起動していないことを確認:デスクトップの「自動起動するアプリケーション」、クライアント内蔵の設定、ユーザーのautostartディレクトリを確認し、重複する設定を削除します。
- 設定が読み込まれていることを確認:サーバー一覧、サブスクリプショングループ、選択中のノードが保持され、管理者として起動したときの別の設定が使われていないことを確認します。
- ネットワーク接続を確認:ログイン直後はWi-Fiがまだ接続されておらず、サブスクリプションの更新に失敗することがあります。まずネットワーク接続を待ってから手動で再試行してください。それだけで自動起動が失敗したと判断しないでください。
- プロキシが復旧していることを確認:ポートとcurlのテストをもう一度行い、その後ブラウザーを確認します。ウィンドウが表示されても、システムプロキシ設定が有効になったとは限りません。
アップグレードする際はクライアントを終了し、同じパッケージマネージャーで同じアーキテクチャの新しいバージョンをインストールします。ユーザーがコピーしたデスクトップファイルは、元のファイルを更新しても自動では更新されません。新しいバージョンでExecやインストール先が変更された場合は、エントリーを再確認してコピーし直してください。移行前にクライアントが実際に使用しているデータディレクトリをバックアップし、更新時に上書きされるインストール先へバックアップを置かないでください。
この記事のXDG自動起動設定を取り消すには、この記事で作成したユーザー用コピーだけを削除します。クライアント内蔵の設定を使った場合は、元の設定画面で無効にしてください。アンインストールする前に使わなくなったデスクトップのプロキシ設定を解除しないと、ブラウザーが待ち受けを停止したポートに接続し続けることがあります。
rm -f "$HOME/.config/autostart/v2rayn.desktop"
最終的な確認順序は変えないでください。まずパッケージが正しくインストールされているか、次にメインプログラムが起動するか、その後にローカルポートとノード接続、最後にデスクトップのプロキシとログイン時の自動起動を確認します。依存関係、ポート、権限、起動方法を一度に変更するより、各段階を個別に検証するほうが原因を特定しやすくなります。