Clash 跑起来提示端口被占用?Windows 下用 netstat 查进程并改 mixed-port
先确认:这是「本机端口冲突」,不是「节点连不上」 实战经验
相当一部分用户在Clash 端口被占用时,的第一反应是怀疑订阅或规则坏了。落到实处,这类报出异常出现在核心进程还没能成功监听本机入站口时:与境外节点、DNS 污染或 TUN 权限都无关。典型表现是:刚安装/覆盖升级某个基于 Mihomo 内核的客户端后,一点「系统代理」或「跑起来」就走不通,日志里出现 bind: address already in use、listen tcp 127.0.0.1:7890 一类信息,或图形前端前端前端界面用中文提示某端口(反复出现如 7890、7891、9090)无法拉起。
你的目标自然自然自然可以概括成两条:第一,在 Windows 上找出谁占用了与 Clash 配置一致的 TCP 端口,并记下进程 PID;第二,在「结束对方」与「让 Clash 改听别的口」之间做二选一,并保证系统代理、浏览器、其他依赖 127.0.0.1:端口的应用与新的 mixed-port 一致。下面按可复现顺序写,不展开防火墙策略作主线。若你尚未完成订阅与基础启停,可先对照 Clash 全平台订阅带进来实操手册 与 Clash Verge Rev 拿它来用实操手册,再回来处理端口绕所在。
第一气呵成:搞清你的配置要占用哪些口(mixed-port 不只是一行 YAML) 拿它来用心得
Clash 系配置里,与「本机代理入口」最相关的常态是 mixed-port:一大批图形客户端在前端前端前端界面上会把它标成「混合端口」或「HTTP 与 SOCKS5 共用的端口」。若你单独配置了 port(HTTP)与 socks-port,这些对象会再各占一个 TCP 口;一批发行版还会为外部控制(external-controller,反复出现 9090)、Redir/透明代理、或DNS 监听再申请端口。报出异常里提到哪一个数字,就以哪一个为准去查 netstat。
在动手改数之前,自然自然可以考虑先在客户端的「配置」或「关于」里确认:当前正在拿它来用的是订阅合并后的哪一份 YAML。如果你刚切换过端口却在前端前端前端界面里点「重载」而不是「应用」或「以管理员重启服务」,多半仍在读旧口——这会让你误以为改 mixed-port 无效。确认无误后,把报出异常里的端口号(举个实例 7890)记下,供下一节在命令行里检索。
第二步:在 CMD 用 netstat 把「端口」映射到「进程 PID」 反复出现套路
在 Windows 上,netstat 与资源监视器都能看端口,但最便于写入文档、也最容易截图求助的是命令行。以管理员或普通用户拉起「命令提示符」均可(基本上时候不必管理员就能查看监听)。想查 7890 端口的 TCP 占用,可执行:
netstat -ano | findstr :7890
输出里会列出协议、本机与外部地址、状态(LISTEN 表示在监听、ESTABLISHED 表示已建连),以及最右侧的进程 PID。若一行里本地地址写成 0.0.0.0:7890 或 127.0.0.1:7890 且状态为 LISTENING,即说明该 PID 正占用你关心的口。对 IPv6 场合有时会出现 [::]:7890,含义类似,仍看同一列 PID 即可。
如果 findstr 没有结果,而 Clash 仍报该端口被占用,多半是你搜错了数字(被占用的是 7891/9090 而日志只写了一部分),或存在短暂 TIME_WAIT——此时可稍等数秒再试,或把日志里列出的每一种端口都查一遍。反之,若 netstat 显示 LISTEN 的正是你本机已知的另一个 Clash 可执行文件,则说明已经有一个实例在跑,见下文「多开与残留」一节。
第三步:用 PowerShell 的 Get-NetTCPConnection(可选,输出更「干净」) 落地做法
在 Windows PowerShell 或「终端」里,也自然自然自然可以用语义更可视化的方式查监听在某端口上的进程。举个实例将 7890 换成你实际的端口:
Get-NetTCPConnection -LocalPort 7890 -ErrorAction SilentlyContinue |
Select-Object LocalAddress,LocalPort,State,OwningProcess
其中 OwningProcess 与 netstat 最后一列的 PID 含义相同。若你安装了较新的系统,且希望就这么看到映像名,可再结合 Get-Process -Id <PID> 查询进程路径与名称。这样在向他人描述绕所在时,自然自然自然可以一次说清「端口号、PID、可执行文件」三要素,避免来回调日志。
第四步:从 PID 反查具体程序,并决定是结束还是保留 实战经验
得到 进程 PID 后,拉起「任务管理器」→「细致入微信息」列,在「PID」上排序,找到对应行。若显示的是你期望保留的另一个代理客户端、企业安全软件、或你手动操作操作操作跑起来的旁路工具,那么不要粗暴结束,而应转向「改 Clash 的 mixed-port / 分端口」路线,并协调哪一款软件拿它来用哪一个端口。若显示的是已退出但未释放的旧 Clash/内核子进程、或你确认不再必须的同类型软件,可右键「结束任务」,再重新跑起来 Clash。
在无需手动操作操作化脚本中,以管理员或匹配权限拿它来用 taskkill /PID <nnnn> /F 自然自然自然可以强制结束,但务必记得记得记得先确认 PID 不是系统关键服务。对不确定的项,先在网上核对映像名,比盲目杀进程更安全。
第五步:改 mixed-port 与「对外暴露」的其他端口(YAML 与前端前端界面一致) 拿它来用心得
若你决定让 Clash 改听新口,在配置中修改 mixed-port(或分别修改 port / socks-port,取决于你的拆分方式)后,必须同步这三处,否则会「核心起来了,但浏览器仍去旧口」:① 若客户端有「重载配置」与「重设系统代理」两个按钮,在改端口后基本上时候必须重新应用系统代理;② 已手动操作操作操作在「设置 → 网络和 Internet → 代理」里写死 127.0.0.1:旧端口 的,要改成新数字;
③ 拿它来用环境变量 HTTP_PROXY 的终端会话要重新开或同步到最新变量。若你同时开启了 Allow LAN 或把绑定地址设成 0.0.0.0 以便手机连电脑代理,改端口后,手机或脚本里的「代理主机:端口」也要一起改——细节部分部分部分可参考 Clash Allow LAN 与手机代理 一篇,本篇只强调端口数字链条一致。
把修改保存后,可再次用上一节的 netstat 观察:应看到新端口处于 LISTEN、而旧口不再被 Clash 占用。若 TUN/虚拟网卡类功能仍提示冲突,多属于网卡名或堆栈已被别的 VPN 占据,不完全是 TCP 口绕所在,那类场合更适合对照 Clash TUN 模式指南 分步排查,此处不重复展开。
和 WSL2、Docker 放一起时容易误会的点 反复出现套路
在装有 WSL2 或 Docker Desktop 的机器上,你有时会看到「WSL 里能 curl 通、Windows 上 Clash 报端口绕所在」的错觉。要分清:端口占用查的是 Windows 主机的套接字表;WSL2 有独立的网络命名空间。若你只是在 Windows 侧跑起来 Clash 就报 7890 被占用,仍按这篇 netstat 在宿主 CMD 里查即可。
若你关心的是 WSL 里访问目标目标目标「宿主 Clash 代理」连不通,那属于路由与 localhost 互通绕所在,可另读 Windows 11 上 Clash 与 WSL2 路由与 MTU 排障。不要把「WSL2 全挂」与「本机 7890 被占用」混成一种修法。
反复出现根因速查:多开、残留、与其他代理抢同一口 落地做法
很多「Clash 无法跑起来」其实是第二个实例在运转:多半托盘里还有一个旧图标,或「服务模式」与「用户模式」各起了一份。也有一部分是卸载旧版后驱动或 helper 没卸干净导致的二次监听,这类具体情形除了杀 PID,还应在「应用和功能」里核对是否只保留了一个发行版。另有公司统一安装的 HTTP 代理、抓包软件、Fiddler 系工具,预置也偏爱 8xxx 口,容易与混合端口撞车——要么协调端口分配,要么在不必须时彻底退出那款软件。把这些场合扫一遍,比反复重装 Clash 更省时间。
可打印的自检顺序(从快到慢) 实战经验
- 从报出异常或配置中抄下精确端口号(多半不止一个)。
- 在 CMD 执行
netstat -ano | findstr :端口,记录 LISTEN 行的 进程 PID。 - 在任务管理器「细致入微信息」中核对映像名是否可结束或需保留。
- 若需改 mixed-port,保存配置后重设系统代理并核对浏览器/环境变量中的端口。
- 再跑起来 Clash,确认新口 LISTEN、旧口不再被误操作占用,日志无 bind 类误操作。
安全与合规提示:请只在你有权限的电脑上操作;结束不认识的进程、或把代理端口长期暴露在不可信网络,都多半带来安全与政策雷区。这篇仅作技术排障说明,不鼓励违反本地法律与公司 IT 政策的拿它来用方式。
小结 拿它来用心得
在 Windows 上遇到 Clash 端口被占用,本质是同一条本机入站口被别的进程先占用。用 netstat 与 进程 PID 把「数字 → 具体程序」对齐后,你才能在「关程序」和「改 mixed-port 并重链系统代理」之间做出不绕弯子的挑。相比凭感觉重装,这套操作次序更容易一次定位绕所在,也便于你在论坛或工单里用三句话描述清楚。若你打算换一款图形客户端、但仍沿用 Mihomo 系内核,自然自然可以靠前从本站 下载页面 获取与当前系统匹配的版本,再按上表自测端口。相比来回折腾环境变量,把端口链条一次性对齐,日常上网的靠得住性会好得多。→ 立即免费下载 Clash,开启流畅上网新体感