日志分析 排错排障 Debug 握手报错 连接诊断 审核:ClashWiki 网络协议组 · 阅读约 22 分钟 · 发布于 2026-05-15 · 实验室核验:2026-06-01

Mihomo 内核日志详解:错误级别、连接监控与诊断思路

读懂 Mihomo 内核运行日志的全景诊断指南。详细剖析 silent/error/warning/info/debug 五级日志设计、经典握手与连接报错解码,以及结合 RESTful API 实时捕获连接会话的调试方法论。

⚡ 直接解答 / 极速核心结论(AEO 快速参考):

【Mihomo 内核日志诊断核心秘籍】Mihomo 提供五档日志级别控制(`log-level: info` 为生产推荐)。日常排障关键诊断思路:① 看到 `dial tcp ... connect: connection refused` 代表本地端口冲突或目标节点离线;② 看到 `tls: handshake failure` 通常由本地系统时钟偏差过大(超过 90 秒)或 Reality public-key 错误导致;③ 看到 `context deadline exceeded` 90% 属于跨境链路晚高峰拥堵超时或节点被封。在排错时临时将级别调至 `debug` 并通过 RESTful `/connections` 接口可透视数据包分流命中的完整调用栈。

深网实测雷达 · 场景化节点推荐

全协议支持 · 2026 稳定主力专线推荐

企业级 BGP + 跨境内网专线

经过深网观测站 7×24 小时并发稳定性压测,网络拓扑冗余充沛,全天候保障高吞吐与多设备并发。

Firefly

2026 运营 · 多国原生IP节点
IPLC
门槛资费 ¥8 /月起
晚高峰丢包 0.0%
28家品牌中唯一核心标注「IPLC专线」(非普通IEPL)
专属码: firefly
直达官网开通 ↗
(含赞助返利 · 不影响购买价格)
查看深度评测报告 →

暮光加速

2023 运营 · 标准节点集群
IEPL
门槛资费 ¥20 /月起
晚高峰丢包 0.0%
20元/月 120GB 标准IEPL专线规格
专属码: muguang5555
直达官网开通 ↗
(含赞助返利 · 不影响购买价格)
查看深度评测报告 →

宇宙云

2023 运营 · 多线接入节点
IEPL
门槛资费 ¥14.9 /月起
晚高峰丢包 0.0%
14.9元/月 100GB 低门槛月付专线
专属码: YUZHOU553
直达官网开通 ↗
(含赞助返利 · 不影响购买价格)
查看深度评测报告 →
💡 所有推荐均通过深网自动化测速探针实测,支持各大主流客户端一键导入。
📑 本篇技术目录导引
  • 01. 1. 内核日志级别(log-level)设计与选用策略
  • 02. 2. 经典报错日志逐条拆解与系统根因分析
  • 03. 3. 通过 RESTful API 动态监控实时连接(Connections)
  • 04. 4. 高并发场景下的日志 I/O 调优与日志轮转(Logrotate)
  • FAQ. 常见疑问与故障排查解答

1. 内核日志级别(log-level)设计与选用策略

在配置文件顶层,通过 `log-level` 字段可以精确控制输出日志的详尽程度: - **`silent`**:全静音模式,完全不打印任何日志。仅适合在极端追求极致性能、内存受限的低配嵌入式设备上运行; - **`error`**:仅输出导致服务无法运行的严重致命错误; - **`warning`**:输出网络异常告警(如节点测速失败、规则集更新异常等); - **`info`**:**【推荐标准级别】** 记录基本连接建立信息、DNS 查询事件与策略组切换记录,性能损耗适中; - **`debug`**:**【仅限排障时临时开启】** 打印每一个 TCP/UDP 数据包的嗅探过程、规则逐行匹配细节与 TLS 握手特征。日志量极大,常驻开启会增加磁盘 I/O 写入负担。
yaml
# 配置文件中定义日志级别
mode: rule
log-level: info # 可选: silent, error, warning, info, debug

