この記事の概要

ShadowrocketのLinux版をインストールする前に、ディストリビューションとプロセッサのアーキテクチャを確認し、当サイトのダウンロードページでdeb、rpm、AppImageから適切な形式を選びます。この記事では、ダウンロードしたファイルを使ったインストールコマンド、AppImageの実行権限、初回起動時の確認方法に加え、インストールの問題と接続設定の問題を見分ける方法を解説します。デスクトップLinux環境があり、すでにお持ちのサービス設定を読み込む方に向けた内容です。

ディストリビューション・アーキテクチャ・実行環境を確認する

パッケージ形式とプロセッサのアーキテクチャは、それぞれ別に確認が必要です。debはDebian / Ubuntuのパッケージ体系に対応し、この記事ではFedoraでrpmをdnfからインストールする手順を紹介します。AppImageはその他のデスクトップディストリビューションで選択肢になりますが、アーキテクチャ、システムライブラリ、実行環境に左右されます。すべてのLinux環境で動作するわけではありません。

システムのTerminalを開き、次の2つのコマンドを実行します。1つ目はディストリビューションの識別情報、2つ目はカーネルが報告するマシンのアーキテクチャを表示します。ダウンロードページに実際に掲載されているアーキテクチャと照合してください。PCのメーカー名だけで判断したり、ファイルの拡張子を別の形式に変更したりしないでください。

cat /etc/os-release
uname -m
3種類
Linuxのインストール形式:deb / rpm / AppImage
2項目
ディストリビューションの系統とプロセッサのアーキテクチャを確認
1項目
AppImageの起動前に実行権限を確認

環境に合ったインストール方法を選ぶ

クライアントのダウンロードページを開き、Linuxの項目からシステムに合うファイルを選びます。現在のダウンロード先と古いファイル名を混同しないよう、ここではパッケージ名を固定していません。ダウンロード後、ブラウザーのダウンロード履歴で保存先を確認してください。以降のコマンドでは、その実際のファイルパスを使います。

選び方:システムのパッケージ管理か、単体ファイルで実行するか

Debian / Ubuntu / Fedora
  • Debian / Ubuntuではdebを選び、aptでローカルファイルをインストールします。
  • Fedoraではrpmを選び、dnfでローカルファイルをインストールします。
  • パッケージマネージャーがインストール結果を管理し、有効になっているソフトウェアリポジトリから依存関係を解決します。
その他のデスクトップディストリビューション
  • まず、ダウンロードページにアーキテクチャの合うAppImageがあるか確認します。
  • ファイルに実行権限を付与し、一般ユーザーとして起動します。
  • 書き込みと実行が可能な場所に保存し、依存関係のエラーが出た場合はディストリビューションに応じて対処します。

対応するシステムパッケージがある場合は、まずパッケージマネージャーを使います。AppImageを選ぶ場合は、システムとの互換性と実行権限も確認してください。

一度に検証するインストール形式は1つにしてください。deb版とAppImageを同時に残すと、デスクトップメニューから起動するファイルと、Terminalから起動するファイルが異なる場合があります。トラブルシューティングでは実際の起動パスを記録し、一方のファイルを変更しているのに別のコピーを開いていた、という事態を避けてください。

インストールコマンド:ダウンロードしたファイルの実際のパスを使う

以下のコマンドはBash用です。各手順の冒頭でファイルの絶対パスを入力するよう求められます。パスをそのまま貼り付け、前後に引用符を追加しないでください。コマンド内の二重引用符は、空白を含むパスを正しく扱うためのものです。realpath -eはファイルが実在することも確認します。パスを間違えた場合は、インストールの行へ進まず、そこで中止してください。

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

read -r -p 'debファイルの絶対パスを入力:' pkg
pkg=$(realpath -e -- "$pkg") && sudo apt install "$pkg"

