この記事の概要

この記事では、LinuxデスクトップにShadowrocketをインストールする方法を説明します。まずディストリビューションとCPUアーキテクチャを確認し、サイトのダウンロードページからdeb、rpm、AppImageを選びます。パッケージ形式に応じてインストールするか、実行権限を付与してください。最後に、端末のエラーに応じて依存関係、マウント制限、初回起動時の問題に対処します。コマンドには実際にダウンロードしたファイルのパスを指定するため、特定のバージョン番号やファイル名には依存しません。

ディストリビューション・アーキテクチャ・パッケージ形式を確認

deb、rpm、AppImageは配布形式の違いであり、プロキシのプロトコルではありません。Ubuntu、Debianおよび互換ディストリビューションでは通常debを選びます。Fedoraなどdnfを使うディストリビューションでは、一般にrpmを選びます。AppImageはシステムのパッケージマネージャーを使わず、アプリのファイルを個別に保管したい場合に適しています。ただし、CPUアーキテクチャやシステム実行環境の要件は満たす必要があります。

cat /etc/os-release
uname -m

1つ目のコマンドでシステムのIDやID_LIKEなどを確認し、2つ目でマシンのアーキテクチャを調べます。一般的なx86_64とaarch64は互換性がありません。ダウンロードページで選ぶファイルのアーキテクチャが、使用するデバイスと一致していることを確認してください。パッケージ形式をダウンロードできても、あらゆるディストリビューションやアーキテクチャで動作するとは限りません。

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

deb
Debian、Ubuntuなどの互換システム向けです。
rpm
ここではFedoraでdnfを使う方法を紹介します。
依存関係の処理
aptやdnfは、設定済みのソフトウェアリポジトリから依存関係を解決できます。
アプリの管理
インストール履歴はシステムのパッケージマネージャーで管理されます。

拡張子を書き換えて変換せず、システムに合ったパッケージ形式を選びます。

AppImageで起動

ファイルの保存場所
現在のユーザーが読み取り・実行できるディレクトリに保存します。
実行権限
chmod u+xでユーザーに実行権限を付与します。
起動方法
ファイルの絶対パスを指定して起動します。
動作条件
アーキテクチャ、システムライブラリ、マウント条件を満たす必要があります。

パッケージマネージャーを使わない場合も、システム依存関係が不要になるわけではありません。

ダウンロードページからLinux用ファイルを入手

Shadowrocketのダウンロードページを開き、Linuxの項目から使用する環境に合った形式を選びます。ブラウザーで実際に保存された場所も確認してください。ここではファイル名を固定せず、後述のコマンドで実際のパスを入力します。バージョンやアーキテクチャの情報がファイル名に含まれていても使用できます。

  1. システムを確認

    端末を開き、上記の2つのコマンドを実行して、ディストリビューションとアーキテクチャを確認します。デスクトップの見た目だけでUbuntuかFedoraかを判断しないでください。

  2. 形式を選択

    ダウンロードページの「Linux」を開き、システムに合わせてdeb、rpm、AppImageを選択します。ダウンロード項目に記載されたアーキテクチャも確認してください。

  3. ファイルの場所を確認

    ブラウザーのダウンロード履歴から保存先を開き、ファイルのプロパティで絶対パスを確認します。ダウンロードが完了する前にインストールを実行しないでください。

  4. コマンドを実行

    Bash端末で該当する手順のコマンドを実行します。パスの入力を求められたら、絶対パスを貼り付けてください。引用符や省略形のチルダパスは使わず、Enterキーを押します。

debのインストール:aptでローカルパッケージと依存関係を処理

Debian、Ubuntuなどの互換システムでは、aptを使ってローカルのdebをインストールする方法をおすすめします。パッケージを個別に展開するのとは異なり、設定済みのシステムリポジトリから必要な依存関係もインストールできます。以下の入力内容は現在の端末の変数にのみ保存されます。実行前に、パスがサイトからダウンロードしたdebファイルを指していることを確認してください。

