Shadowrocket Linux版のインストール|deb・rpm・AppImageの選び方と実行権限の設定

Linuxディストリビューションに合わせてdeb・rpm・AppImageを選び、apt・dnfでのインストール方法と、AppImageの実行権限設定・初回起動手順を解説します。

この記事の概要

Debian・Ubuntu系ではdeb、Fedoraなどdnfを使うシステムではrpmが第一候補です。単一ファイルでアプリを管理したい場合はAppImageを検討しましょう。まずディストリビューションとCPUアーキテクチャを確認し、パッケージのインストール、実行権限の設定、初回接続の確認へ進みます。LinuxデスクトップでShadowrocketを使う方のうち、利用するサーバーまたはサブスクリプション設定をすでにお持ちの方を対象としています。

1. ディストリビューションとアーキテクチャを確認してインストール形式を選ぶ

インストール形式とCPUアーキテクチャは別々に確認する必要があります。deb・rpmはパッケージ形式を表すもので、現在のプロセッサーに対応しているかどうかを示すものではありません。AppImageもすべてのアーキテクチャで使えるわけではありません。まず次の2つのコマンドを実行し、ディストリビューションの ID、ID_LIKE とアーキテクチャの出力を確認してから、ダウンロードページで対応パッケージを確認してください。

cat /etc/os-release
uname -m

uname -m の出力が x86_64 の場合、通常はx64またはamd64に該当します。aarch64 は通常ARM64です。ダウンロードページに対応するアーキテクチャが記載されていない場合は、拡張子だけを見て実行しないでください。また、別のアーキテクチャ向けのファイルをリネームしてインストールすることもできません。形式は次の表を参考に選びましょう。

システム推奨形式インストール方法
Debian、Ubuntuおよび互換ディストリビューションdebaptでローカルファイルをインストールし、リポジトリから取得できる依存関係を解決する
Fedora、dnfを使用する互換ディストリビューションrpmdnfでローカルファイルをインストールし、依存関係を確認する
その他のLinuxデスクトップ環境AppImageアーキテクチャと動作要件を確認してから、実行権限を設定する

rpm形式だからといって、rpmを使うすべてのシステムでdnfが利用できるとは限りません。別のパッケージマネージャーを使うディストリビューションでは、その環境に適したローカルパッケージのインストール方法に従ってください。AppImageは保存や移動に便利ですが、システムライブラリ、マウント機能、デスクトップ環境の影響を受けるため、あらゆるLinux環境でそのまま動作するとは限りません。

2. ローカルファイルの準備とインストール前の確認

ダウンロードガイドのLinuxセクションを開き、システムとアーキテクチャに合ったファイルを選びます。ダウンロードが完了したら、ファイルマネージャーで保存先のフォルダーを開き、「端末で開く」などの機能を使って、そのフォルダーでターミナルを起動してください。ダウンロード先が必ず Downloads という名前とは限りません。デスクトップの表示言語やブラウザーの設定によってパスが異なる場合があります。

  1. システムを確認

    cat /etc/os-release と uname -m を実行し、ディストリビューションの系統とCPUアーキテクチャを確認します。

  2. 形式を選択

    当サイトのダウンロードガイドでLinuxセクションを開き、システムに応じてdeb・rpm・AppImageを選び、現在のユーザーがアクセスできるフォルダーに保存します。

  3. ファイルを整理

    後述のコマンドを入力しやすくするため、ダウンロードしたファイルを Shadowrocket.deb、Shadowrocket.rpm、または Shadowrocket.AppImage にリネームします。実際にダウンロードした形式のファイルだけを変更してください。

  4. 保存先を確認

    ファイルがあるフォルダーでターミナルを開き、pwd と ls -lh を実行して、現在のパスとファイルが正常にダウンロードされていることを確認します。その後、該当する形式のコマンドを実行してください。

ここで使う短いファイル名は、ローカルでリネームする場合の例です。ダウンロードサーバー上のファイル名でも、別途探す必要のあるバージョン名でもありません。元のファイル名を使う場合は、コマンド内のファイル名を実際の名前に置き換えてください。パスに空白が含まれる場合は、パス全体を引用符で囲みます。広い範囲に一致するワイルドカードを使って、フォルダー内の古いパッケージをまとめてインストールしないでください。

パッケージマネージャーでインストール

ローカルdebパッケージ
./Shadowrocket.deb
ローカルrpmパッケージ
./Shadowrocket.rpm
インストール時の権限
sudoでパッケージマネージャーを実行
通常の起動
現在のデスクトップユーザーで実行

インストールには管理者権限が必要ですが、GUIアプリをrootで実行する必要はありません。

AppImageを実行

