本文適用於要在 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 會嘗試從目前啟用的軟體來源解析相依套件,因此本機安裝也可能需要網路連線。
- 確認:請先閱讀安裝計畫;若出現大量移除系統元件、降級或架構不相符的情況,請先取消,不要直接接受。
- 路徑:本機相對路徑需要加上
./等路徑標記;以上指令使用絕對路徑,可避免這類歧義。
若系統提示找不到相依套件,先確認發行版與安裝套件需求是否相符,再執行 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 使用。若僅供本機使用,監聽回送位址通常比開放給區域網路更合適;排除問題時不要任意擴大監聽範圍。
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 通常只要結束程式後刪除對應檔案即可移除;若另行建立了桌面項目,也須清除自行建立的項目檔。無論使用哪種格式,解除安裝程式與刪除使用者設定不一定是同一個步驟。準備重新安裝或移轉前,先確認備份可用,再決定是否清除使用者資料。