Installation and Migration · Clash Technical Blog

Installing Clash Verge Rev on Ubuntu: DEB, System Proxy, and Startup

Ubuntu installation requires a DEB package matching the architecture. Import a subscription, select a node, and verify the system proxy before configuring TUN service or autostart as needed. Keep recoverable configurations when handling permission, desktop-environment, or service problems.

  • Ubuntu
  • Linux
  • DEB
  • System proxy
On this page

On Ubuntu, the DEB package must match your system architecture. Once the window opens, check that you can get online with the imported configuration. Browser access, command-line access and launching the app at login each have their own settings. Keep what you have already verified and investigate the failing step; a terminal timeout does not mean you need to reinstall.

Installing DEB on Ubuntu: how to choose amd64, arm64 or armhf

Use the table below to match your processor architecture to the Ubuntu DEB package; do not force-install a mismatched package. After installing Clash Verge Rev, test the system proxy and set up launch at login only once it works. Consider the TUN service only if an app needs a proxy but does not use the system proxy. Change one setting at a time, and undo the most recent change if a problem appears.

As of 2026-07-23, the latest stable Clash Verge Rev release, v2.5.2, provided DEB packages for amd64, arm64, and armhf. Ubuntu and Debian can install and remove this version through the package manager; its Release has no AppImage.

For newer versions, check the assets on the relevant release page rather than looking for missing formats on third-party sites.

Architecture mapping

uname -mDEB package
x86_64*_amd64.deb
aarch64 / arm64*_arm64.deb
armv7l*_armhf.deb; first confirm that the system itself uses 32-bit ARM

The architecture shown by uname and dpkg must match the DEB

Ubuntu check command; adjust the DEB path to the file you actually downloaded
DEB='./Clash.Verge_2.5.2_amd64.deb'
uname -m
dpkg --print-architecture
dpkg-deb -I "$DEB" | sed -n '1,25p'

The version number is only a current example; use the filename from the Release you downloaded. dpkg-deb can read the package's Architecture and Depends fields. If they already do not match your system, do not force the installation with --force-architecture.

Install the local DEB with apt so dependencies are resolved at the same time

After confirming that the architectures match, let apt install the local file. Missing dependencies will then be reported by exact package name, and future removal remains within the same package-management system.

Run in the downloads directory; adjust the DEB path to the actual file
DEB='./Clash.Verge_2.5.2_amd64.deb'
sudo apt install "$DEB"

# 查看安装状态
dpkg -l | grep -i clash-verge

# 需要卸载时先记下上一步显示的真实包名
# sudo apt remove clash-verge

The filename and package name in the command must match the results on your machine. If apt reports unsatisfied dependencies, save the complete error and Ubuntu version; do not download individual .so files from random sites to overwrite system libraries. After installation, launch the app once from the application menu. This reveals WebKit, tray, or core startup errors more clearly than enabling TUN immediately.

For the first test, verify only the Profile and system proxy

Import a configuration and check the system proxy

  1. Import a remote subscription or local configuration

    Clash Verge Rev 2.x supports URL, local-file, and drag-and-drop imports; update it manually first.

  2. Set it as the current Profile

    Confirm that the policy groups and nodes are not stale cache entries.

  3. Pin one node

    Keep Rule mode and enable the system proxy.

  4. Open a browser and inspect connections

    The desktop proxy is working only when the domain, rule, and outbound route all appear.

Where are Profiles stored, and how does the terminal use the proxy?

If the browser works but apt or Git times out, the terminal may not read the desktop system proxy. The shell is the environment that runs terminal commands and needs its own proxy variables. The settings below affect only the current terminal and can be undone afterward.

Default Linux paths; use the directory opened by the app

ContentsPath
verge.yaml~/.local/share/io.github.clash-verge-rev.clash-verge-rev/verge.yaml
Working directory~/.local/share/io.github.clash-verge-rev.clash-verge-rev/
Profiles~/.local/share/io.github.clash-verge-rev.clash-verge-rev/profiles/
WebView cache~/.cache/io.github.clash-verge-rev.clash-verge-rev/
Proxy example for the current terminal: replace 7890 with the actual HTTP or Mixed port
export HTTP_PROXY=http://127.0.0.1:7890
export HTTPS_PROXY=http://127.0.0.1:7890
export NO_PROXY=localhost,127.0.0.1,::1
export http_proxy="$HTTP_PROXY"
export https_proxy="$HTTPS_PROXY"
export no_proxy="$NO_PROXY"

# 结束测试
# unset HTTP_PROXY HTTPS_PROXY NO_PROXY http_proxy https_proxy no_proxy

After login autostart, do the Profile, proxy and exit recovery still work?

First enable “Launch at Startup” or Auto Launch on the Clash Verge Rev settings screen; the label may vary by version. This starts the app after the user signs in to the desktop. It does not provide a proxy before desktop login, nor guarantee that TUN will capture traffic without a permission prompt. If you need only the system proxy, keep TUN disabled.

Confirm which program the desktop startup item actually points to
find ~/.config/autostart /etc/xdg/autostart   -maxdepth 1 -type f -iname '*clash*' -print 2>/dev/null

grep -R '^Exec=' /usr/share/applications 2>/dev/null   | grep -Ei 'clash.verge|clash-verge'

Verify startup once for real

  1. Sign out of the desktop, then sign back in

    Confirm that only one Clash Verge Rev process appears and that no old client starts alongside it.

  2. Inspect the current Profile and node

    After the app starts, still confirm that the subscription is selected and that the running configuration is the one you just verified.

  3. Check the system proxy

    If it is configured to turn on automatically, the browser should create connection records. Leave the toggle off if you do not want automatic traffic capture.

  4. Test network restoration on exit

    After quitting normally from the application menu, Ubuntu's HTTP, HTTPS, and SOCKS proxy settings should no longer point to a local port.

Where should you look if TUN will not start, the tray icon is missing, or the window crashes?

TUN requires service and virtual-adapter permissions. Stabilize the system proxy first, then install the service from the current version's settings screen. Service scripts and installation directories in older tutorials may have changed. If you encounter permission or IPC errors, check the current Release and official FAQ before running commands left by another version.

A missing tray icon commonly means the desktop environment lacks AppIndicator support; if the window crashes immediately, launch the app from a terminal and read stderr. Neither issue reflects subscription node quality.

No window appears after double-clicking

Launch it from a terminal, preserve WebKit or graphics-library errors, and inspect the current desktop session.

The browser works, but apt/Git does not

Set environment variables or tool-specific configuration for the command; do not enable TUN first.

The TUN toggle immediately switches back off

Inspect service installation and permissions; do not repeatedly change DNS or nodes.

The browser loses connectivity after exit

Disable the residual proxy in desktop network settings, then check whether the app was force-quit.

References