ローカルファイル
./Shadowrocket.AppImage
実行権限
chmod u+x
保存場所
現在のユーザーが所有するローカルフォルダー
起動方法
ターミナルから実行、またはファイルマネージャーから開く

実行権限を付与しても、ファイルシステム側で実行が許可され、適切にマウントされている必要があります。

3. debのインストール:aptでローカルパッケージを処理する

Debian・Ubuntu系のシステムでは、aptを使ってローカルのdebパッケージをインストールする方法がおすすめです。コマンド内の ./ は、現在のフォルダーにあるファイルを示します。省略すると、aptがダウンロード済みのインストールファイルではなく、パッケージ名として検索することがあります。

sudo apt update
sudo apt install ./Shadowrocket.deb

最初のコマンドで設定済みリポジトリのパッケージ情報を更新し、次のコマンドでローカルパッケージを読み込んで依存関係の解決を試みます。実行前にaptが表示する処理内容を確認してください。デスクトップ関連コンポーネントの大量削除、依存関係の解決不能、アーキテクチャ不一致などが表示された場合は、インストールを中止して、ディストリビューション、リポジトリ、ファイルのアーキテクチャを確認しましょう。依存関係の確認を強制的に無効にしないでください。

後でdebを手動更新する場合も、新しくダウンロードしたローカルパッケージに対して sudo apt install ./Shadowrocket.deb を実行できます。ローカルパッケージのインストールによって、更新用リポジトリが自動で追加されるわけではありません。ダウンロードの案内に明記された仕組みがない限り、システムのアップデーターが今後のバージョンを自動取得すると考えないでください。

4. rpmのインストール:dnfで依存関係を確認する

Fedoraなどdnfを使うシステムでは、ローカルのrpmを直接インストールできます。ファイルのあるフォルダーに移動し、次のコマンドを実行してください。dnfが表示する処理内容を確認してから、インストールを確定します。debファイルの拡張子をrpmに変更しても、内部のパッケージ形式は変わりません。

sudo dnf install ./Shadowrocket.rpm

dnfはパッケージ情報を読み込み、有効になっているリポジトリから依存関係の解決を試みます。インストールに失敗した場合は、エラー出力をすべて保存し、ファイルが見つからないのか、アーキテクチャが合わないのか、依存関係が不足しているのか、システムのポリシーに拒否されたのかを切り分けてください。原因によって対処方法は異なり、アプリ一覧から何度も起動しても解決しません。

  1. No such file or directory と表示された場合は、ファイル名と現在のフォルダーを確認してください。すぐにシステム設定を変更する必要はありません。
  2. 依存関係の競合や必要な機能を利用できないというエラーが表示された場合は、そのパッケージが現在のシステムに対応しているか、リポジトリが正常かを確認してください。
  3. 入手元や署名に関するメッセージが表示された場合は、ファイルが当サイトのダウンロードページから取得されたものかを確認し、ディストリビューションのパッケージ検証要件に従ってください。検証を安易に無効化しないでください。
  4. 処理が正常に完了したら、デスクトップのアプリ一覧からShadowrocketを起動します。ウィンドウが表示されない場合は、実際にインストールされたプログラムをターミナルから起動し、エラー内容を保存してください。

5. AppImageの実行権限と初回起動

AppImageは、通常インストールではなく、ファイルに実行権限を付与するところから始めます。現在のユーザーが所有するローカルフォルダーに保存し、制限のある共有ドライブ、一時ダウンロードフォルダー、リムーバブルメディアからの直接実行は避けてください。ファイル名を確認してから、次のコマンドを実行します。

chmod u+x ./Shadowrocket.AppImage
ls -l ./Shadowrocket.AppImage
./Shadowrocket.AppImage

chmod u+x はファイルの所有者に実行権限を付与するコマンドです。chmod 777 を使う必要はありません。ls -l の結果で所有者の権限欄に x があれば、実行権限が設定されています。ターミナルから起動するとエラーを確認しやすく、ダブルクリックしても反応がない場合の切り分けにも役立ちます。

実行権限を付けたのに「Permission denied」と表示されるのはなぜ?

まず ls -l ./Shadowrocket.AppImage を実行して所有者と権限を確認し、次に findmnt -T ./Shadowrocket.AppImage で保存先のファイルシステムを確認してください。マウントオプションに noexec が含まれている場合は、実行可能なユーザー用ローカルフォルダーにファイルを移して再試行してください。システムのマウント設定を直接変更しないでください。

libfuse.so.2が見つからない場合、どのパッケージをインストールすればよい?

