Shadowrocket for Linux: Install DEB, RPM, or AppImage

Choose a DEB, RPM, or AppImage for your Linux distribution, with local install commands for apt and dnf and steps to make an AppImage executable.

At a glance

To install Shadowrocket on Linux, first choose a package for your distribution and processor architecture, then check permissions and startup requirements. For Debian- and Ubuntu-based systems, look for a DEB; for Fedora and other distributions using dnf, look for an RPM. AppImage requires execute permission and a compatible runtime environment. This guide is for Linux desktop users installing the client. It covers identifying your system, local installation, first launch, and troubleshooting—not obtaining connection services.

1. Check your distribution, architecture, and package format

Don’t install a package based on its file extension alone. Your distribution determines which package manager to use, while your processor architecture determines whether the file can run on your device. Run the two commands below in a terminal, note the ID, ID_LIKE, and architecture output, then visit the Linux section of the download guide to choose from the available options.

cat /etc/os-release
uname -m

x86_64 usually corresponds to x64 or amd64 on the download page; aarch64 usually corresponds to ARM64. These are different labels for architectures, not interchangeable package types. If the download page doesn’t offer a package for your architecture, don’t force a package for another architecture onto your system or infer your processor type from the computer’s brand.

SystemFormat to check firstInstallation method and limitations
Debian, Ubuntu, and compatible systemsdebUse apt to install the local file. The package manager will handle dependencies available from your configured repositories.
Fedora and other systems using dnfrpmUse dnf to install the local file. The RPM format is not necessarily compatible across distributions.
Linux desktops that run files directlyAppImageCheck the architecture first, then grant execute permission. System libraries, FUSE, and mount permissions may still affect whether it runs.

Other RPM-based distributions may not use dnf; use the package manager native to your system. AppImage is not guaranteed to run on every Linux system either: your desktop session, system libraries, and runtime support must meet its requirements. These commands are for desktop installations; a command-line-only server should not be assumed to have a graphical environment.

2. From download to launch: five steps

Download Linux packages from this site’s download page; you don’t need to find a permanent direct link in this article. To avoid treating a download filename as permanent, the examples below use local filenames that you rename yourself. These are command examples, not the original package filenames.

  1. Identify your system

    Run cat /etc/os-release and uname -m to check your distribution and processor architecture. Don’t use the file extension as a substitute for checking the architecture.

  2. Choose a package

    Open the download guide and choose the DEB, RPM, or AppImage that matches your system from the Linux section. Download only the format you plan to use.

  3. Prepare the local file

    In your file manager, rename the package you selected to shadowrocket-local.deb, shadowrocket-local.rpm, or Shadowrocket-local.AppImage, keeping its corresponding extension.

  4. Open a terminal

    Use your desktop’s terminal option to open a terminal in the folder containing the file. Run pwd and ls -l to confirm its location. The terminal’s starting directory may not be your browser’s downloads folder.

  5. Install and launch

    Use the command below for the format you chose. After installing a DEB or RPM, look for the app in your application menu. Run an AppImage from its current directory. On first launch, check that the window opens normally before setting up a connection.

3. Install a local DEB or RPM with your package manager

Debian and Ubuntu: install a DEB with apt

Run the command below from the directory where you saved the DEB file. ./ specifies a file in the current directory, making it clear to apt that you want to install a local package rather than search repositories by name. apt update refreshes repository indexes; it does not upgrade your entire system.

sudo apt update
sudo apt install ./shadowrocket-local.deb

Review apt’s installation plan before confirming. If dependencies can’t be satisfied, note the specific package names and version requirements in the error, then check that your configured repositories are working and the package suits your system. Don’t ignore dependencies to make a failed installation appear successful, or add repositories for another distribution just to get past an installation prompt.

Fedora and other dnf systems: install an RPM

sudo dnf install ./shadowrocket-local.rpm

dnf also reads information from the local package and attempts to resolve dependencies from configured repositories. If you see a warning about package signatures or source, first confirm that the file came from this site’s download page, then check whether the warning concerns the package file or repository settings. Don’t add options that skip verification. A successful installation means the package-manager process completed; it doesn’t mean your desktop session or network configuration is ready.

DEB installation check

Compatible systems
Distributions that use apt
Local path
./shadowrocket-local.deb
Required permissions
sudo requests system permissions during installation
What to check if it fails
Dependency names, architecture, repository status

Keep apt’s original error message. Missing dependencies don’t automatically mean the file is damaged.

RPM installation check

Compatible systems
Distributions that use dnf
Local path
./shadowrocket-local.rpm
Required permissions
sudo requests system permissions during installation
What to check if it fails
Dependency requirements, architecture, file conflicts

