本文重點

本文適合準備在 Linux 桌面安裝 Shadowrocket 的使用者:先確認發行版與 CPU 架構,再選擇 deb、rpm 或 AppImage,依步驟完成安裝、設定執行權限並檢查首次連線。指令請使用實際下載檔案的完整路徑,不依賴固定的安裝檔名稱;連線設定則以使用者已有的服務商與訂閱為前提。

一、下載前確認發行版與 CPU 架構

Shadowrocket(小火箭)提供 Linux 版,取得方式分為兩種:iPhone/iPad 版在 App Store 一次性付費 $2.99,開發者為 Shadow Launch Technology Limited;系統需求請以 App Store 頁面標示為準。Mac(Apple 晶片與 Intel)、Windows、Android、Linux 版免費。本文所需安裝檔請從本站全平台下載頁選取,不要在指令中自行拼接下載網址。

副檔名表示封裝格式,並不代表 CPU 架構。即使同為 Linux,x86_64 與 aarch64 也不能直接混用。請先在終端機執行以下唯讀指令,記下發行版名稱、版本與機器架構,再核對下載頁目前提供的安裝檔說明。

cat /etc/os-release
uname -m

發行版資訊

查詢位置
/etc/os-release
ID
用來辨識 ubuntu、debian、fedora 等發行版。
ID_LIKE
若有此檔案,可協助判斷所屬發行版家族。
VERSION_ID
記錄系統版本,排查執行環境相容性問題時可用。

屬於同一發行版家族,不代表所有版本都能執行相同的二進位檔。

架構資訊

查詢指令
uname -m
x86_64
常見的 Intel/AMD 64 位元架構,套件標示通常為 amd64 或 x86_64。
aarch64
ARM 64 位元架構,套件標示通常為 arm64 或 aarch64。
選擇依據
請以下載頁實際列出的架構為準,不要因副檔名相同就混用。

AppImage 同樣有架構限制,不能轉換成適用於其他 CPU 架構的版本。

二、如何選擇 deb、rpm 與 AppImage

優先選擇與發行版套件管理工具相符的格式:這類格式可記錄安裝狀態,並在安裝時處理軟體來源中可取得的相依套件。若不希望將應用程式主體安裝至系統目錄,可考慮 AppImage;但仍會受到系統執行環境、桌面環境及檔案系統掛載選項影響,並非所有 Linux 系統都能雙擊即用。

格式常見系統安裝或啟動方式注意事項
debDebian、Ubuntu 及相容系統apt install 加上本機檔案路徑本機路徑需包含斜線;建議使用完整路徑。
rpmFedora 及使用 dnf 的相容系統dnf install 加上本機檔案路徑其他 rpm 系統的相依套件與管理指令可能不同。
AppImage符合套件執行條件的 Linux 桌面環境設定執行權限後執行檔案須符合架構、可執行的掛載位置及所需執行環境。
  1. 確認系統資訊

    執行 cat /etc/os-release 和 uname -m,不要只憑桌面外觀判斷發行版。

  2. 選擇格式

    前往本站下載頁的 Linux 區段,依發行版與已提供的架構選擇檔案,並等待瀏覽器下載完成。

  3. 記錄路徑

    在檔案管理員中查看檔案屬性,記下包含檔名的完整路徑。下文若提示在終端機輸入路徑,請勿額外加上引號。

  4. 執行安裝

    依照對應章節操作;查看套件管理工具列出的變更,確認不會意外移除系統元件後再繼續。

  5. 檢查啟動

    安裝完成後,從應用程式選單開啟;AppImage 則從終端機執行,並保留錯誤輸出以利排查。

三、Debian/Ubuntu:使用 apt 安裝本機 deb

以下指令請在 Bash 終端機中執行。第一行會提示輸入已下載 deb 的完整路徑,例如從檔案屬性複製的路徑;只輸入路徑本身,即使路徑包含空格也不必手動加引號。後續指令已用雙引號保護變數。先查看套件資訊,再讓 apt 執行安裝。

read -r -p '請輸入 deb 檔案的完整路徑:' pkg
dpkg-deb --field "$pkg" Package Version Architecture
sudo apt update
sudo apt install "$pkg"

apt update 更新的是系統軟體來源索引,不是 Shadowrocket 的設定或訂閱。apt install 會讀取本機 deb,並嘗試從已啟用的軟體來源安裝相依套件。請輸入完整路徑:若只輸入不含斜線的檔名,apt 可能會將它視為軟體來源中的套件名稱來搜尋。

四、Fedora 系:使用 dnf 安裝本機 rpm

在使用 dnf 的系統上,也建議交由套件管理工具處理本機 rpm,而非只用底層工具強制寫入檔案。請先讀取套件資訊,確認名稱與架構,再執行安裝。以下變數與 deb 章節互相獨立,可在新的 Bash 終端機中直接操作。

read -r -p '請輸入 rpm 檔案的完整路徑:' pkg
rpm -qp --queryformat '%{NAME}\n%{VERSION}-%{RELEASE}\n%{ARCH}\n' "$pkg"
sudo dnf install "$pkg"

