Linuxのデスクトップ環境にShadowrocketをインストールする方向けの記事です。Debian / Ubuntuでは通常deb、Fedoraではrpmを選び、その他のディストリビューションでは動作要件を満たす場合にAppImageを利用できます。まずOSとCPUアーキテクチャを確認し、実際にダウンロードしたファイルのパスを使ってインストールしてください。インストール後は既存の設定を読み込み、通信がクライアント経由になっているか確認します。ウィンドウが開くだけでは接続が有効とは限りません。
ディストリビューション、アーキテクチャ、入手先を確認する
Shadowrocket(Shadowrocket)のLinuxインストーラーは、当サイトのダウンロードガイドから入手できます。形式とアーキテクチャはダウンロードページの記載に従って選んでください。iPhone / iPad版はApp Storeで2.99ドルの買い切りです。システム要件はApp Storeのページをご確認ください。Mac(Appleシリコン/Intel)、Windows、Android、Linux版は無料です。アプリの入手と通信サービスは別のものです。利用するサブスクリプションは、ご利用のサービス提供元から入手してください。
ターミナルで次の2つのコマンドを実行します。1つ目でディストリビューション情報を確認し、特に ID、ID_LIKE、VERSION_IDを確認してください。2つ目ではカーネルが認識しているマシンアーキテクチャを確認します。デスクトップの見た目だけでパッケージ形式を判断しないでください。同じデスクトップ環境でも、異なるディストリビューションで動作する場合があります。
cat /etc/os-release
uname -m
ディストリビューションとパッケージマネージャー
- Debian / Ubuntu
- 通常はdebを使い、aptでローカルインストールと依存関係を処理します。
- Fedora
- 通常はrpmを使い、dnfでローカルインストールと依存関係を処理します。
- その他のディストリビューション
- まずダウンロードページで対応状況を確認してください。AppImageにも実行環境の要件があります。
rpmはパッケージ形式です。rpmを使うすべてのシステムでdnfが使われるとは限りません。
CPUアーキテクチャの確認
- x86_64
- 通常、ダウンロード項目のx64またはamd64に該当します。
- aarch64
- 通常、ダウンロード項目のarm64に該当します。
- その他の表示
- ダウンロードページに対応するビルドがあるか確認し、異なるアーキテクチャのパッケージを無理にインストールしないでください。
アーキテクチャ名には複数の表記があります。最終的にはダウンロードページの記載に従ってください。
拡張子を変更して形式を変換することはできません。debをrpmに変更しても、パッケージの構造は変わりません。以下のコマンドはインストーラーのファイル名を前提にせず、ワイルドカードで複数のファイルを一括インストールすることもありません。Bashターミナルで手順ごとに実行し、入力を求められたらダウンロードしたファイルの実際のパスを指定してください。パスの前後に引用符は付けず、パスにスペースが含まれる場合もそのまま入力できます。
Debian / Ubuntu:aptでローカルのdebをインストールする
ファイルのダウンロードが完了していることを確認してから、次のコマンドを実行してください。read -rで実際のパスを受け取り、realpath -eでファイルの存在を確認して絶対パスに変換したうえで、aptに渡します。現在の作業ディレクトリに依存せず、ファイル名をソフトウェアリポジトリ内のパッケージ名と誤認することもありません。
read -r -p "ダウンロードしたdebファイルの実際のパスを入力してください: " pkg
if [ -f "$pkg" ]; then
pkg=$(realpath -e -- "$pkg") && sudo apt install "$pkg"
else
printf '%s\n' "ファイルが見つかりません。パスを確認して、もう一度お試しください。"
fi
- 権限:システム全体へのインストールには
sudoを使います。パスワード入力中にターミナルに文字が表示されないのは正常です。 - 依存関係:aptは現在有効なソフトウェアリポジトリから依存関係を解決するため、ローカルインストールでもインターネット接続が必要になる場合があります。
- 確認:インストール計画を確認してください。システムコンポーネントの大量削除、ダウングレード、アーキテクチャの不一致が示された場合は、続行せずキャンセルしてください。
- パス:ローカルの相対パスには
./などのパス指定が必要です。上記の方法では絶対パスを使うため、この曖昧さを避けられます。
依存関係が見つからない場合は、まずディストリビューションとインストーラーの要件が一致しているか確認し、sudo apt updateでリポジトリのインデックスを更新してから再試行してください。インデックスを更新しても、互換性のないパッケージが互換性のあるものに変わるわけではありません。別のパッケージ管理プロセスがロックを保持している場合は、システム更新の完了を待ってください。ロックファイルを直接削除しないでください。
Fedora:dnfでローカルのrpmをインストールする
dnfを使うシステムでは、ローカルのrpmをインストール対象として直接指定できます。dnfが処理を実行し、依存関係の解決を試みます。依存関係のエラーを回避するために、依存関係を無視するインストール方法を使わないでください。インストール記録だけが残り、アプリが起動できなくなることがあります。
read -r -p "ダウンロードしたrpmファイルの実際のパスを入力してください: " pkg
if [ -f "$pkg" ]; then
pkg=$(realpath -e -- "$pkg") && sudo dnf install "$pkg"
else
printf '%s\n' "ファイルが見つかりません。パスを確認して、もう一度お試しください。"
fi
- ターミナルに表示されたパッケージのアーキテクチャを確認し、
uname -mの結果と一致するか確認してください。 - 依存関係と処理内容の概要を確認し、重要なデスクトップコンポーネントが意図せず削除されないことを確かめてください。
- インストール後、デスクトップのアプリメニューでShadowrocketを検索して起動します。
- 依存関係や信頼性に関するエラーが表示された場合は、エラーメッセージ全体を保存し、入手元とディストリビューションの要件を再確認してください。システムの検証機能を無効にして解決しようとしないでください。
rpmを使うその他のディストリビューションでは、dnfを採用しているとは限らず、同じ依存関係を満たすとも限りません。拡張子が同じという理由だけでFedoraのコマンドをそのまま使わないでください。各ディストリビューションのパッケージ管理方法に従い、まずダウンロードページで対応状況を確認してください。対応するビルドがない場合は、AppImageの実行要件を確認してください。
AppImage:実行権限を付けて一般ユーザーで起動する
AppImageは通常、単一ファイルで配布され、debやrpmのようにシステムのパッケージデータベースへ登録する必要はありません。ただし、システム環境から完全に独立しているわけではありません。CPUアーキテクチャ、グラフィカルセッション、基本ライブラリ、ビルドによってはFUSEが起動に影響することがあります。読み取りと実行が可能な、ユーザーのローカルディレクトリにファイルを置いて操作してください。
read -r -p "ダウンロードしたAppImageファイルの実際のパスを入力してください: " app
if [ -f "$app" ]; then
app=$(realpath -e -- "$app") && chmod +x -- "$app" && "$app"
else
printf '%s\n' "ファイルが見つかりません。パスを確認して、もう一度お試しください。"
fi
chmod +xはファイルに実行権限を付与するコマンドです。依存関係をインストールしたり、CPUアーキテクチャを変更したりするものではありません。&&でコマンドをつなぐと、権限の設定に失敗した場合に後続の起動処理を停止できます。普段の起動時にファイルの前へsudoを付けないでください。ユーザー設定が管理者のディレクトリに保存され、一般ユーザーからアクセスできなくなることがあります。
- Permission denied:ファイルの実行権限、上位ディレクトリへのアクセス権、マウント先のパーティションに
noexecが指定されていないか確認してください。実行可能なユーザーのローカルディレクトリに移動して再試行します。 - Exec format error:まずアーキテクチャとファイルが完全にダウンロードされているか確認してください。権限を何度も変更しても解決しません。
- FUSEが不足していると明示された場合:利用中のディストリビューションのドキュメントに従い、互換性のあるコンポーネントをインストールしてください。特定のシステムのパッケージ名をすべてのシステムに当てはめないでください。
- GLIBCの要件を満たしていないと表示された場合:システムの対応範囲を確認し、対応するシステムまたは互換ビルドを使用してください。システムの中核ライブラリを手動で置き換えないでください。
ターミナルから起動すると、エラー出力を確認できます。ダブルクリックしてもウィンドウが表示されない場合は、まず上記の方法で起動してメッセージを確認してから、次の対応を判断してください。AppImageがデスクトップのショートカットを自動作成するかどうかは、実際の連携方法によって異なります。メニューに表示されなくても起動失敗とは限りません。ファイル自体は元の場所に残しておく必要があります。
初回起動:設定を済ませてから通信経路を確認する
インストール後は、「アプリが起動する」「設定が有効である」「通信がプロキシを経由する」を分けて確認してください。Linuxのデスクトッププロキシ設定とアプリごとのネットワーク動作は必ずしも一致しません。ブラウザーがデスクトッププロキシに従っても、一部のターミナルアプリは従わないことがあります。Homeに接続状態が表示されているだけで、すべてのプロセスが同じ経路を使っていると判断しないでください。
-
アプリを起動する
アプリメニューまたはAppImageファイルからShadowrocketを起動し、まずHomeが正常に表示されることを確認します。画面が表示されない場合は、サブスクリプションを変更するのではなく、インストールやランタイムライブラリのエラーを解決してください。
-
設定を読み込む
サブスクリプションはご利用のサービス提供元から入手し、ConfigのSubscribeから追加します。サーバーの個別設定がある場合は、Home → Add Serverで該当するTypeを選んで入力してください。サブスクリプションの読み込みと個別設定の入力は用途が異なります。
-
ルーティング設定を確認する
Homeでサーバーを選び、Global Routingの現在の設定を確認します。Configを使う場合は、Configで有効な設定と、ルールが参照するポリシーが存在することも確認してください。
-
通信経路を検証する
接続を有効にした後、同じブラウザーで同じテスト先にアクセスし、クライアントの接続ログを確認してください。ブラウザーには記録があるのにターミナルにはない場合は、ターミナルアプリにプロキシが設定されているか確認します。インストールパッケージが原因だと決めつけないでください。
ターミナルアプリにローカルプロキシを設定する場合は、実際の設定画面でリッスンアドレス、ポート、プロトコルを確認してください。ポート番号を推測したり、HTTPプロキシのポートをSOCKS5として使ったりしないでください。ローカル端末だけで使う場合は、通常、LANに公開するよりループバックアドレスで待ち受ける方が適切です。トラブルシューティングのために、待ち受け範囲をむやみに広げないでください。
Global Routing:設定モードでルールの問題と接続の問題を切り分ける
以下で比較するのは、ShadowrocketのGlobal Routingの設定モードであり、インストーラーの形式ではありません。クライアントに届いた通信をどのように処理するかを決めるもので、すべてのLinuxアプリがデスクトッププロキシに従うようになるわけではありません。テストでは設定を一度に1つだけ変更し、変更前後のアクセス結果を記録してください。
Config
推奨有効な設定に含まれるルールとポリシーに従ってリクエストを処理します。DOMAIN-SUFFIXはドメインのサフィックス、IP-CIDRはIPアドレス範囲、GEOIPはIPアドレスの地域情報に基づいて照合し、FINALはそれまでのルールに一致しないリクエストを処理します。
おすすめの用途:有効なルール設定を使った通常の利用
Proxy
クライアントに届いたリクエストを現在のプロキシポリシーに送ります。ルールによる振り分けの影響を抑えてテストできます。Proxyでは通信できるのにConfigではできない場合は、Configのルール順序とポリシーの参照先を確認してください。
おすすめの用途:サーバーとプロキシ経路の一時的な確認
Direct
クライアントに届いたリクエストを直接接続で処理します。同じネットワークで比較するために使えますが、結果は現在のネットワーク環境によって異なります。直接接続の結果だけでサーバー設定が正しいとは判断できません。
おすすめの用途:ローカルネットワークとプロキシ経路の違いを比較
Sceneは、設定済みのシーンに応じて動作を適用する機能です。「すべてをプロキシ経由にする」固定のスイッチとして扱わないでください。シーンを設定していない場合は、まずConfig、Proxy、Directを明示的に選んで基本動作を確認します。自動接続の設定も、手動接続の確認後に行うと、トラブルシューティングへの影響を抑えられます。
インストール・更新・アンインストールのよくある質問
インストールできたのに、ウィンドウが表示されないのはなぜですか?
まず、利用可能なグラフィカルデスクトップセッションがあるか確認してください。AppImageは実際のパスを指定してターミナルから起動し、エラーを記録します。deb / rpmの場合は、パッケージマネージャーの処理が完了していることを確認してから、デスクトップメニューより起動してください。コマンドラインのみのリモートセッションは、ローカルのグラフィカルデスクトップとは異なります。
新しいインストーラーをダウンロードしたら、そのまま上書きできますか?
まずConfigで有効な設定をバックアップし、既存のサブスクリプション情報も安全に保存してください。deb / rpmは同じパッケージマネージャーで新しいローカルパッケージをインストールし、アップグレードを任せます。AppImageは旧プロセスを終了してから新しいファイルを保存し、実行権限を設定して起動を確認してください。
3種類の形式をすべてインストールする必要がありますか?
通常は1種類だけで十分です。複数のコピーがあると、アプリメニューに同じ項目が重複し、どのコピーが起動中か判断しにくくなることがあります。形式を切り替える前にアプリを終了して設定をバックアップし、元のインストール方法に従って古いコピーを削除してください。システムのパッケージ管理ディレクトリ内のファイルを手動で削除しないでください。
アンインストール時に使うパッケージ名はどこで確認できますか?
ダウンロードしたファイル名からパッケージ名を推測しないでください。debはdpkg-deb -f "$pkg" Package、rpmはrpm -qp --queryformat '%{NAME}\n' "$pkg"で確認できます。変数には、該当するインストーラーファイルのパスを指定してください。その後、確認したパッケージ名を使ってシステムのソフトウェア管理ツールからアンインストールします。
ウィンドウは正常に表示されるのに、サブスクリプションの更新がタイムアウトする場合は?
まずインストールの問題とネットワークの問題を切り分けてください。システム時刻とネットワーク接続を確認し、ご利用のサービス提供元から入手したリンクが完全かどうかも確かめます。更新時に表示された具体的なエラーを記録してください。ログを共有する前に、リンク内のtoken、サーバーの認証情報などの非公開情報を削除してください。
AppImageは通常、アプリを終了して該当ファイルを削除すれば取り除けます。別途デスクトップ項目を作成した場合は、その項目ファイルも削除してください。どの形式でも、アプリのアンインストールとユーザー設定の削除が同時に行われるとは限りません。再インストールや移行をする場合は、バックアップが使えることを確認してから、ユーザーデータを削除するか判断してください。