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.
| System | Format to check first | Installation method and limitations |
|---|---|---|
| Debian, Ubuntu, and compatible systems | deb | Use apt to install the local file. The package manager will handle dependencies available from your configured repositories. |
| Fedora and other systems using dnf | rpm | Use dnf to install the local file. The RPM format is not necessarily compatible across distributions. |
| Linux desktops that run files directly | AppImage | Check 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.
-
Identify your system
Run
cat /etc/os-releaseanduname -mto check your distribution and processor architecture. Don’t use the file extension as a substitute for checking the architecture. -
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.
-
Prepare the local file
In your file manager, rename the package you selected to
shadowrocket-local.deb,shadowrocket-local.rpm, orShadowrocket-local.AppImage, keeping its corresponding extension. -
Open a terminal
Use your desktop’s terminal option to open a terminal in the folder containing the file. Run
pwdandls -lto confirm its location. The terminal’s starting directory may not be your browser’s downloads folder. -
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.
- If you see
Permission denied, check the execute bit, access permissions for parent directories, and whether execution is disabled on the mount point. - If you see
Exec format error, first compareuname -mwith the package architecture, then confirm the download completed. - If you see an error mentioning FUSE or
libfuse.so.2, look up the required compatibility components for your distribution. Package names can vary, so don’t copy installation commands from another system. - For errors involving shared libraries or desktop display, keep the full terminal output and distinguish system-library issues from graphical-session issues. These aren’t execute-permission errors.
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.
- App won’t start: Check the architecture, dependencies, execute permissions, and graphical session first. Don’t change subscriptions or rules yet.
- App starts, but there’s no configuration: Follow the setup guide to import your existing configuration and check that the link is complete. Installing the client does not automatically provide connection details.
- Can’t connect after importing: Check that the server address, port, protocol, and credentials match your existing configuration, then investigate network errors. Reinstalling repeatedly usually won’t fix these fields.
- Problems accessing sites after connecting: Use the troubleshooting guide to distinguish routing, rules, and DNS issues. Don’t change several settings at once and then try to infer the cause.
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.