启动 CFW 后没有网络,Logs 页面出现 bind: address already in use(或 listen tcp 127.0.0.1:7890: bind: ...),说明端口被其他程序占了,内核起不来。

第一步:找出占用者

以管理员身份打开 PowerShell:

# 查 7890 端口被谁占用
netstat -ano | findstr :7890
# 输出最后一列是 PID,例如 12345,再查进程名:
tasklist | findstr 12345

第二步:二选一处理

方案 A:关闭冲突程序(推荐)

占用者几乎总是另一个代理客户端(v2rayN、另一个 Clash、开发工具的调试代理等)。彻底退出它(注意托盘常驻),重启 CFW 即可。多个代理客户端不要同时运行——即使端口错开,系统代理设置也会互相覆盖。

方案 B:给 CFW 换端口

General 页面点击 Mixed Port 的数字,改成 7891 等空闲端口,回车生效。注意改端口的连带影响:

  • 手动给其他软件配过 127.0.0.1:7890 的地方要同步改。
  • 建议用 Mixin 固化 mixed-port,避免不同订阅各写各的端口。

9090 冲突

外部控制端口冲突不影响上网,但界面会连不上内核(显示异常)。处理方式相同:找到占用者,或通过 Mixin 修改 external-controller: 127.0.0.1:19090

预防

  • 换用其他代理软件前,先退出当前的。
  • 7890 是代理软件的“通用默认端口”,长期共存的开发环境建议给 CFW 分配一个独占端口段(如 17890/19090)。
提示:偶发的“重启 CFW 后端口占用”可能是上一个内核进程没退干净:任务管理器结束所有 clash-win64.exe 进程再启动即可。