Debian、Ubuntu 系优先使用 deb,Fedora 等使用 dnf 的系统优先使用 rpm;需要以单文件形式保存程序时,再考虑 AppImage。本文先确认发行版与 CPU 架构,再完成本地包安装、执行权限设置和首次连接检查,适合准备在 Linux 桌面使用 Shadowrocket(小火箭)、且已有自己服务器或订阅配置的用户。
一、先确认发行版与架构,再选安装格式
安装格式和 CPU 架构是两个独立条件。deb、rpm 表示软件包格式,不能据此判断文件是否适用于当前处理器;AppImage 也不是跨架构文件。先运行下面两条命令,记录发行版的 ID、ID_LIKE 与架构输出,再到下载页核对可用包。
cat /etc/os-release
uname -m
uname -m 输出 x86_64 通常对应 x64 或 amd64,输出 aarch64 通常对应 ARM64。下载页没有列出匹配架构时,不要仅凭扩展名尝试运行,也不要把其他架构的文件改名后继续安装。格式选择可以按下表判断。
| 当前系统 | 优先格式 | 处理方式 |
|---|---|---|
| Debian、Ubuntu 及兼容系统 | deb | 使用 apt 安装本地文件并处理仓库中可用的依赖 |
| Fedora、使用 dnf 的兼容系统 | rpm | 使用 dnf 安装本地文件并检查依赖 |
| 其他 Linux 桌面环境 | AppImage | 先核对架构与运行要求,再添加执行权限 |
rpm 并不意味着所有使用 rpm 的系统都采用 dnf;如果发行版使用其他包管理器,应按该发行版的本地包安装方式操作。AppImage 虽然便于保存和移动,也仍然受系统库、挂载能力和桌面环境影响,不能保证在任意 Linux 系统直接运行。
二、整理本地文件与安装前检查
打开下载指南的 Linux 区域,选择匹配系统和架构的文件。下载完成后,在文件管理器中进入文件所在目录,使用“在终端中打开”等系统功能进入该目录。不要假定下载目录一定叫 Downloads,不同桌面语言和浏览器设置可能使用不同路径。
-
确认系统
运行
cat /etc/os-release与uname -m,核对发行版系列和 CPU 架构。 -
选择格式
进入本站下载指南的 Linux 区域,按系统选择 deb、rpm 或 AppImage,保存到当前用户可访问的目录。
-
整理文件
为便于照着后文输入,把已下载的本地文件分别重命名为
Shadowrocket.deb、Shadowrocket.rpm或Shadowrocket.AppImage,只处理自己实际下载的那一种格式。 -
检查目录
在文件所在目录打开终端,运行
pwd和ls -lh,确认当前路径以及文件是否完整下载,随后执行对应格式的命令。
后文的简短文件名只是本地重命名约定,不是下载服务器上的文件名,也不是需要另行寻找的版本。若保留原文件名,把命令中的文件名替换为实际名称;路径含空格时,用引号包住整个路径。不要用宽泛通配符一次安装目录里的多个历史包。
包管理器安装
- 本地 deb
./Shadowrocket.deb- 本地 rpm
./Shadowrocket.rpm- 安装权限
- 使用 sudo 调用包管理器
- 日常启动
- 使用当前桌面用户
安装需要管理权限,不代表图形程序应以 root 身份运行。
AppImage 运行
- 本地文件
./Shadowrocket.AppImage- 执行权限
chmod u+x- 存放位置
- 当前用户拥有的本地目录
- 启动方式
- 终端运行或文件管理器打开
文件具备执行权限后,还需满足所在文件系统的执行与挂载条件。
三、deb 安装:使用 apt 处理本地包
在 Debian、Ubuntu 系统中,优先通过 apt 安装本地 deb。命令中的 ./ 表示当前目录下的文件;省略它可能让 apt 把输入当成软件包名称搜索,而不是读取已经下载的安装文件。
sudo apt update
sudo apt install ./Shadowrocket.deb
第一条命令刷新当前已配置软件源的索引,第二条命令读取本地包并尝试满足依赖。执行前查看 apt 显示的操作摘要:如果出现大量移除桌面组件、无法满足依赖或架构不匹配,应取消安装并先核对发行版、软件源与文件架构,不要强制跳过依赖检查。
- 提示找不到文件:运行
ls -lh ./Shadowrocket.deb,确认命令执行目录及大小写一致。 - 提示依赖无法获取:先确认系统软件源能正常更新;这类问题属于包管理器或系统依赖层,尚未涉及 Shadowrocket 的连接配置。
- 提示包管理器被占用:等待系统更新程序结束,不要直接删除锁文件,也不要同时运行多个安装进程。
- 安装完成:在桌面应用列表搜索 Shadowrocket,以普通用户启动。是否立即显示入口取决于桌面菜单刷新情况。
后续手动更新 deb 时,同样可以对新下载的本地包执行 sudo apt install ./Shadowrocket.deb。本地安装不等于自动添加更新软件源;除非下载说明明确提供对应机制,否则不要据此推断系统更新程序会自动获取后续版本。
四、rpm 安装:使用 dnf 检查依赖
Fedora 等使用 dnf 的系统可以直接安装本地 rpm。进入文件目录后运行下列命令,检查 dnf 给出的事务摘要,再确认安装。不要把 deb 文件改成 rpm 扩展名,这不会改变内部包格式。
sudo dnf install ./Shadowrocket.rpm
dnf 会读取包信息,并从当前已启用的软件源尝试解决依赖。若安装失败,保留完整错误输出,先区分是文件不存在、架构不匹配、缺少依赖还是系统策略拒绝;这些情况的处理方法不同,不能通过重复点击图形启动入口解决。
- 看到
No such file or directory时,检查文件名与当前目录,不要立即改系统设置。 - 看到依赖冲突或所需能力无法提供时,核对系统是否受该包支持,以及软件源是否正常。
- 遇到来源或签名相关提示时,核对文件确实来自本站下载页,并遵循发行版的包验证要求,不默认关闭验证。
- 事务成功后,在桌面应用列表打开 Shadowrocket;若没有窗口,改为从终端启动实际安装的程序,保留错误信息。
五、AppImage 执行权限与首次启动
AppImage 的常见第一步不是安装,而是给文件添加执行权限。建议将文件存放在当前用户拥有的本地目录,避免直接从受限制的共享盘、临时下载目录或移动介质运行。确认文件名后执行:
chmod u+x ./Shadowrocket.AppImage
ls -l ./Shadowrocket.AppImage
./Shadowrocket.AppImage
chmod u+x 只给文件所有者增加执行权限,不需要使用 chmod 777。在 ls -l 的结果里,所有者权限部分出现 x,说明该位已经设置。终端启动有助于观察错误,尤其适合排查双击后没有反应的情况。
加了权限,为什么还显示 Permission denied?
先运行 ls -l ./Shadowrocket.AppImage 检查所有者与权限,再运行 findmnt -T ./Shadowrocket.AppImage 查看所在文件系统。若挂载选项包含 noexec,把文件移到允许执行的用户本地目录后重试,不要直接修改系统挂载策略。
提示 libfuse.so.2 缺失,要装哪个包?
这表示运行环境可能缺少 FUSE 2 兼容库。Debian 或较早的 Ubuntu 可先用 apt-cache policy libfuse2 查询;采用新包名的 Ubuntu 可查询 apt-cache policy libfuse2t64。只安装发行版实际提供且适用的库,不要卸载 FUSE 3 来替换。
出现 Exec format error,是权限没加对吗?
先用 uname -m 查看系统架构,再用 file ./Shadowrocket.AppImage 查看文件类型。如果架构不匹配,返回下载指南选择对应文件;反复执行 chmod 不会修复架构差异。
终端可以启动,为什么应用菜单找不到?
AppImage 文件能够运行,不代表系统已创建桌面菜单入口。先保持文件路径固定,确认终端启动正常;需要菜单入口时,按当前桌面环境的应用启动器设置添加该文件的绝对路径,不要指向随后会清理的临时目录。
如果错误明确涉及 FUSE 挂载,即使兼容库已安装,也可能受到容器环境或设备权限限制。此时优先考虑适合发行版的 deb 或 rpm,而不是直接授予整个图形程序管理员权限。网络配置尚未导入前,先把程序稳定启动作为单独目标完成。
六、首次连接:先验证配置,再检查流量姿态
程序能够打开与代理连接可用是两件事。本文以用户已有自己的服务商与订阅为前提:在 Home 添加已有服务器,或在 Add Server 中按配置类型选择 Subscribe 导入已有订阅;导入后确认列表出现服务器,并点选要使用的项目。不要把“导入完成”当成“已建立连接”。
- 核对配置:检查服务器地址、端口、协议及认证字段是否与原配置一致。Shadowsocks、VMess、VLESS、Trojan、Hysteria2、WireGuard 的字段不同,不能仅改 Type 就完成协议转换。
- 选中服务器:在 Home 确认目标项目被选中,再打开连接开关;若系统请求网络相关授权,先阅读具体范围,再决定是否允许。
- 运行测试:使用 Connectivity Test 观察结果,再用浏览器访问自己平时可访问的页面,区分客户端连接测试与实际应用流量。
- 单独检查订阅:订阅更新失败时先确认原链接有效、网络可达;不要通过修改服务器认证字段来修复订阅地址超时。
Global Routing 决定已接管流量的处理方式。排查时每次只改变一个条件,避免同时切换服务器、改 DNS 又换规则。下面对比的是 Shadowrocket 自身的处理姿态,不表示打开某个选项就一定接管 Linux 上所有进程的全部流量。
Config
推荐按当前启用的配置文件匹配规则,具体流量可能使用 PROXY、DIRECT 或 REJECT。日常使用前,先确认 Config 中启用的文件符合自己的网络需求。
适合:已有明确分流规则的日常连接。
Proxy
将已接管流量按代理姿态处理,适合与 Config 的结果做短时对照。它不能替代对系统代理、应用自身代理设置或网络接管范围的检查。
适合:临时判断问题是否与规则选择有关。
Direct
将已接管流量按直连姿态处理。若停留在 Direct,即使连接开关已打开,也不应据此认定目标请求正在经过选中的代理服务器。
适合:对照本地网络直连情况。
如果 Connectivity Test 成功但某个应用仍无法访问,继续检查该应用是否读取系统代理、是否有独立代理设置,以及目标域名命中了哪条规则。DOMAIN-SUFFIX 匹配域名后缀,IP-CIDR 匹配地址段,GEOIP 按 IP 地理数据库判断,FINAL 处理前面未匹配的流量;规则结果不同不等同于 Linux 安装失败。