read -r -p 'debファイルの絶対パスを入力:' DEB
if [ -f "$DEB" ]; then
  sudo apt install "$DEB"
else
  printf '%s\n' 'ファイルが見つかりません。絶対パスをもう一度確認してください。'
fi

aptにインストール予定のパッケージが表示されたら、追加・更新・削除される内容を確認してから続行するか判断してください。sudoのパスワードを入力しても、通常、端末には文字が表示されません。入力できていないわけではありません。依存関係が見つからない場合は、ソフトウェアリポジトリ、ネットワーク、ディストリビューションの対応状況を確認してください。不明な提供元から同名のシステムライブラリを追加しないでください。

インストール後、アプリ一覧からShadowrocketを検索して起動します。ローカルのdebをインストールしても、アプリ更新用のリポジトリがシステムに自動追加されるわけではありません。今後の更新では、サイトのダウンロードページから対応ファイルを入手し、aptで処理してください。

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

Fedoraではdnfを使ってローカルのrpmをインストールでき、依存関係もシステムのリポジトリから解決されます。rpmを使うほかのディストリビューションでは、パッケージ管理コマンドや依存関係の名称が異なる場合があります。拡張子が同じだからといって、Fedoraの手順がすべて使えるとは限りません。

read -r -p 'rpmファイルの絶対パスを入力:' RPM
if [ -f "$RPM" ]; then
  sudo dnf install "$RPM"
else
  printf '%s\n' 'ファイルが見つかりません。絶対パスをもう一度確認してください。'
fi

依存関係の競合が発生した場合は、端末に表示されたパッケージ名とエラーの原因を記録し、まずディストリビューションが適合しているか確認します。インストールを続けるために依存関係の確認を省略したり、セキュリティポリシーを無効にしたり、システムコンポーネントを強制的に置き換えたりしないでください。インストール後は通常、アプリ一覧から起動できます。メニューが更新されない場合は、アプリ一覧を開き直し、それでも表示されなければデスクトップセッションの再ログインを検討してください。

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

AppImageは単体で使えるアプリファイルです。長期保存する場所にファイルを置いてから、実行権限を付与してください。ブラウザーの一時フォルダーには保存しないでください。外付けドライブ、共有ディレクトリ、実行が制限されたマウントポイントにある場合、実行権限が設定されていても起動できないことがあります。

read -r -p 'AppImageファイルの絶対パスを入力:' APPIMAGE
if [ -f "$APPIMAGE" ]; then
  chmod u+x -- "$APPIMAGE" && "$APPIMAGE"
else
  printf '%s\n' 'ファイルが見つかりません。絶対パスをもう一度確認してください。'
fi

chmod u+xはファイルの所有者に実行権限を付与するコマンドです。全ユーザーに書き込み権限を与える必要はなく、グラフィカルアプリ全体をsudoで起動する必要もありません。初回の動作確認では端末を開いたままにしてください。ダブルクリックしても反応しない場合、端末に具体的なエラーが表示されることがあります。

インストール後はルーティング設定と接続情報を分けて確認

アプリが起動したことは、アプリが動作することを示すだけで、接続可能な状態であることを意味しません。用途を把握している既存の接続情報やサブスクリプションを使い、HomeとConfigでインポート結果を確認してください。インポートと更新の手順は使い方ガイドをご覧ください。サブスクリプションの更新は接続情報を更新する操作であり、Linuxアプリのインストールパッケージを更新するものではありません。

接続のトラブルシューティングを始める前に、Home → Global Routingを確認してください。以下で比較するのはShadowrocket自体のルーティング設定です。サーバーアドレス、ポート、認証情報、プロトコルのパラメーターを補うものではなく、AppImageのファイル権限にも影響しません。

Config

おすすめ

現在有効なConfigのルールに従ってリクエストを処理します。まずConfigの内容を確認してください。ルールは通常、上から順に照合されます。Configをすべてのリクエストが直接接続される設定だと解釈しないでください。