RPM is a package format. Being able to read package information doesn’t guarantee its dependencies suit your system.

4. Run an AppImage after granting execute permission

To run an AppImage, grant execute permission to the file, then launch it from the current directory. It usually isn’t registered as an installation by apt or dnf. The commands below use the local filename introduced earlier and can be run as a regular user. If double-clicking does nothing, don’t launch the graphical app with sudo.

chmod u+x ./Shadowrocket-local.AppImage
./Shadowrocket-local.AppImage

chmod u+x adds execute permission for the file owner only. It doesn’t install missing system components or override a filesystem’s noexec restriction. If the file is on external storage, a shared directory, or a restricted mount point, move it first to a regular directory in your home folder where execution is allowed. After copying it, you can check its permissions with ls -l. Don’t recursively change permissions across your home folder just to launch one file.

Whether an AppImage needs a particular FUSE component depends on how it was packaged and on your runtime environment; it isn’t necessarily missing on every launch. Read the error before installing anything to avoid adding components you don’t need. File managers may handle double-clicks on executable files differently, so launching from a terminal is a useful first troubleshooting step because it shows the error.

5. Maintaining DEB, RPM, and AppImage installations

The format affects more than the first launch: it also determines how you update and remove the app. Installing a local DEB or RPM doesn’t mean an automatic update repository has been added. Check the actual installation to see whether an update source is available. Before updating, quit the client, choose a package for your system from the download page, and review the package manager’s proposed changes.

Maintenance options: package-manager installation or running a file directly

deb / rpm
  • The system package manager tracks the installation.
  • To update, install a local package of the same format with apt or dnf.
  • To remove it, confirm the actual package name in your software manager before uninstalling.
  • Don’t guess the package-manager name from the app’s display name.
AppImage
  • Keep the file in a fixed directory where you can write and execute files.
  • Quit the old process before replacing the file.
  • After moving the file, check the path in any manually created launchers.
  • Deleting the executable doesn’t remove user configuration.

Stick to one installation method when possible. Multiple launchers pointing to different copies can make it look like an update didn’t work.

With any format, removing the program file and removing personal configuration are separate actions. Back up your current configuration before switching installation methods. Don’t clear your entire user configuration directory unless you understand what it contains. If the app behaves differently from the application menu and when launched manually, close all copies, confirm the path of the file actually running, and then continue troubleshooting.

6. After installation: separate launch, configuration, and connection issues

A window opening confirms the installation step; it doesn’t prove a connection service is available. The steps that follow assume you already have your own service provider and subscription. This site does not provide, sell, or recommend nodes, subscriptions, or connection services. Treat getting the client and using your existing connection service as separate matters.

On devices with the corresponding interface, Home provides access to connection and configuration options, Config manages rule configurations, and Settings contains settings. These actions are separate from installing dependencies with the Linux package manager. When checking across platforms, follow the options shown on the device in use; don’t assume that another platform’s system VPN authorization steps apply to Linux.

7. Common questions about installing Shadowrocket on Linux

apt says it can’t find the file, but it’s downloaded. What should I do?

Run pwd and ls -l to confirm the file is in the current directory. Your browser’s download folder may be customized, and the filename may include a suffix from a duplicate download. Go to the actual directory, use Tab completion for the filename, then run the local installation command with ./.

dnf says the architecture doesn’t match. Can I force the installation?

Don’t bypass the architecture check with force options. Run uname -m and check the package’s architecture label on the download page. x86_64 and aarch64 are different targets. If there’s no matching option, stop the installation rather than changing dependencies or system libraries.

I granted execute permission to an AppImage, but double-clicking still does nothing. Why?

Open a terminal in the file’s directory, run ./Shadowrocket-local.AppImage, and note the first meaningful error. Permissions, FUSE, system libraries, and display sessions require different fixes. If the directory is on a mount point with noexec, adding the execute bit to the file alone won’t help.

The installation finished, but there’s no app launcher in the menu. What now?

First confirm that the package manager finished normally, without a dependency failure or interruption. Check the installation record in your system’s software manager for DEB and RPM packages. For an AppImage, run it from its directory first; it isn’t guaranteed to create a desktop launcher automatically. Don’t install all three formats just to find a menu entry, or you may lose track of which copy is running.

Download Shadowrocket and view the setup guide

The iPhone and iPad version costs $2.99 as a one-time App Store purchase; check the App Store listing for system requirements. Versions for Mac (Apple silicon and Intel), Windows, Android, and Linux are free. The download page lists options by platform. Linux users can choose DEB, RPM, or AppImage, then follow the guide to import an existing configuration.

Download Shadowrocket