Install v2rayN on Linux: DEB/RPM Packages and Automatic Startup

Install v2rayN on Ubuntu, Debian, Fedora, and other Linux distributions with DEB or RPM packages. Resolve dependencies and tray icon issues, then launch v2rayN automatically at desktop login.

At a glance

For users with a Linux desktop ready to install v2rayN. Choose a package for your distribution and CPU architecture, then use the system package manager to resolve dependencies. On first launch, check your subscription, listening port, and proxy mode. Finally, reuse the application launcher to start v2rayN when you log in. Troubleshoot the tray, desktop app, and proxy core separately so a hidden window, failed system proxy, and crashed process aren't mistaken for the same issue.

1. Check Your Distribution, Architecture, and Install Method

v2rayN is a desktop client. A successful installation does not guarantee a working connection: you'll also need a valid server configuration or subscription and a core that supports the selected protocol. This guide covers installing the client in a graphical desktop environment; it does not configure a system proxy service to run without a logged-in user. These desktop autostart steps aren't suitable for a headless server.

Open a terminal and run these two commands. The first shows your distribution and version; the second shows your system architecture. In most cases, x86_64 corresponds to an x64 package and aarch64 to an arm64 package. Installing missing dependencies won't fix an executable that doesn't match your architecture.

cat /etc/os-release
uname -m

Native Distribution Packages

Recommended

Choose DEB for Ubuntu or Debian, and RPM for Fedora. The package manager tracks installed files, resolves declared dependencies, and provides a clean uninstall path. Check that the package supports your distribution version.

Best for: Everyday desktop use with clear installation records.

Portable Archive

Choose this only if the download page offers a Linux archive for your architecture. You'll need to manage the extraction location, executable permissions, desktop launcher, and upgrades yourself. Don't use apt or dnf to install an archive.

Best for: Comparing versions or testing in a separate directory.

2. Install a DEB Package on Ubuntu or Debian

For a local DEB file, use apt install rather than running dpkg -i alone. apt can fetch declared dependencies from your configured repositories. Run the commands below in Bash. When prompted, enter the actual path to the downloaded file. If the path contains spaces, enter it as is—don't add quotes around it.

read -r -p "Enter the full path to the DEB file: " pkg
pkg="$(realpath -- "$pkg")"
dpkg-deb -f "$pkg" Package Version Architecture
sudo apt update
sudo apt install "$pkg"
  1. Check the Package Details

    Review the Package, Version, and Architecture values in the output above. If the command can't read the file, make sure you entered the path to a downloaded DEB package, not a webpage or compressed archive.

  2. Review the Installation Plan

    Review the packages apt proposes to install, upgrade, or remove. If it plans to remove a large number of desktop components, cancel and check whether your repositories mix different distributions or versions.

  3. Launch from the App Menu

    After installation, search for v2rayN in your desktop's application menu and launch it as a regular user. Installing software requires elevated privileges; running the graphical client does not.

  4. Keep the Error Output

    If no window appears, find the desktop launcher installed with the package and check its Exec field. Then run the corresponding command in a terminal and note any missing libraries or permission errors.

If running dpkg -i left the package unconfigured, try sudo apt --fix-broken install and review the proposed changes before confirming. It may install missing dependencies or remove packages with unresolved dependencies, so don't assume it will keep the client installed. If your repositories can't be reached, restore access before trying the installation again.

3. Install an RPM on Fedora and Find the Launcher

On Fedora, use dnf to install a local RPM. It resolves dependencies using your system repositories; rpm -i alone does not fetch missing dependencies. First enter the actual file path, then inspect the package metadata, and finally install it.

read -r -p "Enter the full path to the RPM file: " pkg
pkg="$(realpath -- "$pkg")"
rpm -qp --queryformat '%{NAME}\n%{VERSION}-%{RELEASE}\n%{ARCH}\n' "$pkg"
sudo dnf install "$pkg"

Don't add options to skip dependencies or force an overwrite just because you see a dependency conflict. Missing shared libraries, a package for the wrong architecture, and mixed repository versions are different problems—use the specific package names shown in the terminal to identify the cause. An RPM package isn't necessarily compatible with every RPM-based distribution.

DEB Package Details

Get the Package Name
dpkg-deb -f "$pkg" Package
List the Files
dpkg -L "$name"
Find the Launcher
Look in /usr/share/applications/

First run name="$(dpkg-deb -f "$pkg" Package)", then list the files installed by the package.

RPM Package Details

Get the Package Name
rpm -qp --queryformat '%{NAME}' "$pkg"
List the Files
rpm -ql "$name"
Check the Launcher Fields
Check Exec= and TryExec=

First run name="$(rpm -qp --queryformat '%{NAME}' "$pkg")". Don't guess the installation directory or executable name.

The desktop launcher is your reference for troubleshooting and autostart. If its Exec line contains desktop field codes such as %U or %F, don't copy them as regular command-line arguments when testing in a terminal. Use the actual paths in the package, and don't make the entire installation directory writable by every user.

4. First Connection: Subscription, Port, and System Proxy

On first launch, keep the regular proxy mode and leave TUN disabled. In the main window, open “Subscription Group” → “Subscription Group Settings,” add a group, and enter the subscription URL. Save it, then select “Update” from the “Subscription Group” menu. Menu names may vary slightly by version; use the group settings window and update menu as your guide. Subscription URLs may contain credentials, so redact them in terminal screenshots and support requests.