dnf 會依據目前啟用的軟體來源解析相依套件。即使某個系統使用 rpm 格式,也不表示它的相依套件版本與 Fedora 完全相同。若出現 nothing provides,請查看缺少的程式庫名稱與版本限制,並確認發行版相容條件,不要立即略過相依套件。

五、AppImage:執行權限、存放位置與啟動方式

AppImage 通常可直接以單一檔案執行,不會透過 apt 或 dnf 登記安裝資訊。建議將檔案存放在使用者有寫入權限的固定目錄,避免清理下載目錄時誤刪。以下先讀取完整路徑,再只為檔案擁有者增加執行權限,最後以目前的一般使用者身分啟動。

read -r -p '請輸入 AppImage 檔案的完整路徑:' app
ls -l -- "$app"
chmod u+x -- "$app"
"$app"

chmod +x 是常見的新增執行權限寫法;此處使用 chmod u+x,將變更範圍限定為檔案擁有者。啟動應用程式時不應預設加上 sudo,否則可能在使用者設定目錄中建立由 root 擁有的檔案,之後以一般使用者啟動時反而無法儲存設定。

已新增執行權限,為什麼仍顯示 Permission denied?

先執行 ls -l -- "$app" 查看檔案擁有者的執行權限,再用 findmnt -T "$app" 查看所在的掛載點。若掛載選項包含 noexec,請將檔案移至允許執行的本機使用者目錄後再試,不要為了執行單一檔案而修改整個外接磁碟的安全設定。

終端機顯示缺少 libfuse.so.2,該安裝什麼?

這表示部分 AppImage 執行環境需要 FUSE 2 相容程式庫。請先使用 apt 或 dnf 的搜尋功能,查詢目前發行版提供的相容程式庫,並參考系統文件後再安裝。不同系統的套件名稱可能是 libfuse2、libfuse2t64 或其他名稱;不要直接移除現有的 FUSE 元件。

出現 Exec format error,是檔案權限不足嗎?

通常應先檢查二進位檔架構。執行 file -- "$app",並與 uname -m 的結果比對。重新執行 chmod 無法將 x86_64 程式轉換成 ARM 程式;若檔案類型異常,也請檢查下載是否完整。

雙擊後沒有視窗,如何查看錯誤?

從終端機執行 "$app",並保留最先出現的錯誤訊息。缺少共享程式庫、圖形工作階段無法使用及沙箱初始化失敗是不同問題,不要一律透過停用沙箱或以 root 身分啟動來處理。

六、首次連線:區分安裝、連線與規則問題

能開啟視窗只表示應用程式已啟動,不代表已有可用的連線。Shadowrocket 不包含連線服務;本站不提供、不販售或推薦節點與訂閱。請使用自己現有服務商提供的參數或訂閱,匯入前確認來源,避免將完整訂閱網址放進公開截圖、記錄檔或終端機歷史紀錄。

在 Home 檢查匯入的項目與目前選取項目,在 Config 檢查正在使用的設定檔,並在 Settings 查看相關設定。各平台的操作入口可能不同,請依實際介面操作,不要將手機系統的 VPN 授權步驟直接套用到 Linux。若系統要求網路權限,請先閱讀用途,再依系統提示授權。

Global Routing → Config

建議

依目前設定處理已接管的要求。請先確認設定檔已啟用,再查看規則比對結果;例如 DOMAIN-SUFFIX 比對網域後綴,FINAL 則提供最終處理策略。

適用情境:已有確認過的設定檔,日常依規則使用。

Global Routing → Proxy

讓已接管的要求以代理方式處理,可暫時用來判斷問題出在連線還是規則。這不代表系統上所有程式的所有流量都會自動受到接管。

適用情境:已有可用連線,暫時排查規則是否影響存取。

Global Routing → Direct

讓已接管的要求直接連線。切換至此模式後,若某個網站可以開啟,只能表示直連路徑可用,不能據此判定代理服務正常。

適用情境:比對直連結果,排查代理路徑故障。

若瀏覽器與終端機的結果不同,請進一步區分系統代理、應用程式自身的代理設定及環境變數。終端機程式不一定會讀取桌面系統代理;不要自行假設本機監聽連接埠固定為某個數字,請以目前設定顯示的協定、位址與連接埠為準。

env | grep -iE '^(http|https|all|no)_proxy='

此指令只會顯示目前終端機已有的代理環境變數,不會修改設定。若沒有任何輸出,不代表 Shadowrocket 沒有執行;若有輸出,也請確認變數指向的本機連接埠確實正在監聽。排查時一次只修改一項,並記錄修改前後的存取結果。

七、更新與解除安裝:沿用原本的安裝方式

deb 和 rpm 後續更新時,請從本站下載頁取得適用於系統的新套件,再分別交由 apt 或 dnf 安裝。手動安裝本機套件不代表已訂閱應用程式更新來源,因此系統例行更新不一定會更新 Shadowrocket。更新安裝檔與在 Home 重新整理訂閱是兩件事:前者更新應用程式,後者更新既有服務的連線資訊。