Shadowrocket Linux 安裝教學:deb、rpm、AppImage 如何選擇?apt 與 dnf 安裝指令

依 Linux 發行版選擇安裝套件:Debian/Ubuntu 使用 deb 搭配 apt,Fedora 等使用 rpm 搭配 dnf;不想安裝可選 AppImage 並設定執行權限,另附首次啟動檢查項目。

本文重點

安裝 Shadowrocket(小火箭)Linux 版前,請先確認發行版與處理器架構,再選擇 deb、rpm 或 AppImage。本文適用於使用圖形桌面的 Linux 使用者:先說明如何挑選安裝套件,再提供讀取實際下載檔案的 Bash 指令,最後分別排查相依性錯誤、執行權限、桌面啟動與連線設定問題。安裝完成不代表已具備可用連線;後續操作以使用者已有自己的服務商與訂閱為前提。

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

Debian、Ubuntu 通常優先選擇 deb;Fedora 通常選擇 rpm 並使用 dnf;若不希望將套件登錄至系統套件資料庫,可考慮 AppImage。套件格式與處理器架構是兩項獨立條件:檔案副檔名正確,不代表其中的程式適用於目前的 CPU。

請前往全平台下載頁,進入 Linux 區域,依頁面實際提供的套件格式與架構選擇。Linux 版免費;iPhone/iPad 版在 App Store 一次性付費 $2.99,Mac(Apple 晶片與 Intel)、Windows、Android 版本也免費。iPhone/iPad 的系統需求以 App Store 頁面標示為準。

  1. 確認系統資訊

    開啟終端機並執行 cat /etc/os-release,讀取 ID、ID_LIKE 與 PRETTY_NAME。不要只憑桌面外觀判斷發行版;相同的桌面環境可能運行於不同的套件管理系統。

  2. 確認架構

    執行 uname -m。輸出 x86_64 代表常見的 64 位元 Intel/AMD 架構,aarch64 則代表 64 位元 ARM。請只選擇下載頁明確標示支援該架構的檔案。

  3. 選擇安裝套件

    前往下載頁的 Linux 區域,選擇適用於該發行版的格式。使用 rpm 不代表一定要使用 dnf;其他 rpm 系發行版請依照各自的套件管理器說明操作,不要直接套用 Fedora 指令。

  4. 記下檔案位置

    在瀏覽器的下載記錄中開啟檔案所在資料夾,確認下載已完成。以下指令預設檔案位於 $HOME/Downloads;如果系統使用其他下載資料夾,請將指令中的路徑改為實際位置。

cat /etc/os-release
uname -m
環境優先格式處理方式
Debian / Ubuntudeb使用 apt 安裝本機檔案,並處理可滿足的相依套件
Fedorarpm使用 dnf 安裝本機檔案,並顯示交易計畫
相容的圖形桌面環境AppImage設定執行權限後啟動,仍須符合執行環境需求

二、Debian/Ubuntu:使用 apt 安裝 deb

使用 apt install 安裝本機 deb 時,必須將檔案路徑作為參數傳入。相對路徑前的 ./ 不可省略,否則 apt 可能會將輸入內容視為套件名稱。apt 可以從已啟用的套件來源取得相依套件,但無法保證舊版發行版具備程式所需的所有程式庫。

以下指令請在 Bash 中執行。指令會列出下載資料夾中的 deb,讓你依編號選擇實際檔案,不必依賴固定檔名。資料夾中可能有其他軟體的安裝套件,請確認選取的是剛從本站下載的 Shadowrocket 檔案;若找不到符合條件的檔案,就不會執行安裝。

