Shadowrocket Linux 版安裝:deb、rpm、AppImage 怎麼選?apt/dnf 安裝指令與 chmod +x

依 Linux 發行版選擇 deb、rpm 或 AppImage,附 apt/dnf 本機安裝指令,以及為 AppImage 加上執行權限後啟動的方法。

本文快速導覽

本文適用於要在 Linux 圖形桌面安裝 Shadowrocket 的使用者:Debian/Ubuntu 通常選 deb,Fedora 通常選 rpm;其他發行版可在符合執行需求時選用 AppImage。先確認系統與 CPU 架構,再依實際下載路徑安裝;安裝完成後,還要匯入現有設定並確認流量是否確實由代理接手,不能只看「視窗能開啟」就認定「連線已生效」。

先確認發行版、架構與取得方式

Shadowrocket(小火箭)的 Linux 安裝套件請從本站下載指南取得,並依下載頁提供的格式與架構選擇。iPhone/iPad 版在 App Store 一次性付費 $2.99,系統需求以 App Store 頁面標示為準;Mac(Apple 晶片與 Intel)、Windows、Android、Linux 版免費。取得用戶端與網路服務是兩回事,後續使用的訂閱請向你的服務商取得。

在終端機執行以下兩個指令。第一個讀取發行版資訊,請特別留意 ID、ID_LIKE 與 VERSION_ID;第二個查看核心回報的機器架構。不要只憑桌面外觀判斷套件格式,同一個桌面環境也能執行於不同發行版。

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 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
  1. 確認終端機列出的套件架構與 uname -m 相符。
  2. 閱讀相依套件與交易摘要,確認不會意外移除重要的桌面元件。
  3. 安裝完成後,在桌面應用程式選單搜尋 Shadowrocket 並啟動。
  4. 若出現相依套件或信任相關錯誤,請保留完整提示內容,重新確認下載來源與發行版需求;不要透過關閉系統驗證機制來解決。

其他採用 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,否則可能將使用者設定寫入管理員目錄,導致一般使用者之後無法正常存取。

從終端機啟動的好處是能保留錯誤訊息。若雙擊後沒有視窗,先依照上述方式查看提示,再決定下一步。AppImage 是否會自動建立桌面捷徑,取決於實際整合方式;沒有選單項目不代表啟動失敗,檔案本身仍須保留在原位置。

首次開啟:先設定,再確認流量是否由代理接手

安裝完成後,請分別確認「應用程式已啟動」、「設定有效」與「流量已進入代理」。Linux 桌面代理設定與應用程式本身的網路行為並不完全相同:瀏覽器可能遵循桌面代理設定,某些終端機程式則不會。不能只看 Home 顯示連線狀態,就認定所有程序都使用相同的連線路徑。

  1. 啟動應用程式

    從應用程式選單或 AppImage 檔案開啟 Shadowrocket,先確認 Home 能正常顯示。若尚未進入介面,請先處理安裝或執行程式庫錯誤,不必急著更換訂閱。

  2. 匯入設定

    向你的服務商取得訂閱,並在 Config 的 Subscribe 入口新增;若已有單一伺服器參數,請在 Home → Add Server 依照對應的 Type 填寫。匯入訂閱與輸入單一伺服器參數的用途不同。

  3. 檢查策略

    在 Home 選擇伺服器,並確認 Global Routing 目前的模式。使用 Config 時,也要在 Config 確認目前啟用的設定檔,以及規則引用的策略是否確實存在。

  4. 確認流量接手狀況

    連線開啟後,使用同一個瀏覽器前往同一個測試網址,並查看用戶端的連線記錄。若瀏覽器有記錄、終端機卻沒有,請確認終端機程式是否已設定代理,不要先把問題歸因於安裝套件。

若要為終端機程式填入本機代理位址,請先在實際設定中確認監聽位址、連接埠與協定,不要猜測連接埠號,也不要把 HTTP 代理連接埠當成 SOCKS5 使用。若僅供本機使用,監聽回送位址通常比開放給區域網路更合適;排除問題時不要任意擴大監聽範圍。

Global Routing:透過模式區分規則問題與連線問題

以下比較的是 Shadowrocket 本身的 Global Routing 模式,與安裝套件格式無關。這些模式決定已進入用戶端的流量如何處理,不會自動讓所有 Linux 程式遵循桌面代理設定。測試時一次只更改一項設定,並記錄變更前後的連線結果。

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 則先結束舊程序,再保存新檔案、設定執行權限並啟動確認。

需要同時安裝三種格式嗎?

通常保留一種即可。多份應用程式可能產生重複的選單項目,讓人難以判斷目前執行的是哪一份。切換格式前,先結束應用程式並備份設定,再依原本的安裝方式移除舊版本;不要手動刪除系統套件管理目錄中的檔案。

解除安裝時要使用哪個套件名稱?

不要根據下載檔名猜測套件名稱。deb 可用 dpkg-deb -f "$pkg" Package 查詢,rpm 可用 rpm -qp --queryformat '%{NAME}\n' "$pkg" 查詢;其中的變數應指向保留的對應安裝檔案。接著在系統軟體管理工具中,依查到的套件名稱解除安裝。

視窗正常,但訂閱更新逾時怎麼辦?

先區分安裝問題與網路問題:確認系統時間正確、網路可用,再檢查向服務商取得的連結是否完整。記下更新時的具體錯誤;分享記錄前,請移除連結中的 token、伺服器憑證及其他私密資訊。

AppImage 通常只要結束程式後刪除對應檔案即可移除;若另行建立了桌面項目,也須清除自行建立的項目檔。無論使用哪種格式,解除安裝程式與刪除使用者設定不一定是同一個步驟。準備重新安裝或移轉前,先確認備份可用,再決定是否清除使用者資料。

下載 Shadowrocket