実行環境にFUSE 2互換ライブラリが不足している可能性があります。Debianまたは古いUbuntuでは、まず apt-cache policy libfuse2 で確認してください。新しいパッケージ名を採用しているUbuntuでは、apt-cache policy libfuse2t64 を確認します。ディストリビューションで提供され、現在の環境に適したライブラリだけをインストールしてください。FUSE 3を削除して置き換えないでください。

「Exec format error」が表示されるのは、権限の設定ミス?

まず uname -m でシステムのアーキテクチャを確認し、続けて file ./Shadowrocket.AppImage でファイルの種類を確認してください。アーキテクチャが一致しない場合は、ダウンロードガイドに戻って対応ファイルを選びます。chmodを繰り返しても、アーキテクチャの不一致は解消されません。

ターミナルからは起動できるのに、アプリメニューに表示されないのはなぜ?

AppImageを実行できても、システムにアプリメニューの項目が自動作成されるとは限りません。まずファイルの保存場所を固定し、ターミナルから正常に起動できることを確認してください。メニューに登録する場合は、使用中のデスクトップ環境のアプリランチャー設定で、ファイルの絶対パスを指定します。後で削除する一時フォルダーを参照先にしないでください。

エラーにFUSEのマウントが明記されている場合は、互換ライブラリをインストール済みでも、コンテナ環境やデバイス権限の制限が原因となることがあります。その場合は、GUIアプリ全体に管理者権限を与えるのではなく、ディストリビューションに適したdebまたはrpmの利用を検討してください。ネットワーク設定を読み込む前に、まずアプリを安定して起動できる状態にしましょう。

6. 初回接続:設定を確認してから通信の状態をチェック

アプリが起動することと、プロキシ接続が利用できることは別です。ここでは、利用するサーバーやサービスの契約がすでにあることを前提に説明します。Homeで既存のサーバーを追加するか、Add Serverで設定の種類に応じてSubscribeを選び、既存のサブスクリプションを読み込みます。読み込み後、サーバー一覧に項目が表示されることを確認し、使用するものを選択してください。「読み込み完了」は「接続済み」を意味しません。

  1. 設定を確認:サーバーのアドレス、ポート、プロトコル、認証情報が元の設定と一致するか確認してください。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardでは設定項目が異なります。Typeだけを変更しても、プロトコルを変換することはできません。
  2. サーバーを選択:Homeで使用する項目が選択されていることを確認してから、接続スイッチをオンにします。システムからネットワーク関連の許可を求められた場合は、具体的な許可範囲を読んでから判断してください。
  3. テストを実行:Connectivity Testで結果を確認した後、普段アクセスできるページをブラウザーで開き、クライアントの接続テストと実際のアプリ通信を区別してください。
  4. サブスクリプションを個別に確認:更新に失敗した場合は、まず元のURLが有効で、ネットワークから到達できることを確認してください。サブスクリプションURLのタイムアウトを、サーバーの認証情報を変更して解決しようとしないでください。

Global Routingは、すでに取り込まれた通信の処理方法を決定します。トラブルシューティングでは一度に変更する条件を1つに絞り、サーバーの切り替え、DNSの変更、ルールの変更を同時に行わないでください。以下で比較するのはShadowrocket内の通信処理の設定です。選択肢を変更しても、Linux上のすべてのプロセスの全通信が必ず取り込まれるわけではありません。

Config

おすすめ

現在有効な設定ファイルのルールに従って通信を振り分けます。実際の通信はPROXY、DIRECT、REJECTのいずれかで処理される場合があります。普段使う前に、Configで有効になっているファイルが自分のネットワーク環境に合っているか確認してください。

おすすめの用途:振り分けルールが設定済みの日常的な接続。

Proxy

取り込まれた通信をプロキシ経由で処理します。Configの結果と短時間比較する場合に利用できます。システムプロキシ、アプリ独自のプロキシ設定、通信の取り込み範囲の確認に代わるものではありません。

おすすめの用途:問題がルール選択に関係するか一時的に確認する。

Direct

取り込まれた通信を直接接続として処理します。Directのままでは、接続スイッチがオンでも、対象のリクエストが選択中のプロキシサーバーを経由しているとは限りません。

おすすめの用途:ローカルネットワークへの直接接続と比較する。

Connectivity Testに成功しても特定のアプリにアクセスできない場合は、そのアプリがシステムプロキシを参照するか、独自のプロキシ設定があるか、対象ドメインにどのルールが適用されたかを確認してください。DOMAIN-SUFFIXはドメインのサフィックス、IP-CIDRはIPアドレスの範囲、GEOIPはIP地理データベースに基づいて判定します。FINALはそれ以前のルールに一致しなかった通信を処理します。ルールの処理結果が異なっていても、Linuxへのインストール失敗を意味するわけではありません。

Shadowrocket をダウンロード