After selecting a configuration as the active server, open “Settings” → “Parameter Settings” to check the local listener details, then confirm the actual listening address in the client log. The examples below use port 10808; your version or existing configuration may use a different port. Use the matching curl command only after confirming that the port supports HTTP or mixed proxy connections.

127.0.0.1
Loopback address for apps on this device
10808
Example port; confirm it matches the active listener
15 seconds
Maximum time to wait for the curl command below
ss -ltnp 'sport = :10808'
curl --proxy http://127.0.0.1:10808 --max-time 15 -I https://example.com

If you have a dedicated SOCKS port, change curl's proxy option to --proxy socks5h://127.0.0.1:10808 and adjust the port to match your configuration. socks5h resolves the destination hostname through the proxy. An HTTP response confirms that this explicit proxy request got a response; it doesn't mean every app on your system is using the proxy.

5. Missing Tray Icon or No Window

GNOME, KDE Plasma, and other desktops handle tray support differently. If the tray icon is missing in GNOME, v2rayN may still be running; the desktop may lack status indicator support, or an installed extension may not be enabled. First try reopening the window from the app menu, then check the process and local listening status.

The window closed. Where did the app go?

Closing the window may just hide the app in the tray. Check the client's settings for window closing, minimizing, and tray behavior, then reopen it from the app menu. To check whether it's running, use pgrep -afi v2rayN. Avoid repeatedly clicking the launcher, which can start multiple instances.

Window open on Ubuntu, but no tray icon?

Check whether AppIndicator support is enabled in your desktop extensions manager. On Ubuntu, run apt policy gnome-shell-extension-appindicator to check the package in the repositories. Confirm it's compatible with your GNOME version before installing or enabling it. You may need to log out and back in.

Nothing happens when you click the app menu?

Use the installation records to find the desktop file, then check that the file named in Exec exists. Run the actual launch command in a terminal. For a missing shared library, troubleshoot the specific library; for a configuration directory permission error, check whether you previously launched the client with sudo and left the user's files owned by root.

Think a security policy is blocking the app on Fedora?

Start by checking session errors in journalctl --user -b -n 100. If there's clear evidence of an access denial, ask an administrator to review the audit logs. Don't disable SELinux as a routine installation step or weaken permissions to hide an incorrect path.

If the app opens and connects successfully but the tray icon is missing, fix desktop integration rather than reinstalling the core. If the log shows that the core process exited, troubleshoot the configuration and core permissions instead. A tray extension can't fix protocol errors or port conflicts.

6. Start v2rayN at Login with the Desktop Launcher

What people call “startup at boot” is more accurately “start after desktop login” for the v2rayN graphical client. The graphical session isn't ready when the computer powers on before login, at a text-only terminal, or through a remote command session. Most desktop environments support the XDG autostart directory ~/.config/autostart/. Reusing the desktop file provided by the package is more reliable than guessing the Exec path.

  1. Confirm It Works Manually

    Launch the app from the application menu and complete a connection test first. If the client has its own autostart option, check whether it has already created an entry so you don't configure a duplicate.

  2. Find the Desktop Launcher

    Use the package file list from the previous section to find the app's desktop file. Check its Exec path and confirm it isn't an uninstall entry or pointing to a temporary download directory.

  3. Copy It to Your User Directory

    Run the command below and enter the full path to the desktop file. The destination is fixed as v2rayN.desktop to make it easy to check and remove. This affects only your current user.

  4. Verify After Logging Back In

    Save your work, then log out and back into the desktop. Check the client process, window, or tray icon, then verify the local port and connection. Don't rely on the icon alone to confirm autostart worked.

read -r -p "Enter the full path to the app desktop file: " entry
grep -E '^(Type|Exec|TryExec|Hidden|OnlyShowIn|NotShowIn)=' "$entry"
install -Dm644 "$entry" "$HOME/.config/autostart/v2rayN.desktop"

Read the grep output before copying: Hidden=true disables the autostart entry, while OnlyShowIn and NotShowIn limit which desktops can use it. If the app doesn't start after copying, check these fields in a text editor and look for X-GNOME-Autostart-enabled=false. Changing the Name field alone won't help: it only changes the display name and doesn't launch the app.

To undo this setup, delete only the file you created in this section. If there's another v2rayN autostart entry in your system settings, check and disable it too so it doesn't look like removing the file had no effect.

rm -- "$HOME/.config/autostart/v2rayN.desktop"

7. Upgrade and Restart Checklist

Upgrading a package with the same name usually lets apt or dnf replace the program files. User configuration, the autostart copy, and desktop proxy settings are managed separately. Exit the client and back up the configuration directory actually in use before upgrading. Check the current version's settings or logs for its location; don't delete the entire user configuration tree.

Verify everything in order: launch the app manually, confirm the explicit proxy works, test the apps you need, then log out and back in to check that the client starts correctly. Checking all four steps makes issues easier to pinpoint than simply looking for a tray icon after startup. For subscription import and setup, see the Getting Started guide. For advanced routing and DNS changes, see Advanced Configuration.

View Client Downloads