Clash 拉起提示端口被占用?Windows 下用 netstat 查进程并改 mixed-port
先确认:这是「本机端口冲突」,不是「节点连不上」 一文看懂
下面按可复现顺序写,不展开防火墙策略作主线。若你尚未完成订阅与基础启停,可先对照 Clash 全平台订阅引入指引 与 Clash Verge Rev 运用指引,再回来处理端口难点。
不少运用者在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 一致。
第一气:搞清你的配置要占用哪些口(mixed-port 不只是一行 YAML) 核心要点
在动手改数之前,推荐先在客户端的「配置」或「关于」里确认:当前正在运用的是订阅合并后的哪一份 YAML。如果你刚切换过端口却在操作操作操作界面里点「重载」而不是「应用」或「以管理员重启服务」,也许仍在读旧口——这会让你误以为改 mixed-port 无效。确认无误后,把抛出失误里的端口号(比如 7890)记下,供下一节在命令行里检索。
Clash 系配置里,与「本机代理入口」最相关的通常是 mixed-port:众多图形客户端在操作操作操作界面上会把它标成「混合端口」或「HTTP 与 SOCKS5 共用的端口」。
若你单独配置了 port(HTTP)与 socks-port,两者会再各占一个 TCP 口;若干发行版还会为外部控制(external-controller,高频 9090)、Redir/透明代理、或DNS 监听再申请端口。抛出失误里提到哪一个数字,就以哪一个为准去查 netstat。
第二步:在 CMD 用 netstat 把「端口」映射到「进程 PID」 逐条拆解
反之,若 netstat 显示 LISTEN 的正是你本机已知的另一个 Clash 可执行文件,则说明已经有一个实例在跑,见下文「多开与残留」一节。
netstat -ano | findstr :7890
补充说明:在 Windows 上,netstat 与资源监视器都能看端口,但最便于写入文档、也最容易截图求助的是命令行。以管理员或普通用户开启「命令提示符」均可(一般不必管理员就能查看监听)。想查 7890 端口的 TCP 占用,可执行:
输出里会列出协议、本机与外部地址、状态(LISTEN 表示在监听、ESTABLISHED 表示已建连),以及最右侧的进程 PID。若一行里本地地址写成 0.0.0.0:7890 或 127.0.0.1:7890 且状态为 LISTENING,即说明该 PID 正占用你关心的口。对 IPv6 状态有时会出现 [::]:7890,含义类似,仍看同一列 PID 即可。
如果 findstr 没有结果,而 Clash 仍报该端口被占用,也许是你搜错了数字(被占用的是 7891/9090 而日志只写了一部分),或存在短暂 TIME_WAIT——此时可稍等数秒再试,或把日志里列出的全部端口都查一遍。
第三步:用 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 反查具体程序,并决定是结束还是保留 一文看懂
在无人值守化脚本中,以管理员或匹配权限运用 taskkill /PID <nnnn> /F 能够强制结束,但一定要先确认 PID 不是系统关键服务。对不确定的项,先在网上核对映像名,比盲目杀进程更安全。
得到 进程 PID 后,开启「任务管理器」→「详尽信息」列,在「PID」上排序,找到对应行。若显示的是你期望保留的另一个代理客户端、企业安全软件、或你手工拉起的旁路工具,那么不要粗暴结束,而应转向「改 Clash 的 mixed-port / 分端口」路线,并协调哪一款软件运用哪一个端口。
若显示的是已退出但未释放的旧 Clash/内核子进程、或你确认不再得的同类型软件,可右键「结束任务」,再重新拉起 Clash。
第五步:改 mixed-port 与「对外暴露」的其他端口(YAML 与操作操作界面一致) 核心要点
把修改保存后,可再次用上一节的 netstat 观察:应看到新端口处于 LISTEN、而旧口不再被 Clash 占用。若 TUN/虚拟网卡类功能仍提示冲突,多属于网卡名或堆栈已被别的 VPN 占据,不完全是 TCP 口难点,那类状态更适合对照 Clash TUN 模式指南 分步排查,此处不重复展开。
具体来说:若你决定让 Clash 改听新口,在配置中修改 mixed-port(或分别修改 port / socks-port,取决于你的拆分方式)后,必须同步这三处,否则会「核心起来了,但浏览器仍去旧口」:① 若客户端有「重载配置」与「重设系统代理」两个按钮,在改端口后一般得重新应用系统代理;② 已手工在「设置 → 网络和 Internet → 代理」里写死 127.0.0.1:旧端口 的,要改成新数字;
③ 运用环境变量 HTTP_PROXY 的终端会话要重新开或刷新变量。若你同时开启了 Allow LAN 或把绑定地址设成 0.0.0.0 以便手机连电脑代理,改端口后,手机或脚本里的「代理主机:端口」也要一起改——容易忽略的地方可参考 Clash Allow LAN 与手机代理 一篇,本篇只强调端口数字链条一致。
和 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,开启流畅上网新运用感受