本文说明 Shadowrocket Linux 安装前的发行版与架构检查、deb 和 rpm 的本地安装命令、AppImage 的执行权限,以及首次启动后的配置检查。适合已经拥有自己的服务商资料或订阅、需要在 Linux 桌面上安装客户端的用户。先确认系统和安装包匹配,再处理依赖;能够启动应用与能够建立连接是两个不同的检查阶段。
一、先确认发行版、架构与包格式
Shadowrocket(小火箭)的 Linux 安装包应从本站全平台下载页选择。deb、rpm、AppImage 是不同的分发形式,不代表不同的代理协议或线路套餐。不要只根据桌面外观判断发行版:GNOME、KDE 是桌面环境,不能据此决定使用 apt 还是 dnf。
先在终端执行下面两条只读命令。第一条查看系统标识,第二条查看处理器架构。分享输出用于排查时,通常只需要发行版名称、架构和错误文本,不需要提供账户信息。
cat /etc/os-release
uname -m
系统识别
- NAME / ID
- 读取 /etc/os-release,确认实际发行版名称。
- ID_LIKE
- 辅助判断发行版家族,不能代替该发行版自己的包管理说明。
- uname -m
- x86_64 与 aarch64 表示不同架构,安装包必须对应。
下载页实际提供的架构为准;换包格式不能解决架构不匹配。
包格式选择
- Debian / Ubuntu
- 优先选 deb,用 apt 安装本地文件并处理依赖。
- Fedora 系
- 优先选 rpm,用 dnf 安装本地文件并处理依赖。
- 其他发行版
- 查看 AppImage 适配说明,同时检查架构和运行环境。
AppImage 仍受系统库、桌面环境与运行时条件约束,并非对所有 Linux 系统通用。
如果系统运行在容器、无图形桌面的服务器或远程终端中,安装成功也不等于具备桌面应用的运行条件。先确认当前会话可以启动图形程序,再继续处理客户端。本文面向 Linux 桌面,不把桌面应用安装步骤当作服务器服务部署步骤。
二、Debian / Ubuntu:用 apt 安装本地 deb
在下载页选择与架构对应的 deb,记下下载文件的完整路径。下面命令在 Bash 中逐行执行;提示出现后输入实际的绝对路径,例如从文件管理器复制路径后粘贴,不要在输入内容外额外添加引号。代码中的变量接收真实文件路径,因此不需要猜测安装包文件名。
read -r -p "输入 deb 文件的绝对路径: " deb_path
dpkg-deb -f "$deb_path" Package Architecture
sudo apt update
sudo apt install "$deb_path"
dpkg-deb -f 读取包内元数据,不执行安装。常见的架构对应关系是系统报告 x86_64 时查看包的 amd64 标记,系统报告 aarch64 时查看 arm64 标记;最终仍需与下载页提供的包对应。若字段明显不符,应停止安装并重新选择。
- 使用绝对路径:
apt install需要识别这是本地文件。使用相对路径时应写成./开头,而不是只输入文件名。 - 检查依赖方案:apt 会列出准备安装、升级或移除的项目。若出现大量移除桌面组件的计划,先取消,检查软件源与发行版适配情况。
- 区分下载失败与依赖失败:文件无法读取先检查路径;依赖无法满足则检查软件源是否可用、系统是否在支持范围内,不要反复运行同一条命令。
不建议把 dpkg -i 后出现依赖错误理解为应用已经可以使用。dpkg 负责包的安装状态,但不会像 apt 一样主动从软件源解析并获取依赖。安装结束后应确认终端没有留下未配置软件包的错误,再从桌面应用列表启动 Shadowrocket。
三、Fedora 系:用 dnf 安装本地 rpm
rpm 同样要先看架构,而不是只看扩展名。Fedora 系通常使用 dnf 处理本地 rpm 及其依赖。其他采用 rpm 的发行版可能有自己的包管理工具与依赖命名,不应仅因为扩展名相同,就直接照搬 Fedora 的软件源配置。
read -r -p "输入 rpm 文件的绝对路径: " rpm_path
rpm -qp --queryformat '%{NAME} %{ARCH}\n' "$rpm_path"
sudo dnf install "$rpm_path"
查询命令只显示软件包名称和架构,便于核对下载结果。dnf 的事务确认界面会列出将要安装的内容与依赖来源。只有在包来自本站下载页、架构匹配且依赖方案合理时才继续;如出现包冲突,应保留错误输出,不使用跳过依赖或强制覆盖的参数掩盖问题。
- 出现
No such file or directory时,先确认输入的是文件的实际路径,而不是浏览器下载记录中的显示名称。 - 出现依赖无法满足时,检查当前发行版的软件源和适配要求,不从其他发行版随意拷贝系统库。
- 安装完成后以普通用户启动图形应用;安装时使用 sudo,不表示运行应用也需要 sudo。
四、AppImage:授权执行后从终端启动
AppImage 通常不经过 apt 或 dnf 注册安装。先将文件放入当前用户可写、长期保留的位置,再添加执行权限。若文件仍在浏览器的临时目录里,清理下载文件后可能无法再次启动;移动文件后,已有的桌面快捷方式也可能需要更新路径。
read -r -p "输入 AppImage 文件的绝对路径: " app_path
chmod u+x "$app_path"
"$app_path"
chmod u+x 只为文件所有者添加执行权限。最后一行直接运行该文件,终端能够保留启动错误,适合排查双击后没有窗口的情况。不要用 sudo 启动整个桌面客户端,也不要把扩大文件权限当作通用修复方法。
- Permission denied:除了执行位,还可能是文件所在分区以
noexec挂载。把文件移到允许执行的用户目录后再试,不先修改系统挂载策略。 - Exec format error:优先核对架构。x86_64 与 ARM 架构不能靠添加执行权限相互转换。
- FUSE 相关错误:部分 AppImage 运行时需要兼容的 FUSE 用户态库。按当前发行版说明检查依赖,不直接卸载或替换系统现有的 FUSE 组件。
- GLIBC 相关错误:说明运行环境可能低于包的要求。不要手动覆盖系统 libc;应核对适配要求,选择匹配的软件包或受支持的系统环境。
AppImage 文件本身不会因为赋予执行权限就自动成为系统服务,也不能据此推断它具备自动更新或桌面菜单集成功能。需要更新时回到下载页查看获取说明,退出正在运行的实例,再按该包的说明替换文件。
五、首次启动:把安装问题与连接问题分开
窗口能打开,说明已经通过一部分本地运行检查;此时网页不能访问,应转向连接资料、路由姿态和系统网络设置排查,而不是立即换包重装。以下流程以用户已有自己的服务商与订阅为前提。订阅地址可能包含访问凭据,分享截图或日志前应遮盖完整链接。
-
检查启动
从应用列表或 AppImage 文件启动 Shadowrocket,确认窗口能保持打开。若立即退出,先在终端重现并记录错误,不进入订阅排查。
-
导入资料
使用 Home → + → Type → Subscribe,填写自己的订阅地址并保存。地址结构示例为
https://example.com/sub?token=xxxx,这是格式示意,不能用于连接;具体入口以当前 Linux 构建实际界面为准。 -
检查配置
确认订阅更新后列表出现预期项目;再到 Config 核对当前配置及其策略引用。订阅获取失败与已有连接项目不可用是两类问题,应分别保留错误信息。
-
核对路由
在 Home → Global Routing 检查当前选择。需要验证配置规则时使用 Config,并确认配置中的策略名称有效;不要在 Direct 姿态下判断代理连接是否生效。
上述 Home、Config 和 Global Routing 用于定位对应功能;不同平台构建的入口呈现可能不同,不要为了寻找某个移动端菜单反复安装 Linux 包。系统代理与应用内路由也不是同一层:只有实际进入客户端处理范围的连接,才会受其路由姿态影响,不能由客户端开关推断所有设备流量都已接管。
六、安装后怎样选择 Global Routing
包格式不改变规则的匹配原则。完成安装后,可以用 Global Routing 区分“连接本身有问题”还是“配置规则没有命中”。下面仅比较 Shadowrocket 自身的路由姿态;测试前应确保已经导入自己的有效连接资料。
Config
推荐按当前配置的规则与策略处理连接。规则不等于一律代理,实际结果取决于命中的规则、策略目标及配置中的兜底处理。
适合:已有经过核对的配置,需要按规则使用的日常场景。
Proxy
将进入客户端处理范围的连接交给所选代理策略,可用于减少规则匹配对排查的干扰;不代表操作系统中的所有流量必然被接管。
适合:短时验证所选连接与配置规则之间的差异。
Direct
对进入客户端处理范围的连接采用直连处理。它不负责修复 DNS、系统防火墙或物理网络,也不能用于证明代理连接可用。
适合:对照检查本地网络可达性,排除代理路径的影响。
如果 Proxy 下可以访问、Config 下失败,应在 Config 中检查规则顺序和策略引用,而不是重装 deb 或 rpm。DOMAIN-SUFFIX 按域名后缀匹配,IP-CIDR 按地址网段匹配,GEOIP 按地址归属数据匹配,FINAL 用于兜底;这些规则的效果仍依赖实际配置和连接信息。
七、安装与更新常见问题
deb 下载好了,为什么 apt 还说找不到包?
先检查传给 apt 的是否为本地文件路径。用完整绝对路径,或进入文件所在目录后使用以 ./ 开头的相对路径。只输入文件名可能被当成软件源中的包名;同时确认浏览器已完成下载。
AppImage 双击没反应,需要重新下载吗?
先在终端执行本文的授权与启动命令,区分执行权限、架构和运行时错误。若报错指向 FUSE 或 GLIBC,应处理对应环境条件;重复下载同一文件通常不会改变系统依赖。
升级时可以从 deb 换成 AppImage 吗?
先通过应用提供的导出功能备份配置,再退出旧实例。不同包形式的配置位置、启动入口和桌面集成未必相同,不要假设会自动迁移。确认新实例可用后,再决定是否卸载旧包,避免误启两个实例。
已经安装成功,订阅却一直更新失败?
核对完整订阅地址、网络可达性及服务商返回的错误,不在终端或公开日志中泄露 token。若能启动窗口、读取本地配置,首先排查订阅获取路径,而不是把网络超时归因于包格式。
提交安装问题时,建议整理发行版名称、uname -m 输出、所选包格式、执行过的命令和完整错误文本。不要凭空猜测应用安装目录或可执行文件名称,也不要把含密码、PrivateKey 或订阅 token 的配置直接附在问题说明中。