Out of the box, Clash for Windows listens on two main local ports. Once their roles are clear, many confusing symptoms explain themselves.
7890: the Mixed Port
This is the traffic entrance. "Mixed" means the same port accepts both HTTP proxy and SOCKS5 proxy connections - so whether an app asks for an HTTP or a SOCKS proxy, the answer is always 127.0.0.1:7890.
- With System Proxy on, Windows points traffic here automatically.
- Configuring a proxy manually in an app (download manager, Telegram, …) uses this port too.
Older configs may define separate port (HTTP, often 7890) and socks-port (SOCKS5, often 7891) - functionally equivalent, just not shared.
9090: the External Controller
This is the core's RESTful API port, used by web dashboards and automation scripts to query status and switch nodes. It does not forward traffic. For example:
curl http://127.0.0.1:9090/version
A version number in the response means the API is healthy. See API Automation for practical uses.
Changing ports
- Temporarily: click the Mixed Port number on the General page, edit, press Enter.
- Persistently: subscription updates overwrite the config, so inject
mixed-port: 17890(for example) via Mixin - every profile then uses your port.
bind: address already in use at startup, another program owns 7890 (typically a second proxy client). See Handling Port Conflicts.