外观
怎么看代理客户端日志:定位连接失败的原因
结论先说:连不上时先打开客户端的“日志”页面,把日志级别调到 info,复现一次失败,然后找带 error、warn 的行,按其中的关键词(timeout、handshake、x509、no such host 等)对照本文第 4 节判断原因。看完就把级别调回去,分享给别人前务必遮挡订阅地址和服务器信息。
实机核验与界面说明(核验日期:2026-10-09)
本文已基于最新主流客户端完成日志检索与排障流程的实机核验。
1. 日志能告诉你什么
日志是客户端和内核在运行时写下的记录,每一行通常包含:时间、级别、事件内容。连接相关的行一般会写明:
- 哪个程序或地址发起了连接(来源);
- 要访问的目标域名和端口;
- 命中了哪条规则、走了哪个代理组或节点;
- 如果失败,失败在哪一步、报了什么错。
所以日志能帮你区分几类完全不同的问题:节点连不上、节点能连但握手失败、域名解析失败、规则把流量送错了地方。这些问题的处理方法完全不同,仅凭“打不开网页”这一现象很难区分。
2. 各客户端的日志入口
| 客户端 | 日志在哪里看 | 日志级别在哪里调 |
|---|---|---|
| Clash Verge Rev | 左侧导航「日志」页面 | 「设置」中 Clash 相关设置的「日志等级」;另有「应用日志等级」 |
| v2rayN | 主界面下方的信息区域 | 「设置」→「参数设置」中的「启用日志」「日志等级」「启用日志存到文件」 |
| v2rayNG | 侧边菜单中的「Logcat」 | 设置中的「日志级别」 |
| FlClash | 「工具」中先打开「日志捕获」,再进入「日志」 | 设置中的「日志等级」 |
| Hiddify | 「日志」页面,可「分享核心日志」「分享应用日志」 | 「设置」→「通用」→「日志级别」 |
| Shadowrocket / Stash | 应用内的日志或请求记录页面(位置以当前版本为准) | 以应用设置为准 |
几点补充:
- Clash Verge Rev 的「日志」页面支持按时间正序或倒序显示;设置的高级部分有「日志目录」按钮,可以直接打开日志文件夹。界面说明「日志等级」仅对日志目录中 Service 文件夹下的内核日志文件生效。
- v2rayN 开启「启用日志存到文件」后,日志会保存在程序文件夹中,适合需要发给别人看的情况。
- FlClash 的「日志捕获」关闭时会隐藏日志入口,排查前先打开;日志可以导出。
- v2rayNG 的 Logcat 页面提供刷新、复制、清除和分享日志的按钮。
3. 日志级别怎么选
不同内核的级别名称略有差别,但含义相同,从少到多大致是:
| 级别 | 记录内容 | 什么时候用 |
|---|---|---|
| silent / none | 不记录 | 不建议,出问题时没有线索 |
| error | 只记录错误 | 平时可用 |
| warning / warn | 错误 + 警告 | 日常推荐 |
| info | 加上每条连接走了哪条规则、哪个节点 | 排查问题时用 |
| debug / trace | 非常详细的调试信息 | 只在开发者或客服要求时开 |
排查时的标准做法:
- 把级别调到
info; - 清空现有日志(如客户端提供“清除”按钮);
- 复现一次失败,例如打开那个打不开的网站;
- 立即查看或导出日志;
- 排查完把级别调回
warning。info和debug会产生大量记录,长期开着会占用资源,手机上还会更耗电。
4. 常见报错关键词对照
下面的关键词来自常见内核(mihomo、Xray、sing-box)的英文报错,不同客户端措辞会略有差异,抓住核心词即可。
超时:节点连不上
常见写法:i/o timeout、context deadline exceeded、dial tcp ... timeout、connect timed out
含义:客户端在规定时间内没能连上节点服务器。可能是节点故障、本地网络对该线路不通,或套餐已到期导致服务端拒绝。
怎么办:换几个不同地区的节点对比。全部超时看 机场所有节点都超时,应该按什么顺序排查;只有部分超时看 部分节点连不上、其他节点正常怎么办。
连接被拒绝或被重置
常见写法:connection refused、connection reset by peer、EOF、unexpected EOF、broken pipe
含义:能找到服务器,但连接被对方拒绝或中途断开。常见于节点端口变更、节点维护、协议参数与服务端不一致(订阅过期没有更新)。
怎么办:先更新订阅再试;仍失败且集中在某几个节点,属于节点问题,联系机场。频繁出现在使用过程中,看 代理频繁断线怎么排查。
握手失败
常见写法:handshake failed、tls: handshake failure、failed to handshake、invalid user、authentication failed
含义:连上了服务器,但在加密协商或身份验证阶段失败。常见原因有:
- 系统时间不准:部分协议(例如 VMess)对时间敏感,设备时间偏差较大会导致验证失败;
- 订阅中的账号信息已失效:重置过订阅或套餐变更后没有更新;
- 客户端内核不支持该协议参数:客户端版本太旧。
怎么办:把设备时间设为自动同步,更新订阅,再把客户端升级到最新版。
证书错误
常见写法:x509: certificate has expired or is not yet valid、x509: certificate signed by unknown authority、certificate is valid for ..., not ...
含义:TLS 证书校验没有通过。“expired or is not yet valid”最常见的原因是设备时间错误;其余情况多是节点证书或域名配置问题。
怎么办:先校准设备时间。时间正确仍报错,属于机场侧配置问题,按 向机场客服反馈故障,应该提供哪些信息 整理信息反馈。不要为了绕过报错去开启“跳过证书验证”一类选项,这会降低连接安全性。
DNS 解析失败
常见写法:no such host、lookup ... failed、dns resolve failed、server misbehaving、all DNS requests failed
含义:域名没能解析成 IP 地址。可能发生在两个地方:解析节点服务器的域名失败(表现为所有节点不可用),或解析要访问的网站失败(表现为部分网站打不开)。
怎么办:先把客户端的 DNS 设置恢复默认,关闭其他会修改 DNS 的软件。原理见 DNS 是什么?代理里的 DNS 设置怎么理解,表现为“已连接但打不开”时看 显示已连接但打不开网页怎么办。
规则匹配:流量走错了地方
这类日志不是报错,而是 info 级别下每条连接的记录。以 mihomo 内核为例,大致格式是:
text
[TCP] 来源地址 --> example.com:443 match DomainSuffix(example.com) using 节点选择[某节点]意思是:访问 example.com 的连接命中了 DomainSuffix 规则,交给“节点选择”组里的某个节点处理。看这类记录可以回答:
- 某网站打不开,是不是被规则送去了直连(
DIRECT)或拦截(REJECT); - 是否命中了兜底规则(
MATCH/Final),说明前面没有专门规则; - 流媒体、AI 服务是否走了你预期的代理组。
怎么办:规则不符合预期时,按 代理客户端的规则与分流怎么设置 调整;只有部分网站异常时看 开了代理后部分网站打不开怎么办。
其他常见提示
| 关键词 | 含义 | 处理方向 |
|---|---|---|
address already in use、bind: ... | 本地端口被其他程序占用 | 关闭其他代理客户端,或修改客户端端口 |
permission denied、需要管理员权限 | TUN 或服务缺少权限 | 见 代理客户端 TUN 模式怎么开 |
订阅下载返回 403、404 或解析失败 | 订阅链接失效或格式不对 | 见 订阅更新失败怎么办 |
5. 分享日志前先遮挡敏感信息
向机场客服或在社区求助时,日志很有用,但原始日志可能包含敏感信息:
| 需要遮挡的内容 | 为什么 |
|---|---|
| 订阅地址(含 token 的完整链接) | 别人拿到就能使用你的套餐 |
| 节点服务器地址、端口、UUID、密码 | 属于你账号的连接凭据 |
| 本机局域网 IP、公网 IP | 涉及个人网络信息 |
| 访问过的网站域名 | 涉及个人隐私,只保留与问题相关的几行 |
做法建议:
- 只截取相关片段:复现前清空日志,只发失败前后的几十行;
- 逐项替换:把订阅 token、服务器地址、UUID 替换成
***,节点名称可以保留; - 截图也要检查:截图中的订阅卡片、节点详情同样可能露出地址;
- 发给机场客服时:通过工单等官方渠道发送,不要发到公开群里。
万一已经把订阅地址发了出去,按 订阅链接泄露了怎么办 立即重置。整理求助信息的完整清单见 向机场客服反馈故障,应该提供哪些信息。