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
- 依存パッケージのダウンロードに失敗した場合は、まずパッケージソースにアクセスできるか確認してから再試行してください。依存関係を無視してインストールを続けないでください。
- アーキテクチャが一致しない場合は、ダウンロードページに戻って適切なファイルを選び直してください。強制インストールのオプションでチェックを回避しないでください。
- インストール後、デスクトップのアプリ一覧でv2rayNを検索します。起動項目が見つからない場合は、
dpkg -L "$(dpkg-deb -f "$pkg" Package)"を実行して、パッケージが実際にインストールしたファイルを確認できます。 - 同じパッケージを更新する場合は、ローカルパッケージのインストールコマンドを再実行できます。プログラムファイルを上書きしても、サブスクリプションやルーティング設定がバックアップされるわけではありません。更新前に大切な設定を保存してください。
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接続先とは別のアドレスです。
サブスクリプションを追加
「サブスクリプショングループ」→「サブスクリプショングループの設定」を開き、グループを追加して信頼できるサブスクリプションURLを入力します。バージョンによってボタンの位置が異なる場合があるため、現在の画面でグループ管理の項目を確認してください。
ノード一覧を更新
「サブスクリプショングループ」メニューから更新を実行します。初回接続がまだ確立していない場合は、プロキシを経由しない更新方法を選んでください。URLに直接接続できない場合は、先に利用可能な接続手段を用意する必要があります。何度もクリックしても解決しません。
ノードを選択
ノード一覧からノードを選び、使用するサーバーに設定します。プロトコルや通信パラメーターがサーバー側の要件に合っていることを確認し、ログでコアの起動結果を確認してください。
ポートを確認
「設定」→「パラメーター設定」を開き、ローカルの待ち受けアドレスとポートを確認します。この記事では混合プロキシの接続先として
127.0.0.1:10808を例にします。画面に別のポートが表示されている場合は、以降のテストでも実際の値に置き換えてください。プロキシを設定
まず明示的にプロキシを指定して接続テストを行い、その後、クライアントの「システムプロキシ」→「システムプロキシを自動設定」を試します。Linuxでは、設定が適用される範囲はデスクトップ環境やアプリが設定を参照するかどうかによって異なります。
ここに記載した数値は設定例であり、性能測定の結果やすべてのバージョンの初期値ではありません。接続先が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のデスクトップウィンドウをシステムサービスとして設定しない
デスクトップアプリの起動コマンドをそのままシステムサービスに登録しても、ウィンドウが正常に表示されるとは限りません。
- ログアウトして再度ログインし、v2rayNが起動するか、コアが動作しているか、ローカルポートが待ち受けているかを確認してください。
- クライアント内蔵の自動起動機能を有効にしている場合は、二重起動を防ぐため、同じ目的の起動項目を重複して残さないでください。
- ログイン後すぐにネットワークが使えない場合、クライアントのウィンドウが表示されても、サブスクリプションの更新やノードへの接続がすぐに成功するとは限りません。ネットワーク接続が安定してからログを確認してください。
- この記事で作成した自動起動項目を無効にするには、
rm -- "${XDG_CONFIG_HOME:-$HOME/.config}/autostart/v2rayN.desktop"を実行します。この操作では自動起動ファイルだけが削除されます。
権限とシステムプロキシ:症状別の確認方法
ローカルプロキシ、デスクトップのシステムプロキシ、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などの項目を確認してください。ユーザーディレクトリ内のコピーは、システム側のアプリケーションエントリーが更新されても自動で同期されるとは限りません。