allowInsecure=1 到底有多危险,为什么不该图省事打开
节点链接里的 allowInsecure=1 关闭了 TLS 证书校验,等于让 TLS 只剩加密、失去身份验证。本文说明它具体放弃了什么保护、什么情况下会被利用,以及为什么「反正流量已经加密了」这个想法不成立。
工具告诉你哪里错了,这里告诉你为什么会错。报错含义、字段原理、协议差异、安全风险——搞懂这些,下次遇到同类问题你自己就能判断,不用再到处翻零碎的帖子。
节点链接里的 allowInsecure=1 关闭了 TLS 证书校验,等于让 TLS 只剩加密、失去身份验证。本文说明它具体放弃了什么保护、什么情况下会被利用,以及为什么「反正流量已经加密了」这个想法不成立。
同一个订阅地址,Clash 拿到的是 YAML,v2rayN 拿到的是 Base64 节点清单——服务端按请求头里的 User-Agent 决定返回哪种格式。理解这一点,就能解释「链接没换、换个客户端就报错」这类问题,也知道该怎么验证。
这条报错来自客户端的 TLS 证书校验:先用系统自带的验证器失败,退回到内置根证书列表仍然失败。它几乎不是节点的问题,而是系统时间、根证书库、SNI 或中间证书链出了状况。本文逐条说明成因与排查顺序。
有的机场发的订阅链接是一次性的,在浏览器里点开一次就作废。而几乎所有在线校验、转换工具的第一步都是「打开订阅地址复制内容」——一测就把链接烧掉了,回头导入客户端才发现报错。本文说明怎么判断、正确顺序是什么、烧掉了怎么办。
机场页面写着 60 个节点,解码出来却只有 52 个能用。差额通常来自三处:服务器加端口完全相同的重复条目、解析失败的坏行,以及非节点的公告行。本文说明怎么逐项对上账。
打开订阅地址,有人看到一整块乱码,有人看到一行行 vmess:// 开头的链接。两种都是正常的订阅内容,区别只在机场有没有做 Base64 编码。本文说明两种形态的由来、各自的判断方法,以及编码与加密的区别。
Clash 配置、节点分享链接、订阅返回的内容,三样东西粘在输入框里都像乱码,但要用不同的工具处理。本文给出不看工具也能自己分辨的三个特征,以及第四种情况——订阅地址本身该怎么办。
解析器只认节点分享链接。报「不认识的协议」时,粘进去的往往是订阅地址、一键导入链接或网页地址——它们长得像链接,作用却完全不同。本文列出几种常被混淆的链接,并说明各自该怎么处理。
Shadowsocks 分享链接历史上有两种写法:整段 Base64 的旧格式,和把服务器地址留在明文的 SIP002 新格式。解析器报「既不是 base64 也不是 userinfo@host:port 结构」时,多半是两种格式被拼在了一起或复制不全。
vmess 链接是 Base64 编码的一段 JSON,所以解析可能在两个不同的阶段失败:Base64 本身解不开,或者解开了但内容不是合法 JSON。两种报错指向的原因完全不同,本文说明各自的成因与排查顺序。
校验器提示「一个键的内容换行了,但没有用正确的续行写法」,多半是长字符串被编辑器自动折行、或者从网页复制时带进了换行。本文说明 YAML 里值换行的三种合法写法,以及它们的区别与选择。
校验器提示「配置最外层应该是 proxies / proxy-groups / rules 这样的键,而不是数组或纯文本」,通常不是配置坏了,而是你粘进来的只是整份配置里的一小段。本文说明 Clash 配置的顶层结构长什么样,以及三种典型的粘错情况。
端口在 YAML 里写成 port:443 是数字,写成带引号的 "443" 就成了字符串。多数客户端能容忍这个差别,但部分版本会解析失败,报出与端口毫无关系的错误。本文说明两者的区别、什么时候真的会坏,以及端口越界时的报错含义。
配置校验器报「节点名重复」时,配置往往还能跑起来,所以容易被忽略。但 Clash 用 name 作为节点的唯一标识,重名意味着引用它的地方只会拿到其中一个,而你无法预期是哪一个。本文说明它的后果与三种常见来源。
一份配置在 A 客户端能跑、在 B 客户端报错,多半是内核不同。本文说明 Clash 原版、Premium 与 mihomo 的关系、几个常见的字段级差异,以及为什么校验工具会把这类差异标为提醒而不是错误。
本站的工具要的是订阅返回的内容而不是订阅地址。本文用三种方式说明怎么拿到它:浏览器直接打开、客户端里复制、命令行获取,以及每种方式常见的坑。
订阅地址不只是一个下载链接。拿到它的人可以看到你的套餐、剩余流量,并且能直接使用你付费买的节点。本文说明它的实际权限范围、常见的泄露途径,以及泄露之后该怎么办。
在浏览器里打开机场订阅地址,看到的往往是一长串没有换行的字符。那不是加密,是 Base64 编码的节点清单。本文说明它的结构、为什么要编码、以及三种常见的订阅返回格式怎么区分。
解析 vmess 链接时看到 alterId 非零并被标为过时,原因是 VMess 早已从 MD5 认证换成了 AEAD。本文说明 alterId 的历史作用、为什么它被废弃、以及遇到非零值时该怎么处理。
MATCH 是 Clash 规则列表的兜底项,决定没有命中任何规则的流量走哪里。不写它不一定报错,但会导致「大部分网站正常、个别网站莫名其妙不走代理」这类难查的问题。本文说明它的作用、白名单与黑名单两种写法,以及规则顺序为什么重要。
Clash 配置提示缩进不一致、mapping items 未对齐,但肉眼看每一行都对得整整齐齐——这种情况几乎都是 Tab 和空格混用。本文说明 YAML 为什么禁止 Tab 缩进、怎么在编辑器里揪出它,以及另外两种视觉上看不出的缩进问题。
Clash 启动失败提示策略组里的某个节点找不到,本质是 proxy-groups 里写的名字和 proxies 里的 name 没有完全一致。本文列出四种容易忽略的不一致来源,以及换订阅后批量失效的处理办法。
Clash 或 mihomo 提示 proxies 不是数组、无法解析节点列表时,问题几乎都出在 YAML 的短横线和缩进上。本文说明这个报错的确切含义、四种常见成因,以及每种情况的正确写法。
VMess 和 VLESS 用 UUID,Trojan 和 Shadowsocks 用密码,看起来是两种东西,泄露后果却完全一样。本文说明各协议凭证的形式差异、为什么 UUID 不能当成「不敏感的 ID」,以及分享配置前该抹掉什么。
节点配置里的 network 字段决定数据怎么传。本文对比 tcp、ws、grpc、h2 四种的实际差别:谁能过 CDN、谁延迟低、谁在弱网下更稳,以及各自需要配哪些额外字段。
节点配置里的 sni 字段决定 TLS 握手时报哪个域名。它是明文传输的,也正因如此成了最容易出问题的一项。本文说明它的作用、和 Host 的区别,以及三种典型的配错场景。
节点链接里出现 security=reality、pbk、sid 这些参数时,说明它用的是 Reality。本文说明它借用真实网站 TLS 特征的原理、为什么不需要自己的域名和证书,以及 pbk / sid / fp 各是什么。
Clash 的规则从上往下逐条匹配、命中即停,所以一条宽泛的规则放在前面,会让它后面所有具体规则永远不执行。本文说明正确的排列顺序、GEOIP 为什么必须靠后,以及怎么验证某个域名到底命中了哪条。
四种策略组类型经常被混用,尤其是 fallback 和 url-test。本文说清每种的实际行为、适合的场景,以及两个高频误解:load-balance 不会让下载变快、tolerance 不设会导致节点反复横跳。
这里的文章都围绕一件事:把工具查出来的结果讲明白。 工具告诉你「第 12 行的 proxies 不该是字符串」,文章告诉你这个字段为什么必须是数组、 写错之后客户端会怎么表现。两边是配套的—— 遇到具体问题建议先用 对应工具 定位,再回来看原理。