Clash Verge

Updated July 2026 · 6 min read

Mixed and controller ports explained

Mixed port 7897 takes HTTP and SOCKS5 traffic on the same number, so other software can point at it either way. External controller port 9097 is a different animal, and confusing the two guarantees failure.

SponsoredNo working nodes yet?Our partner provider gives you 1 GB of high-speed Hong Kong data at signup, with one-click import.Get high-speed nodes
01

One port, two protocols

Mixed means the listener works out the protocol for itself: an HTTP proxy request is handled as HTTP, a SOCKS5 handshake is handled as SOCKS5, and there is no need for a separate port per protocol.

So in any other application, pick HTTP proxy or SOCKS5 proxy as you like and give it 127.0.0.1 with port 7897 either way. People often go hunting for the separate SOCKS port; it is the same number.

SponsoredWhere does the subscription link come from?Our partner provider gives you 1 GB of high-speed Hong Kong data at signup — import it in one click.Get high-speed nodes
02

9097 is not a proxy port

The external controller speaks an HTTP API and exists for dashboards and scripts. It never forwards browsing traffic, so putting it in a browser or in the system proxy leaves pages hanging or returns replies nothing can read.

How to configure that port and whether to set a secret has its own guide. The only thing to carry over here: 9097 and 7897 are separate mechanisms, neither substitutes for the other, and mixing them up costs an afternoon of pointless debugging.

Start here

Changing the port updates the system proxy automatically, but nothing you filled in by hand. Shell variables, browser extensions and other devices on the LAN all need a manual pass.

03

How a port conflict looks

The classic symptom is a core that will not start: the home page says nothing is running and the log holds one lonely line about a failed bind, then silence. Do not go digging through profiles and rules, because the config is not the problem.

Usually another proxy client already holds 7897, or the system has reserved that range. Set the mixed port to an unused value, 7898 for instance, and the core comes back up as soon as you save.

04

What else to update afterwards

The system proxy toggle picks up the new port on its own, so a browser following the system setting needs no attention. Anywhere you typed the port in by hand stays on the old number until you go back and fix it.

That means other devices on the LAN, the http_proxy and https_proxy variables in your shell, the browser proxy-switching extension, and the proxy settings in Git or your package manager. Miss one and exactly that tool stops working while everything else is fine.

What is the project?

Clash Verge Rev is a Tauri-based GUI for Mihomo with profile management, system proxy, TUN mode, rule editing and WebDAV backups.

Official source