(
  cd "$HOME/Downloads" || exit 1
  shopt -s nullglob
  packages=(./*.deb)
  if ((${#packages[@]} == 0)); then
    printf '%s\n' '此資料夾沒有 deb 檔案,請確認下載位置。'
    exit 1
  fi
  PS3='請輸入 Shadowrocket deb 檔案對應的編號:'
  select pkg in "${packages[@]}"; do
    if [[ -n "$pkg" ]]; then
      sudo apt install "$pkg"
      break
    fi
    printf '%s\n' '請輸入清單中的有效編號。'
  done
)

三、Fedora:使用 dnf 安裝 rpm

在 Fedora 上使用 dnf 安裝本機 rpm,可在同一筆交易中檢查相依性與衝突。不要只因為副檔名相同,就認定為其他發行版建置的 rpm 一定可用;程式庫名稱、相依性限制與桌面整合方式都可能不同。

(
  cd "$HOME/Downloads" || exit 1
  shopt -s nullglob
  packages=(./*.rpm)
  if ((${#packages[@]} == 0)); then
    printf '%s\n' '此資料夾沒有 rpm 檔案,請確認下載位置。'
    exit 1
  fi
  PS3='請輸入 Shadowrocket rpm 檔案對應的編號:'
  select pkg in "${packages[@]}"; do
    if [[ -n "$pkg" ]]; then
      sudo dnf install "$pkg"
      break
    fi
    printf '%s\n' '請輸入清單中的有效編號。'
  done
)

若出現架構不符、相依性衝突或套件驗證錯誤,請停止交易並保留完整錯誤訊息。不要加入略過驗證或強制覆寫檔案的參數。若終端機提示已有相同套件,請先確認目前的安裝狀態;不要反覆執行安裝指令來排除連線失敗。

deb 安裝重點

適用環境
Debian/Ubuntu 及相容發行版
本機路徑
以 ./ 開頭,並將完整路徑加上引號
相依套件來源
目前系統已啟用的套件來源
錯誤線索
相依套件名稱、架構與 apt 交易摘要

安裝檔案與相依環境必須同時相容。

rpm 安裝重點

本文適用環境
Fedora 與 dnf
本機路徑
將實際 rpm 路徑傳給 dnf
確認檔案位置
dnf 執行前的交易清單
停止條件
架構不符、發生衝突或驗證錯誤

不要將 Fedora 指令套用至所有 rpm 系統。

四、AppImage:設定執行權限後啟動

AppImage 通常以單一可執行檔運作,不必像 deb、rpm 那樣先建立套件安裝交易,但不代表完全不需要系統相依套件。處理器架構、圖形環境、執行程式庫與掛載條件仍會影響啟動。請先將檔案移至打算長期保存的位置,避免清理下載資料夾後遺失啟動檔案。

以下指令同樣在 Bash 中執行,只會為選取的檔案新增目前使用者的執行權限,並以目前使用者身分啟動。不要遞迴變更整個下載資料夾的權限,也不要使用 sudo 啟動整個圖形程式。

(
  cd "$HOME/Downloads" || exit 1
  shopt -s nullglob
  packages=(./*.AppImage)
  if ((${#packages[@]} == 0)); then
    printf '%s\n' '此資料夾沒有 AppImage 檔案,請確認下載位置。'
    exit 1
  fi
  PS3='請輸入 Shadowrocket AppImage 檔案對應的編號:'
  select pkg in "${packages[@]}"; do
    if [[ -n "$pkg" ]]; then
      chmod u+x -- "$pkg" && "$pkg"
      break
    fi
    printf '%s\n' '請輸入清單中的有效編號。'
  done
)

五、首次啟動:分開檢查安裝與連線

視窗能開啟,表示已通過程式啟動這一關;能否建立連線,還取決於使用者已有的設定、網路、名稱解析與所選策略。本站不提供、不販售也不推薦節點或訂閱。不要只因一次連線逾時就判定安裝套件有問題。

  1. 確認以一般使用者身分啟動:從應用程式選單或 AppImage 啟動 Shadowrocket。若程式要求必要的系統授權,請逐項閱讀提示;不要事先以 root 身分執行整個用戶端。
  2. 準備已有的資料:確認服務商提供的位址、連接埠、協定與驗證資訊。匯入既有訂閱時,請將連結視為憑證妥善保管,不要貼到公開的求助內容中。
  3. 確認設定位置:在 Home 查看既有的連線項目,在 Config 查看要使用的設定檔,並在 Settings 核對相關設定;各平台可見的選項以目前介面實際提供的項目為準。
  4. 確認路由模式:若介面提供 Global Routing,請先確認目前使用的是 Config、Proxy 還是 Direct。Direct 不適合作為「代理是否正常運作」的判斷依據。
  5. 逐項測試:先使用相同的目標進行測試,每次只變更一個變數。記錄連線前後是否逾時、是否出現名稱解析錯誤,以及是否只有特定目標失敗;不要同時更換協定、規則與 DNS。

若要依規則進行測試,可在 Config 中使用以下最小規則片段了解順序。example.com 是教學用網域,不是服務位址;PROXY 必須對應目前設定中可用的策略。不要直接用這段內容覆蓋既有的完整設定。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

規則會由上往下比對,命中後採用該行指定的策略;FINAL 放在最後,用來處理未命中的請求。上述範例只示範讓 192.168.0.0/16 連線至區域網路,不涵蓋所有私有位址。no-resolve 表示不會為該條 IP 規則主動進行網域解析,不能用來修復所有 DNS 問題。

六、Global Routing:依用途選擇測試模式

在安裝排查階段,路由模式的用途是縮小問題範圍,並非判定哪種模式永遠較好。以下比較僅適用於 Shadowrocket 本身的設定;實際接管範圍仍受平台授權與目前網路連線方式影響,不應視為無條件接管系統所有流量。

Config

建議

依目前啟用的設定規則選擇策略。先確認 Config 中生效的設定,再檢查規則順序與 FINAL;規則可指定 PROXY、DIRECT 或 REJECT,不要假定所有未命中的請求都會直連。

適用情境:日常使用已有明確規則的設定,以及驗證規則

Proxy

將用戶端接管的請求設為代理模式,暫時排除規則分流的影響。若相同目標在 Proxy 下可連線、在 Config 下卻無法連線,應優先檢查比對規則與策略,而不是重新安裝程式。

適用情境:暫時找出規則與連線之間的差異

Direct

將用戶端接管的請求設為直連模式,可觀察目前網路直接連線的結果。Direct 下連線成功不代表代理連線成功,也不能據此確認訂閱內容有效。

適用情境:建立直連基準,對照網路狀況

七、常見問題:依錯誤發生階段排查

尋求協助前,先判斷問題發生在下載、套件管理器安裝、程式啟動或連線階段。保留完整錯誤訊息、發行版名稱與處理器架構,比只說「打不開」更有幫助;分享記錄前,請移除驗證資訊、訂閱連結與個人位址。

apt 顯示找不到套件,是下載錯誤嗎?

先確認輸入內容是否包含檔案路徑。位於目前資料夾的 deb 路徑應以 ./ 開頭;本文的選擇指令碼會保留此前綴。若顯示檔案不存在,請回到瀏覽器下載記錄確認實際資料夾,並檢查檔案是否仍在下載中;不要憑記憶手動輸入檔名。

dnf 安裝到一半出現相依性衝突,該怎麼辦?

先取消交易並記下發生衝突的套件名稱,再確認系統發行版與架構。不要直接接受會大量移除套件的交易,也不要強制覆寫來繞過問題。回到下載頁確認所選 rpm 適用的環境,再決定是否改用頁面提供的其他相容格式。

AppImage 已設定權限,為什麼仍無法執行?

在終端機執行檔案,依錯誤類型排查:Permission denied 請檢查檔案權限與掛載選項;Exec format error 請確認架構;libfuse.so.2 錯誤請檢查 FUSE 相容程式庫。三種原因各不相同,反覆執行 chmod 只對第一種情況中的部分問題有幫助。

視窗已開啟,但連線失敗,需要重新安裝嗎?

先在 Home 確認選取的項目,再檢查 Global Routing 的目前模式與 Config 中生效的規則。確認自己的連線位址、連接埠與驗證資料仍有效,並使用相同目標分別觀察直連與代理結果。只有在有證據顯示啟動檔案遺失或安裝交易失敗時,才回到安裝步驟處理。

更新時直接刪除舊檔案就可以了嗎?

deb、rpm 應透過對應的套件管理器安裝從本站下載的新套件,並仔細閱讀升級交易內容;不要手動刪除系統資料夾中的程式檔案。更新 AppImage 前,請先結束正在執行的程式,再更換保存的檔案並確認執行權限。更新前請備份自己的設定,更新後重新確認啟動項目與生效設定。

下載 Shadowrocket