ここで指定するのはローカルファイルの絶対パスであり、ソフトウェアリポジトリ内のパッケージ名ではありません。aptはインストール対象のパッケージ、依存関係、ディスク使用量を表示します。内容を確認してから続行してください。依存関係のダウンロードには、システムに設定済みのリポジトリへアクセスできる必要があります。失敗した場合は、Terminalに表示された依存パッケージ名やリポジトリのエラーを確認し、インストールパッケージを何度もダブルクリックしないでください。

  • ファイルが見つからないと表示された場合:ブラウザーのダウンロード履歴に戻り、パス、大文字・小文字、ダウンロードが完了しているかを確認します。
  • 依存関係を満たせないと表示された場合:ディストリビューションのバージョン、アーキテクチャ、リポジトリの設定を確認します。必要であればsudo apt updateを実行してから再試行し、元のエラーメッセージも保存してください。
  • パッケージマネージャーが使用中と表示された場合:システム更新が完了するまで待ってください。ロックファイルを直接削除しないでください。

Fedora:dnfでrpmをインストール

read -r -p 'rpmファイルの絶対パスを入力:' pkg
pkg=$(realpath -e -- "$pkg") && sudo dnf install "$pkg"

低レベルのインストールコマンドだけを実行するのではなく、dnfを使うとシステムリポジトリから提供される依存関係も処理できます。rpmはファイル形式であり、rpmを使うすべてのディストリビューションで依存パッケージのバージョンが同じとは限りません。Fedoraでの互換性を、他のディストリビューションにそのまま当てはめないでください。

  • インストール処理に表示される変更内容を確認してください。予想外に多数のパッケージが削除される場合は、いったんキャンセルします。
  • アーキテクチャが合わない、またはシステムライブラリが不足している場合は、ダウンロードページに戻ってパッケージの対象環境を確認してください。
  • 依存関係を無視してインストールを強行しないでください。プログラムが起動できなくなるおそれがあります。

AppImage:実行権限を付与して起動

read -r -p 'AppImageファイルの絶対パスを入力:' app
if app=$(realpath -e -- "$app"); then
  chmod u+x -- "$app" && "$app"
fi

chmod u+xはファイルの所有者に実行権限を追加します。すべてのユーザーに書き込み権限を与える必要はありません。AppImageの実行にsudoは使いません。初回の動作確認はTerminalから起動するのがおすすめです。ウィンドウが表示されなくても、不足しているライブラリ、FUSE、グラフィカルセッションに関するエラーを確認できます。

初回起動:まずプログラムを確認し、その後設定を読み込む

インストールの完了と接続の成功は別のことです。まずプログラムが起動することを確認し、次にお持ちの設定を読み込み、最後に接続結果を確認します。以下ではHome、Config、Settingsの各機能の場所に沿って説明します。プラットフォームによってボタンの配置が異なる場合があるため、アイコンの位置だけで判断せず、画面上の項目名を確認して操作してください。

  1. 起動を確認する

    システムパッケージをインストールした場合は、デスクトップのアプリメニューからShadowrocketを開きます。AppImageの場合は、先ほど確認した絶対パスを指定して実行します。ウィンドウが表示されない場合は、ネットワーク設定をすぐ変更せず、まずTerminalの出力を確認してください。

  2. 既存の設定を読み込む

    Home → 追加画面 → Type → Subscribeの順に進み、自分のサブスクリプションURLを入力して保存し、更新を実行します。サブスクリプションURLにアクセス認証情報が含まれる場合があります。URL全体を公開ログやスクリーンショットに載せないでください。

  3. ルールを確認する

    Configを開き、現在有効な設定を確認します。続けてGlobal Routingの選択内容も確認してください。インストールが完了しても、既存のルール、ポリシー名、サーバーパラメーターの整合性が保証されるわけではありません。

  4. 接続を確認する

    Homeで既存の設定に含まれる使用可能な接続を選び、スイッチをオンにします。接続状態とブラウザーでのアクセス結果をそれぞれ確認してください。権限の確認画面が表示された場合は、要求元を確かめてからシステムの案内に従ってください。

プログラムは正常に起動するのに接続できない場合は、インストールパッケージを何度も変更するのではなく、アドレス、ポート、認証情報、通信パラメーターを確認してください。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardではパラメーターの構成が異なります。サーバーアドレスだけをコピーしても設定は完了しません。当サイトでは接続先やサブスクリプションを提供・販売・推奨していません。

