大多数「打不开」「很慢」「走错线路」的问题,在 连接 和 日志 两个页面里都能找到直接答案。学会看这两个页面,比在网上到处搜有用得多。
连接页:每一列是什么意思
打开左侧 连接(Connections),你会看到一个实时滚动的表格:
| 列 | 含义 | 怎么用 |
|---|---|---|
| 主机 / Host | 目标域名或 IP | 找你要排查的那个网站 |
| 规则 / Rule | 命中了哪条规则 | 最有价值的一列 |
| 策略 / Chain | 最终走了哪个节点或 DIRECT | 确认是直连还是代理 |
| 进程 / Process | 发起连接的程序 | 找出是谁在偷偷联网 |
| 上传 / 下载 | 这条连接的流量 | 找出谁在跑流量 |
| 时间 | 连接建立时长 | 长连接会一直挂着 |
最常用的场景:确认某网站走了哪条线
比如你想知道 github.com 到底走了代理没有:
看「策略」列:
- 显示 DIRECT → 直连,没走节点
- 显示 节点名 或 策略组名 → 走了代理
- 显示 REJECT → 被规则拦截了(通常是广告拦截规则)
看「规则」列,能知道是因为哪条规则做出的判断,比如 GEOIP,CN 说明是因为目标 IP 属于中国大陆才判成直连的。
场景二:找出谁在偷跑流量
按「下载」列排序,看谁的流量最大。「进程」列会告诉你是哪个程序。
常见的意外发现:某个软件在后台自动更新、云盘在同步、或者某个网页开着自动播放的视频。
场景三:连接数异常多
正常浏览时连接数在几十条量级。如果看到成百上千条并且不断增长:
- 可能是某个应用在疯狂重连(看进程列)
- 可能是 P2P 类软件(BT、迅雷)
- 可能是规则配置有问题导致连接建立后立刻失败又重试
点右上角的「关闭所有连接」可以一次性清空,观察哪些会立刻重新出现。
日志页:调对级别再看
日志 页面右上角可以切换级别:
常见日志报错对照表
| 日志内容 | 中文含义 | 怎么处理 |
|---|---|---|
dial tcp x.x.x.x:443: i/o timeout | 连接节点超时 | 节点不通,换一个测试 |
connection refused | 目标主动拒绝 | 节点端口错误或服务已停 |
unsupported proxy type: xxx | 内核不认识这个协议 | 更新 Mihomo 内核 |
unmarshal error / yaml: line N | 配置文件语法错误 | 检查订阅或自定义配置的 YAML |
no such host / DNS resolve failed | 域名解析失败 | DNS 配置问题,见下 |
EOF | 连接被对端中断 | 节点不稳定或被限速 |
context deadline exceeded | 超时(内部) | 通常是节点响应太慢 |
Start initial provider 后卡住 | 规则集下载不下来 | 网络问题,或规则集地址失效 |
用日志和连接页解决三个典型问题
问题一:「某网站打不开」
问题二:「速度很慢」
先在连接页看这条连接的实际下载速率。
- 速率本身就低 → 节点或线路问题,换节点测试
- 速率正常但页面加载慢 → 可能是 DNS 慢,或者页面本身有很多资源走了不同线路
日志切 debug,看 DNS 查询耗时。如果大量 DNS 请求耗时几百毫秒,说明 DNS 配置需要优化。
问题三:「明明开了代理,但某软件还是走直连」
在连接页的「进程」列找这个软件。
- 找不到它的连接 → 这个程序不读系统代理,需要开 TUN
- 找到了但策略是 DIRECT → 规则把它判成直连了,看「规则」列是哪条规则命中的
- 找到了且策略是节点,但软件还是提示连不上 → 软件本身的问题,或者节点不支持它需要的协议(比如 UDP)
一个进阶技巧:用连接页反推规则问题
假设你发现 api.example.com 走了直连但你想让它走代理。在连接页看到「规则」列显示 GEOIP,CN。
这说明:这个域名解析出来的 IP 在中国大陆境内,所以被 GEOIP 规则判成了直连。
修正方法是在 GEOIP 规则之前插入一条更具体的规则:
prepend-rules:
- DOMAIN-SUFFIX,example.com,🚀 节点选择因为规则是从上往下匹配的,插到前面就会优先命中。
导出日志给别人看
遇到搞不定的问题需要求助时,提供有效信息能大幅提高解决效率:
小结
- 连接页的「规则」和「策略」两列,是排查分流问题的黄金组合
- 日志切 debug 能看到 DNS 和规则匹配细节,排查完切回 info
- 大部分「打不开」问题,看一眼连接页就知道是没走代理、走错线路、还是节点本身不通