この記事は、デスクトップ環境を備えたLinux端末を対象にしています。まずディストリビューションとCPUアーキテクチャを確認し、当サイトのダウンロードページからShadowrocketのインストールファイルを選びます。DebianやUbuntuでは通常deb、Fedoraなどdnfを使うシステムではrpm、ディストリビューションを問わず単体ファイルで実行したい場合はAppImageを選択します。以降では、ローカルファイルのインストール、実行権限の設定、起動時のエラー対応、更新の確認方法を説明します。接続設定には、すでに利用中のサービスとサブスクリプションが必要です。
1. ディストリビューションとアーキテクチャを確認して形式を選ぶ
ShadowrocketのLinux版インストールファイルは、ファイルの管理方法や依存関係の処理方法を決めるもので、対応プロトコルを決めるものではありません。拡張子だけで判断して実行せず、ディストリビューション、CPUアーキテクチャ、ダウンロードページに記載されたシステム要件を確認してください。AppImageはディストリビューションのパッケージ形式への依存を抑えられますが、同じファイルがすべてのアーキテクチャやシステム環境で動作するわけではありません。
ターミナルで次のコマンドを順に実行します。1つ目はディストリビューション情報、2つ目はカーネルが報告するマシンアーキテクチャを表示します。出力がx86_64の場合は、ダウンロードするファイルがx86-64に対応しているか確認してください。aarch64の場合は、ARM64向けのビルドがあるか確認します。ダウンロードページに対応するファイルがない場合、拡張子を変更してインストールを試さないでください。
cat /etc/os-release
uname -m
| システム | インストール形式 | 処理方法 |
|---|---|---|
| Debian、Ubuntuおよび互換システム | deb | aptでローカルファイルをインストールし、依存関係を解決します。 |
| Fedoraなどdnfを使うシステム | rpm | dnfでローカルファイルをインストールし、依存関係を解決します。 |
| その他のRPM系ディストリビューション | rpm | 互換性を確認したうえで、そのディストリビューションのパッケージマネージャーを使用してください。dnfのコマンドをそのまま使わないでください。 |
| 単体ファイルとして使いたい場合 | AppImage | アーキテクチャと動作条件を確認し、実行権限を付けてから起動します。 |
インストールファイルは全プラットフォーム向けダウンロードページのLinuxセクションから取得してください。掲載されているファイルを使用します。Linux版は無料です。iPhone / iPad版はApp Storeで2.99米ドルの買い切り、Mac(Appleシリコン / Intel)、Windows、Android版も無料です。プラットフォームごとに取得方法が異なるため、混同しないでください。
2. ダウンロード前に4つの項目を確認
以下では、ファイル選びと接続設定を分けて説明します。インストーラーが起動しても、確認できるのはローカルでの動作条件がほぼ満たされていることだけです。接続の可否は、利用中のサーバー設定、ネットワーク、現在のルーティング設定によって変わります。初回インストール時は、ネットワークを自動的に引き継ぐ設定を避けると、インストールエラーと接続エラーを切り分けやすくなります。
-
システムを確認
cat /etc/os-releaseとuname -mを実行し、ディストリビューションとアーキテクチャを記録します。以降の対話型コマンドはBash用です。必要に応じてbashを実行し、そのターミナル環境に切り替えてください。 -
ファイルを取得
当サイトのダウンロードページを開き、Linuxから、システムに合ったdeb、rpm、またはAppImageを選びます。ダウンロード後、ファイルマネージャーで保存先を確認してください。ダウンロードが完了していないファイルをインストーラーに渡さないでください。
-
インストールして起動
次のセクションにある該当コマンドでインストールまたは実行します。初回起動時は一般ユーザーで実行してください。パッケージマネージャーでのインストールなど、システム操作にのみ管理者権限が必要です。グラフィカルアプリ全体を
sudoで起動しないでください。 -
設定を読み込んで確認
Home →「+」→ Type → Subscribeで、すでに利用中のサブスクリプションを入力して保存し、更新します。使用可能な設定を選択してGlobal Routingを確認し、必要に応じて接続を有効にしてください。サブスクリプションを読み込めたことは、すべての宛先にアクセスできる証明にはなりません。
3. debはapt、rpmはdnfでインストール
以下のコマンドでは、インストールファイル名を指定する必要はありません。ターミナルに入力を求められたら、ダウンロードしたファイルの絶対パスを貼り付けてEnterキーを押します。パスの前後に引用符を入力しないでください。コマンド内の"$pkg"は、パスにスペースが含まれる場合にも対応します。ファイルマネージャーの「場所をコピー」でfile://形式のアドレスが表示された場合は、使用前にローカルファイルのパスへ変換してください。
Debian / Ubuntu:ローカルdebをインストール
read -r -p 'debファイルの絶対パスを入力してください:' pkg
dpkg-deb -f "$pkg" Package Architecture
sudo apt install "$pkg"
dpkg-debの行は、パッケージ名とアーキテクチャを読み取り、インストール前に再確認するためのものです。apt installにはリモートのパッケージ名ではなく、ローカルファイルのパスを指定します。設定済みのソフトウェアソースを使って依存関係の解決を試みます。依存関係が不足していると表示された場合は、システムのソフトウェアソースとネットワークを確認してください。依存関係を強制的に無視するオプションを使ったり、インストールを通すために不明なソースを追加したりしないでください。
Fedoraなどdnfを使うシステム:ローカルrpmをインストール
read -r -p 'rpmファイルの絶対パスを入力してください:' pkg
rpm -qp --queryformat '%{NAME} %{ARCH}\n' "$pkg"
sudo dnf install "$pkg"
rpm -qpは指定したファイルのメタデータを確認するだけで、実際のインストールはdnfが行います。トランザクションの概要を確認してから続行してください。システムコンポーネントが大量に削除される、アーキテクチャが合わない、依存関係が競合する場合は、操作をキャンセルしてください。ほかのRPM系ディストリビューションにはdnfが標準でインストールされていない場合や、パッケージに互換性がない場合があります。ダウンロードページの説明を先に確認してください。
- ファイルが見つからないと表示された場合:パス、大文字と小文字、ダウンロードの完了状態を確認してください。Webページのアドレスをローカルパスとして入力しないでください。
- アーキテクチャが一致しないと表示された場合:
uname -mの結果とパッケージのメタデータを照合し、ファイルを選び直してください。ファイル名の変更でアーキテクチャを変換することはできません。 - 依存関係を満たせないと表示された場合:ディストリビューションの互換条件とソフトウェアソースの状態を確認してください。依存関係のチェックを省略してインストールを完了させないでください。
4. AppImageに実行権限を付け、一般ユーザーで起動
AppImageは通常、単一ファイルのまま使用し、aptやdnfのインストールデータベースには登録されません。まずファイルをホームディレクトリ内の決まった場所に移し、実行権限を付けます。ブラウザーの一時フォルダーから常時実行しないでください。一時ファイルの削除後にプログラムが見つからなくなるおそれがあります。以下のコマンドもBashで実行し、実際のファイルの絶対パスを入力してください。
read -r -p 'AppImageファイルの絶対パスを入力してください:' app
chmod u+x "$app"
"$app"
chmod u+xはファイルの所有者に実行権限を追加するだけです。ファイルを誰でも書き込み可能な権限に変更する必要はありません。ダブルクリックしても反応しない場合は、ターミナルから起動するとエラーを確認しやすくなります。Permission deniedが表示された場合は、実行権限に加えて、ファイルシステムがnoexecでマウントされていないか確認してください。外部ストレージや制限付きディレクトリなどでは、実行権限を付けても起動できないことがあります。
FUSE関連のエラーは、使用中のディストリビューションに合わせて対処してください。AppImageの実行環境によってはFUSEが必要です。ターミナルに関連ライブラリの不足やマウント失敗が明示された場合は、使用中のディストリビューションのパッケージ情報を確認して、適合するコンポーネントをインストールしてください。他のディストリビューションのパッケージ名をそのまま使ったり、既存のFUSEコンポーネントを削除したりしないでください。
AppImageの実行には、基本的なグラフィカルセッションとシステム実行環境も必要です。ターミナルのみのサーバー、コンテナ、デスクトップセッションのないSSH環境では、ファイルを実行できてもグラフィカルウィンドウが表示されるとは限りません。cannot open displayなどが表示された場合は、インストールコマンドを繰り返すのではなく、ローカルのデスクトップセッションで確認してください。
5. 起動後はインストール・サブスクリプション・ルーティングの問題を切り分ける
ウィンドウが開いたら、Home、Config、Settingsに正常にアクセスできることを確認してから、すでに利用中の接続情報を読み込みます。プロトコルとサーバー側の設定は一致している必要があります。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuardは、自由に入れ替えられるラベルではありません。設定のTypeを別のプロトコルに変更しても、サーバー側との不一致は解消されません。
トラブル時は、次の3種類のGlobal Routing設定を区別して確認してください。ここでいう通信範囲は、Shadowrocketの処理経路に入った接続を指します。Linux上のすべてのアプリやプロトコルが自動的に処理されるという意味ではありません。Sceneは設定済みの条件に照らして実際の動作を確認してください。名前だけで接続先を判断しないでください。
Config
推奨現在の設定にあるルールに基づいて接続先を決めます。DOMAIN-SUFFIX、IP-CIDR、GEOIPなどのルールで照合し、最終的な接続先はルールの順序とFINALにも左右されます。ルールに一致しなければ必ず直接接続になるわけではありません。
適した用途:確認済みのルールベース設定があり、日常的に接続する場合。
Proxy
処理経路に入った接続を、選択中のプロキシポリシーにまとめて振り分けます。ルール照合の問題かプロキシ経路の問題かを一時的に切り分けるのに使えますが、選択したサーバーとプロトコル設定が有効か確認する必要があります。
適した用途:Configのルールやポリシー選択を短時間確認する場合。
Direct
処理経路に入った接続をプロキシサーバー経由にせず、宛先へ直接接続します。ローカルネットワークの基準状態を確認するのに適していますが、プロキシサーバーが利用可能かどうかの確認には使えません。
適した用途:ローカルDNS、ネットワークの出口、宛先側に問題がないか確認する場合。
最初の動作確認では変更する条件を1つに絞ります。元のGlobal Routingを記録し、一時的に設定を切り替えて同じ宛先を再テストし、完了後に元の設定へ戻してください。On Demandは条件に応じて接続を開始する設定であり、インストールを修復するスイッチではありません。初回のトラブルシューティングではSettings → On Demandで発動条件を確認し、自動接続によってテスト状態が変わらないようにしてください。
6. インストール・起動時によくある問題
debをダウンロードしたのに、Fedoraで開けないのはなぜですか?
まずcat /etc/os-releaseを実行してシステムを確認してください。debとrpmは異なるパッケージ管理形式で、拡張子を変えても互換性はありません。当サイトのダウンロードページから対応するrpmを選ぶか、AppImageの動作条件を確認してください。形式の不一致を回避するために、別のパッケージ管理ツールをシステムに混在させないでください。
AppImageにchmodを実行しても、起動できないと表示されるのはなぜですか?
まずls -l "$app"でファイルの所有者に実行権限があるか確認し、uname -mの結果とアーキテクチャを照合してください。Permission deniedの場合は、ファイルがあるパーティションがnoexecでマウントされていないか確認します。Exec format errorの場合は、アーキテクチャの不一致やファイルの不完全さを優先して調べてください。権限をさらに追加しないでください。
ウィンドウは開くのにHomeに接続項目がありません。インストールに失敗していますか?
接続項目が表示されないことは、インストール失敗を意味しません。利用中のサービスとサブスクリプションを使い、Home →「+」→ Type → Subscribeで追加・更新するか、手元の設定値を入力してください。当サイトは利用者がすでに所有するサブスクリプションの設定方法のみを説明し、接続サービスは提供していません。読み込み後も、プロトコル、サーバーポート、認証情報を確認してください。
ブラウザーは使えるのに、ターミナルのコマンドがプロキシを経由しません。どうすればよいですか?
アプリのプロキシ設定、システム側の通信処理方法、ターミナルプロセスのプロキシ環境変数を確認してください。ターミナルのツールがデスクトップのシステムプロキシを参照するとは限りません。プロキシアドレスを明示する必要がある場合は、現在の設定からリスニングアドレス、ポート、プロトコルを確認してください。既定のポートを推測しないでください。Linuxの権限や通信の引き継ぎに関する問題は、インストール形式の問題と分けて対処してください。
7. 更新・ロールバック・アンインストール前に確認すること
debやrpmをローカルにインストールしても、更新用ソフトウェアソースに自動で追加されるわけではありません。更新時は当サイトのダウンロードページで現在提供されているファイルを確認し、同じパッケージ管理方法で処理してください。インストール形式を変更する場合は、先に元のプロセスが終了していることを確認します。デスクトップメニューや旧ファイル、新ファイルが同時に残ると、実際に起動するファイルの場所が分かりにくくなります。
- 設定を保存:Configで現在使用中の設定を確認し、画面に用意されたエクスポートまたはバックアップ機能で保存してください。Homeで使用中の接続項目とGlobal Routingの設定も記録します。
- カスタム設定を記録:自分で変更したリスニングアドレス、ポート、DNS、ルールポリシーを控えてください。パスワード、秘密鍵、サブスクリプションの認証情報を含むバックアップを公開フォルダーに保存しないでください。
- deb / rpmを更新:アーキテクチャに合った新しいファイルをダウンロードし、前述の該当するインストールコマンドを実行してください。パッケージマネージャーのトランザクション概要を確認し、対象と依存関係の変更を把握してから進めます。
- AppImageを更新:古いプロセスを終了してから旧ファイルを残し、新しいファイルを決まったディレクトリに置いて実行権限を付け直します。デスクトップの起動項目を作成している場合は、参照先が新しいファイルになっているか確認してください。
- アンインストール前の確認:deb / rpmは、実際のパッケージ名を指定してパッケージマネージャーからアンインストールします。パッケージ名はインストールファイルのメタデータで確認できます。AppImageは実行ファイルと自分で作成した起動項目を削除すれば、その起動方法を取り除けます。ユーザー設定は残る場合があるため、別途確認してください。
更新後は、同じ既知の宛先、同じ接続項目、同じルーティング設定で比較してください。ウィンドウが開くだけではネットワーク機能を確認できません。サブスクリプションの更新、接続の確立、実際のアクセス結果も確認すると、プログラムの動作と設定の問題を切り分けられます。