Global Routingの設定とインストールの問題を切り分ける

ブラウザーで特定のサイトにアクセスできても、通信が想定したポリシーを通っているとは限りません。接続スイッチがオンでも、すべての接続が同じ経路を通るとは限りません。まずGlobal Routingを確認し、現在の設定に含まれるルールと照らし合わせてください。ここではShadowrocket内の各設定の役割のみを比較します。

Config

おすすめ

現在の設定に含まれるルールに応じて処理方法を選びます。ルールの順序と参照先のポリシーによって結果が決まるため、Configを「一部は直接接続、一部はプロキシ」と単純化して考えないでください。

用途:既存ルールを使った日常利用や、振り分け結果の確認。

Proxy

クライアントが処理する接続をプロキシモードで扱います。Configの結果と比較する際に使えますが、システム上のすべてのプロセスの通信が必ず処理されるという意味ではありません。

用途:問題がルールのマッチングに関係しているか一時的に切り分ける。

Direct

クライアントが処理する接続を直接接続モードで扱います。このモードのままWebページが開けても、プロキシのパラメーターが正しい証拠にはなりません。

用途:ローカルネットワークから直接アクセスした場合の結果との比較。

Global RoutingでSceneを使用している場合は、実際に有効なシーンとその条件を確認し、上記の各モードと照らし合わせてください。Settings → On Demandは条件に応じた接続開始に関する設定です。依存関係のインストールや、AppImageの実行権限の修復には使いません。

よくあるエラー:症状に応じて対処し、再インストールを繰り返さない

AppImageをダブルクリックしても反応しない場合、まず何を確認する?

まずTerminalからファイルを実行し、エラーを確認します。Permission deniedが表示された場合は、chmod u+xが正常に実行されたか確認してください。権限がすでにある場合は、保存先のパーティションがnoexecでマウントされていないか確認します。実行可能なユーザーディレクトリへファイルを移して再試行できます。ディスク全体のセキュリティ設定は変更しないでください。

ファイルがディレクトリにあるのに、見つからないと表示されるのはなぜ?

Linuxは通常、カレントディレクトリから実行ファイルを検索しません。絶対パスを指定するか、ファイル名の前に./を付けてください。絶対パスを指定してもNo such file or directoryが出る場合は、プログラムのローダーや不足しているランタイムライブラリが原因ではないか確認します。ファイル名を何度も変更するだけでは解決しません。

Exec format errorが出たらrpmに切り替えるべき?

まずuname -mを実行してアーキテクチャを確認し、ダウンロードしたファイルの種類も確認してください。このエラーはアーキテクチャの不一致が原因の場合があります。拡張子を変更しても解決しません。ダウンロードが完了していない、または実行ファイルではない可能性もあるため、エラーだけで原因を決めつけず、ダウンロード履歴も確認してください。

ウィンドウは開くのに、接続をオンにするとWebページを開けない場合は?

起動できているインストール環境はそのままにして、Homeの接続パラメーター、Global Routing、Configを確認します。システム時刻が正確か確認してから、サーバーへの接続とルールの適用結果を個別にテストしてください。パラメーターの確認をせず、アンインストールや再インストールで解決しようとしないでください。

更新と削除:元に戻せるよう設定を保存する

更新前に現在の設定と必要な接続パラメーターを保存し、バックアップファイルの内容も確認してください。設定にはサブスクリプションURL、パスワード、鍵が含まれる場合があります。本人だけがアクセスできる場所に保管してください。アプリ画面のスクリーンショットを完全なバックアップとみなさないでください。また、アンインストール後に設定が必ず残る、または必ず削除されると決めつけないでください。

ディストリビューション、アーキテクチャ、インストール形式、起動方法、Terminalに最初に表示されたエラーを記録すると、「起動しない」という説明だけより原因を特定しやすくなります。インストールが完了している場合は、実際のエラーを中心に調べてください。リポジトリ、ファイル権限、接続設定を同時に変更すると、どの操作が影響したのか判断できなくなります。