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、安卓版本也免费。iPhone / iPad 的系统要求以 App Store 页面标注为准。
-
确认系统
打开终端,执行
cat /etc/os-release,读取ID、ID_LIKE与PRETTY_NAME。不要只凭桌面外观判断发行版,同一桌面可以运行在不同软件包体系上。 -
核对架构
执行
uname -m。输出x86_64表示常见的 64 位 Intel / AMD 架构,aarch64表示 64 位 ARM。只选择下载页明确标注支持该架构的文件。 -
选择安装包
进入下载页的 Linux 区域,选择发行版适用的格式。使用 rpm 不等于一定使用 dnf;其他 rpm 系发行版应遵循自身包管理器说明,不要直接套用 Fedora 命令。
-
记录文件位置
在浏览器下载记录中打开文件所在目录,确认下载已完成。下文命令默认文件在
$HOME/Downloads;若系统使用其他下载目录,请将命令中的目录改为实际位置。
cat /etc/os-release
uname -m
| 环境 | 优先格式 | 处理方式 |
|---|---|---|
| Debian / Ubuntu | deb | apt 安装本地文件,并处理可满足的依赖 |
| Fedora | rpm | 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
)
- 先读事务摘要:查看准备安装、升级或移除的项目。若出现大量意外移除,输入
n取消,先检查发行版兼容性,不要直接确认。 - 遇到下载依赖失败:确认系统软件源可用;必要时执行
sudo apt update更新索引,再重试同一文件。更新索引不会把不兼容的软件包变为兼容。 - 遇到依赖无法满足:记录具体依赖名与要求,核对当前发行版是否受下载页支持。不要随意添加其他发行版的软件源,也不要强制忽略依赖。
- 安装成功后:从桌面的应用菜单搜索 Shadowrocket。安装命令返回成功与图形程序能够启动是两个检查点,需要分别确认。
三、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
)
- 出现 Permission denied:检查文件的执行权限及所在分区。即使已执行
chmod u+x,带有noexec挂载选项的分区仍可能禁止运行;可移到允许执行的个人目录后重试。 - 出现 libfuse.so.2 相关错误:这通常指向 FUSE 2 兼容库缺失。在 Debian / Ubuntu 可先执行
apt-cache policy libfuse2 libfuse2t64查看本发行版可用项,再依据发行版说明处理,不要盲目照抄另一个系统的库名。 - 出现 Exec format error:优先核对
uname -m与下载页标注的架构。添加执行权限不能修复架构不匹配。 - 双击没有窗口:先在终端运行该文件读取错误。如果是在没有图形会话的远程终端里启动,应回到本机桌面会话检查,而不是反复修改权限。
五、首次启动:把安装与连接分开检查
窗口能打开,说明已经跨过程序启动这一关;是否能建立连接,还取决于用户已有配置、网络、名称解析与所选策略。本站不提供、不销售、不推荐节点或订阅。不要把一条连接超时直接判断为安装包故障。
- 确认正常用户启动:从应用菜单或 AppImage 启动 Shadowrocket。若程序提出必要的系统授权,逐项阅读提示;不要预先以 root 身份运行整个客户端。
- 准备已有资料:核对自己的服务商提供的地址、端口、协议与认证信息。导入已有订阅时,将链接视为凭据保存,不要贴到公开求助内容中。
- 核对配置位置:在 Home 检查已有连接条目,在 Config 检查要使用的配置,在 Settings 核对相关设置;不同平台的可见选项以当前界面实际提供的项目为准。
- 确认路由姿态:若界面提供 Global Routing,先确认当前处于 Config、Proxy 还是 Direct。Direct 不适合作为“代理是否已工作”的判断依据。
- 逐项测试:先用同一个目标测试,再只修改一个变量。记录连接前后是否超时、是否出现名称解析错误、是否仅特定目标失败;不要同时更换协议、规则与 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 应先退出运行中的程序,再更换保存的文件并确认执行权限。更新前备份自己的配置,更新后重新核对启动入口与生效配置。