適した用途:内容を確認済みのConfigを使い、ルールに沿って日常的に通信を振り分ける場合。

Proxy

対象となるリクエストを選択中のプロキシに処理させます。ルールの選択による違いを比較できますが、プロキシ自体が接続可能である必要があります。

適した用途:ルーティング結果を一時的に比較し、ルールの問題か接続の問題かを切り分ける場合。

Direct

対象となるリクエストを直接接続で処理します。この状態で直接接続できても、インポート済みのプロキシ情報が有効だとは判断できません。

適した用途:ローカルネットワークから直接接続した場合の動作を確認する場合。

たとえばDOMAIN-SUFFIX,example.com,DIRECTは、指定したドメインのサフィックスに対してDIRECTを適用します。FINAL,DIRECTは、それ以前のルールに一致しなかったリクエストに最終ポリシーを適用します。これはルール構文の例であり、既存のConfigを上書きする指示ではありません。インストールの問題を調べるときは、一度に変更する設定を1つに絞り、Configの変更とシステム権限の問題を混同しないようにしてください。

初回起動がブロックされた場合:エラーの原因に応じて対処

Linuxには、すべてのディストリビューションで共通する「許可」ボタンはありません。まず、実行権限の不足、実行禁止のマウントポイント、アーキテクチャの不一致、デスクトップ環境やシステムのセキュリティポリシーによる制限のどれに該当するか確認します。起動できない原因をすべてセキュリティブロックと決めつけたり、システム全体の保護を無効にして回避したりしないでください。

AppImageをダブルクリックしても起動しない場合は?

端末で前のセクションのコマンドを実行してください。ファイルマネージャーにProperties → Permissionsがある場合は、実行権限を確認できます。項目名はデスクトップ環境によって異なるため、実際の画面に従ってください。何度もダブルクリックするより、端末の出力を確認するほうが原因を特定しやすくなります。

chmodを実行したのにPermission deniedと表示されるのはなぜ?

まずls -l "$APPIMAGE"でファイルの権限を確認し、次にfindmnt -T "$APPIMAGE"で保存先のマウントポイントを調べます。オプションにnoexecが含まれている場合は、現在のユーザーが実行できるローカルディレクトリに移して再試行してください。管理対象のデバイスでは管理者に相談し、マウントポリシーを自分で変更しないでください。

Exec format errorと表示されます。インストールに失敗していますか?

まずfile "$APPIMAGE"とuname -mを実行し、アーキテクチャを照合してください。一致しない場合は、別のダウンロード項目を選び直してください。ファイルがHTMLドキュメントとして認識された場合、誤ったページを取得した可能性があります。サイトのダウンロードページに戻り、ファイルを再ダウンロードしてください。

FUSEやシステムのセキュリティポリシーのエラーは、どう対処すればよいですか?

FUSEのエラーが出た場合は、使用中のディストリビューションのドキュメントに従って互換サポートを追加してください。ログにSELinuxまたはAppArmorによるアクセス拒否が明記されている場合は、エラー記録を保存し、ディストリビューションのポリシー管理手順に従って対処します。保護機能全体を無効にしたり、原因を調べずにroot権限でアプリを起動したりしないでください。

上記の変数は元の端末でのみ有効です。別の端末を使う場合は、パスをもう一度入力してください。さらに調査する場合は、ディストリビューション、アーキテクチャ、パッケージ形式、実行したコマンド、エラー全文を記録します。ログを共有する前に、サブスクリプションURL、認証情報などの機密情報を削除してください。「起動できない」問題と「起動後に接続できない」問題を分けて対応できます。

Shadowrocketの入手と設定方法

iPhone / iPad版はApp Storeで$2.99の買い切りです。Mac(Appleシリコン / Intel)、Windows、Android、Linux版は無料です。Linuxではダウンロードページから対応形式を選び、インストール後、チュートリアルに沿って既存の接続情報をインポートしてください。