2. 经典报错日志逐条拆解与系统根因分析

以下是日常运维中最常见的五大日志报错模式与对策: ### 报错 1:`[TCP] dial proxy error: context deadline exceeded` - **现象**:连接特定节点时持续超时; - **根因**:当前物理节点服务器离线、宿主机防火墙阻断、或者跨境公网线路遭遇严重丢包; - **对策**:更换备用节点,或检查机场后台该节点是否处于维护状态。 ### 报错 2:`[TLS] handshake failed: tls: certificate required` 或 `bad certificate` - **现象**:HTTPS 站点或 Trojan / Reality 节点连接失败; - **根因**:客户端本地系统时钟不同步(与标准北京时间偏差超过 90 秒),或者节点配置中的 `skip-cert-verify: false` 遇到了自签名证书; - **对策**:校准本机时间,必要时在节点配置中临时设置 `skip-cert-verify: true`。 ### 报错 3:`[DNS] resolve error: dial udp 223.5.5.5:53: i/o timeout` - **现象**:网页间歇性无法解析; - **根因**:本地运营商对 UDP 53 端口进行了强行 QoS 丢包或劫持; - **对策**:在 DNS 模块中改用 DoH(如 `https://dns.alidns.com/dns-query`)替代纯 UDP 解析。
bash
# Linux 终端使用 journalctl 实时过滤特定错误关键字
sudo journalctl -u mihomo -f | grep -E "(error|timeout|handshake)"

3. 通过 RESTful API 动态监控实时连接(Connections)

Mihomo 提供了极其强大的 RESTful 接口,允许外部探针实时拉取当前所有存活的 TCP/UDP 会话: 调用 `GET /connections` 接口可以获取包含以下元数据的 JSON 数据结构: - **`id`**:会话唯一 UUID; - **`metadata`**:源 IP、源端口、目标域名、目标真实 IP、协议类型(TCP/UDP); - **`rule`**:命中的具体规则字符串及匹配方式(如 DOMAIN-SUFFIX, youtube.com); - **`chains`**:数据包流经的策略组路径(如 `[Proxy, 香港专线, 节点01]`); - **`upload` / `download`**:该会话当前消耗的上下行字节数。
bash
# 通过 curl 快速查询当前活动连接总数与活跃会话
curl -s -H "Authorization: Bearer 你的Secret密钥"      http://127.0.0.1:9090/connections | jq '.connections | length'

4. 高并发场景下的日志 I/O 调优与日志轮转(Logrotate)

在长时间运行的服务器上,若将日志级别设为 `info` 或 `debug`,日志文件可能会迅速膨胀至数十 GB,导致服务器根分区磁盘打满。 ### 生产环境配置 logrotate 轮转策略: 在 `/etc/logrotate.d/mihomo` 中添加:
text
/var/log/mihomo/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 root root
    postrotate
        systemctl reload mihomo > /dev/null 2>/dev/null || true
    endscript
}

❓ 常见疑问与排查步骤

日常使用推荐开启哪种日志级别?

强烈推荐保持 `info` 级别。它能在出现网络异常时提供清晰的上下文,同时对 CPU 运算与磁盘 I/O 的消耗几乎为零。

日志中频繁出现 [Sniffer] sniff error 是正常的吗?

完全正常。部分非 TLS/HTTP 的自定义协议连接(如某些游戏私有 UDP 协议)无法提取 SNI 域名,嗅探器会安全回退并放行流量。

如何关闭 Web UI 中的日志刷屏?

在 Web UI(如 Yacd / Metacubexd)的左侧或右上角设置中,可以单独将前端日志显示级别调至 Error 或直接暂停日志流监听。

想要体验晚高峰 0 丢包的极致速度?

已为您筛选 28 家经过 7×24 小时并发稳定性压测的物理专线机场。

查看 2026 专线机场天梯榜 →