Clash 提示 9090 端口被占用怎么处理

Clash 启动时提示 9090 端口被占用,通常意味着已有其他进程占用了该端口,导致 Clash 无法正常监听和提供代理服务。这在使用过程中非常常见,尤其当系统中存在多个代理工具或旧的 Clash 进程未正确关闭时更容易发生。端口被占用的本质是资源冲突,而解决的关键在于识别并终止占用端口的进程,或更换 Clash 的监听端口。

首先,打开命令行工具(Windows 用户可用命令提示符或 PowerShell,macOS 及 Linux 用户使用终端),输入以下命令查看 9090 端口的占用情况:

```bash netstat -ano | findstr :9090 ```

在 Windows 上执行此命令后,若返回结果,会显示类似 `TCP 0.0.0.0:9090 LISTENING 1234` 的信息,其中最后一位数字(如 1234)即为占用端口的进程 PID。接着,使用以下命令查询该进程名称:

```bash tasklist | findstr 1234 ```

若返回结果为 `Clash.exe`、`node.exe`、`java.exe` 等,基本可确认是 Clash 旧进程残留或另一个代理软件在运行。此时,可通过任务管理器找到对应进程并结束,或直接在命令行中执行:

```bash taskkill /PID 1234 /F ```

强制终止该进程后,再次启动 Clash 即可正常绑定 9090 端口。 延伸阅读:PikPak 下载任务一直显示等待的原因。

若上述方法无效,可能是因为系统中存在多个代理程序共用端口,例如某些基于 Node.js 的代理工具(如 Clash Verge、Clash for Windows)默认使用 9090 端口,但未完全退出。此时应检查所有正在运行的代理类应用,包括后台服务或自启程序,逐一关闭后再尝试启动 Clash。

另一种快速解决方案是修改 Clash 的监听端口。进入 Clash 配置文件(通常位于 `config.yaml`),将 `port` 字段从 9090 改为其他未被占用的端口,如 7890 或 8080。保存后重启 Clash,即可绕过端口冲突问题。注意:若你使用的是客户端(如 Clash for Windows/Clash Verge),可在设置界面中直接更改监听端口,无需手动编辑配置文件。

在排查过程中,还需注意一些隐蔽的占用源。例如,部分开发工具(如 VS Code 的调试功能)、Docker 容器、本地 Web 服务器(如 Nginx、Apache)、甚至某些安全软件或杀毒程序,都可能在后台启用代理服务并占用 9090 端口。若怀疑此类情况,可暂时关闭相关服务再测试。

特别提醒:如果你曾通过 PikPak 下载任务一直显示等待,很可能是因为其内置代理未释放端口,而这个行为与端口占用有直接关联——当 PikPak 使用了与 Clash 相同的代理端口且未正常退出,就会造成冲突。因此,若你同时在使用 PikPak 和 Clash,建议先关闭 PikPak 的下载任务并退出程序,再重新启动 Clash。

此外,简历被刷的十个原因中,有一个关键点常被忽略:技术岗位的候选人若在简历中频繁提及“使用 Clash”等工具,但未说明具体配置或实际网络环境调试经验,反而可能因“工具使用痕迹不清晰”被筛选掉。这提醒我们,真正掌握工具的人,往往能快速定位并解决诸如 9090 端口占用这类问题,而非依赖重复启动或盲目重装。

最终判断是否成功解除占用,可通过以下方式验证:在命令行中再次运行 `netstat -ano | findstr :9090`,若无输出,则表示端口已空闲;若仍有输出,说明仍有进程在监听,需继续排查。同时,启动 Clash 后观察日志输出,若出现“Listening on 0.0.0.0:9090”或“Proxy server started”,即表明服务已成功开启。

处理完毕后,建议定期清理后台进程,避免重复出现相同问题。对于长期使用者,可将 Clash 的端口固定为 7890,既避开默认冲突,又便于统一管理。

codexfs4z.clash-clash.comknev36p.clash-clash.combt052.clash-clash.com