先把症状说准:不是某个网站打不开,是所有网站一起哑掉,浏览器、聊天软件、系统更新全不动。这种情况几乎都出在本机这一段,和节点好不好没什么关系。
先分清是代理的问题还是网络本身
- 把客户端的系统代理开关关掉,客户端本身别退出。
- 打开一个平时能开的网页,按一次强制刷新。
- 网页回来了:问题在代理链路上,接着往下排。
- 网页还是打不开:先修本机网络。用
ipconfig /flushdns清一下 DNS 缓存,检查网线和 Wi-Fi,代理这边暂时别动。
关掉开关网就回来了的话,后面所有动作都只针对代理这一段。别去重置网卡、别急着敲
合作推荐订阅链接从哪来?本站合作机场注册即送 1GB 香港高速体验流量,可直接一键导入。获取高速节点
netsh winsock reset、更不用重装系统——这几步会把一个五分钟的问题拖成半天。客户端有没有真的在监听那个端口
netstat -ano | findstr 7890
lsof -i :7890
ss -tlnp | grep 7890
三条分别对应 Windows、macOS 和 Linux,端口号换成你自己的 mixed-port。没有任何输出就是没人在监听,内核压根没起来;有输出但进程名既不是 mihomo 也不是客户端,说明端口被别的程序占了。这种时候客户端经常是静默失败,界面上一切正常。把 mixed-port 改成 7891 这类没人用的号,重启内核再试。
系统代理指向的地址端口对不对
Windows 在「设置 → 网络和 Internet → 代理」,macOS 在「系统设置 → 网络 → 代理」,看手动代理那一栏填的是不是 127.0.0.1 加客户端实际在用的端口。改过 mixed-port 但系统代理还指着旧端口,是很典型的一种:客户端显示已连接,系统却在往一个空端口发流量。
curl -x http://127.0.0.1:7890 -I https://www.cloudflare.com
curl -x socks5://127.0.0.1:7890 -I https://www.cloudflare.com
这两条绕过系统代理设置,直接把请求交给客户端端口。能返回 HTTP 状态行,说明客户端和节点都是通的,问题只在系统代理那一侧;报 connection refused 就是端口那头没人接,回上一节。
端口通了,网页还是打不开
- 策略组是空的。订阅拉取失败或节点被过滤规则清光时,组里一个节点都没有,流量命中规则后无处可去。
- 没选中节点。手动组默认可能停在第一项,而第一项是 REJECT 或者另一个空组。
- 规则最后那条
MATCH指向了不通的组,所有没被前面规则命中的流量都从这儿走。 - 翻日志找
timeout、EOF、context deadline exceeded这类字样。一直在刷,说明请求出去了但节点没回应,换个节点。
关掉客户端反而全断了
这是最常见也最让人摸不着头脑的一种。客户端崩溃或被任务管理器强杀时,来不及把系统代理设置改回去,系统还在往一个已经不存在的端口发流量,于是整机断网,重开客户端也未必清得掉。去代理设置里把「使用代理服务器」手动关掉,macOS 在网络设置的代理页里取消勾选。下次记得从托盘图标正常退出。