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

Clash 9090 端口被占用的问题在实际使用中频繁出现,尤其当系统中已有其他程序(如旧版 Clash、Shadowrocket、V2Ray、或自定义脚本)正在监听该端口时,启动新实例会直接失败并提示“Address already in use”。这并非 Clash 本身故障,而是系统资源冲突。常见场景包括:未完全关闭前一个 Clash 进程、杀毒软件/防火墙拦截、或某些后台服务自动启用代理功能。若不及时处理,不仅无法正常使用代理,还可能引发网络异常、应用无响应等连锁问题。

首先确认是否真有进程占用了 9090 端口。打开终端(或命令提示符),输入以下命令: `netstat -an | grep 9090`(macOS/Linux) 或 `netstat -ano | findstr :9090`(Windows)

执行后若返回类似 `127.0.0.1:9090` 或 `0.0.0.0:9090` 的行,说明有进程正在监听。记下对应的“PID”(进程号),再通过 `lsof -i :9090`(macOS/Linux)或 `tasklist | findstr PID`(Windows)查找具体程序名称。例如,若显示为 `clash.exe`,则说明是旧版本 Clash 未退出;若为 `python`、`node` 等,则可能是某个脚本或自动化工具在运行。此时需根据实际用途判断是否可终止。

若确认是旧的 Clash 进程残留,建议强制结束它。在 macOS/Linux 上使用: `kill -9 PID` 在 Windows 上使用: `taskkill /F /PID PID`

执行后再次检查端口状态,若仍被占用,说明可能有多个实例同时运行,或系统存在隐藏进程。此时可尝试重启电脑,这是最彻底的清除方式。重启后重新启动 Clash,通常可解决绝大多数端口冲突。

若不想换端口,也可主动修改 Clash 配置文件中的监听端口。进入 Clash 安装目录或配置文件夹,找到 `config.yaml`,搜索 `port` 项,将值从 `9090` 改为 `9091` 或其他未被占用的数字。保存后重启 Clash 即可生效。注意,所有依赖该端口的客户端(如浏览器插件、手机客户端)也需同步更新地址。 延伸阅读:简历里的项目数据怎么核实实操经验。 延伸阅读:PikPak 怎么指定本地下载路径。

另一种情况是系统级代理设置干扰。某些安全软件(如火绒、360)或系统自带代理策略会强制绑定 9090 端口。进入系统设置 → 网络与互联网 → 代理,查看是否启用了“手动设置代理”且目标端口为 9090。若有,临时关闭或改用其他端口即可。此外,部分开发者工具(如 VS Code 插件、Docker 容器)也可能默认调用 9090,需逐一排查。

对于那些在简历里写过“项目中使用 Clash 搭建代理环境”的人,若被问到“如何验证项目数据真实性”,可如实回答:通过 `netstat` 查看端口占用状态,结合日志输出和客户端连接测试,确保配置生效;项目中曾因 9090 被占用导致部署失败,通过 kill 进程 + 更改端口解决,这一过程已记录在 Git Commit 历史中。这正是实操经验的体现。

至于 PikPak 用户想指定本地下载路径,其核心逻辑是:在客户端设置中找到“下载路径”选项,手动输入本地文件夹路径,如 `D:\Downloads\PikPak`。若路径无效,需确认磁盘权限、文件夹是否存在、是否被系统锁定。同时注意,某些云盘客户端对路径长度敏感,避免使用中文或特殊字符路径。此操作与端口冲突无关,但若你同时在调试 Clash 和 PikPak,应确保两者不共用同一端口或共享内存资源。

最终,若以上方法均无效,考虑更换 Clash 版本。官方发布的新版(如 v6.15+)对端口管理更智能,支持多实例独立端口配置。同时建议使用 `--port=9091` 命令行参数启动,避免默认端口冲突。日常维护中,养成每次关闭 Clash 时先通过任务管理器确认无残留进程的习惯,能大幅降低此类问题发生率。

codexfs4z.clash-clash.comknev36p.clash-clash.comnz8rb59b.clash-clash.com