Shadowsocks #
SS / Shadowsocks 2022Shadowsocks 是加密代理协议家族,配置通常包含服务端地址、端口、密码和加密方法。传统 AEAD 与 Shadowsocks 2022 的方法名、密钥要求不相同,不能只替换名称就当成升级。导入后提示不支持加密方式时,先查内核支持范围,不要反复修改端口碰运气。
概念检修 / TERM INDEX
从订阅里的字段,到客户端里的开关:先分清名词所在的层次,再调整配置。这里按五类工单整理常见概念,每张术语卡都可用标题旁的链接单独定位。
Shadowsocks 是加密代理协议家族,配置通常包含服务端地址、端口、密码和加密方法。传统 AEAD 与 Shadowsocks 2022 的方法名、密钥要求不相同,不能只替换名称就当成升级。导入后提示不支持加密方式时,先查内核支持范围,不要反复修改端口碰运气。
两者是不同协议,常使用 UUID 标识用户,但配置不能仅凭 UUID 相同就互换。VMess 带有协议层加密机制,VLESS 本身不负责载荷加密,实际安全性取决于 TLS 等配套设置。排查时还要核对传输方式、服务器名称及路径,不能只看协议类型这一栏。
Trojan 通常在 TLS 连接上承载代理数据,认证信息常见为密码。地址、端口与密码正确之外,证书验证和服务器名称也必须匹配;使用 IP 连接时尤其要留意服务器名称字段。证书错误应先检查时间、名称和证书链,关闭验证并不是合适的常规修复。
这是两种基于 QUIC 的不同代理协议,都依赖底层 UDP 网络可达。QUIC 的拥塞控制与多路复用可能适合部分网络,但不能据此推断一定比 TCP 方案快,也不能保证更省电。如果当前网络限制 UDP,网页能直连并不能证明这类协议也能建立连接。
TCP、UDP 是基础传输方式,WebSocket 等是承载方式,TLS 则提供加密和身份验证,这些名字不处在同一层。SNI 用于在 TLS 握手中指明目标服务器名称,不等同于节点显示名称。导入配置时,协议、承载方式、路径及 TLS 参数需要作为一整组核对。
内核负责协议连接、规则匹配和 DNS 处理,客户端负责图形界面、订阅管理及系统集成。相似界面不代表相同功能,同一客户端也可能在更新后换用不同版本的内核。遇到字段不支持时,应记录客户端名称和实际运行的内核版本,而不是只报一个 Clash 名称。
mihomo 是延续 Clash 配置体系的代理内核,与 Clash.Meta 名称有历史关联,并非某个固定的桌面或手机应用。它支持的协议和配置扩展与早期原版 Clash 存在差别,因此旧教程中的兼容结论不能直接套用。选择客户端时,还应确认它是否把所需内核功能暴露到界面或覆写设置中。
系统代理向操作系统登记本地代理地址,例如指向客户端监听的 HTTP 或混合端口。只有遵循这项设置的应用通常才会使用该入口,部分游戏、命令行工具和自带网络栈的应用可能绕过它。退出客户端后若网络异常,应检查系统是否仍保留已停止监听的代理地址。
TUN 通过虚拟网络接口和路由设置接收 IP 流量,常用于处理不遵循系统代理的应用。启用时通常需要额外权限,也可能与其他 VPN、虚拟网卡或路由配置发生冲突。TUN 只是接管入口,连接进入内核后仍按规则处理,不等于所有目标都使用代理节点。
规则与分流
查分流问题时,同时看命中规则与最终出口。规则匹配正确,不代表它引用的代理组已经选对节点。
规则分流按域名、IP、进程等条件决定连接使用哪个策略,通常从上到下检查,先命中就采用。范围更具体的例外规则一般应放在宽泛规则之前,否则后面的例外可能没有机会生效。检修时先看连接记录中的命中项,再检查规则条件,而不是一开始就更换节点。
规则模式依照规则表选策略,全局模式把交给内核处理的连接交由全局策略处理,直连模式则以直连为主。全局模式不会自动捕获原本没有进入内核的流量,而且全局策略本身也需要正确选择。临时切换模式适合缩小问题范围,排查结束后应恢复原来的分流方式。
代理组把节点或其他策略组织成一个可供规则引用的出口。select 常用于手动选择,url-test 按探测结果选择,fallback 按可用性和配置顺序切换。自动选择只反映指定探测的结果,测试网址表现良好不代表所有业务网站都会同样顺畅。
DIRECT 和 REJECT 分别是直连与拒绝策略,MATCH 则是无需额外匹配条件的规则类型,三者不能混为同一类。比如 MATCH,PROXY 表示剩余连接交给名为 PROXY 的策略,该名称必须真实存在。MATCH 通常放在末尾,否则后续规则会被提前截住。
GeoIP 用 IP 数据集进行分类,GeoSite 用域名集合进行分类,两者解决的不是同一个问题。数据文件可能滞后,网站也可能使用跨区域的 CDN,因此分类结果不能直接证明网站归属或节点质量。命中异常时应核对数据库来源、更新时间和规则顺序,更新方法见GeoIP 与 GeoSite 笔记。
DNS 与网络
解析成功、连接成功、下载速度达标是三件事。先定位失败发生在哪一步,再决定是否切换 DNS 模式。
DNS 把域名解析为 IP 地址等记录,应用通常需要这些结果才能建立连接。代理连接与 DNS 查询可能走不同路径,能连上节点不代表解析链路已经正确。排查时应区分解析超时、返回地址异常和解析后连接失败,三种情况需要检查的设置并不一样。
Fake-IP 向应用返回映射地址,由内核维护该地址与域名的对应关系;198.18.0.1/16 是常见配置地址段,并不是目标网站的真实地址。部分依赖真实解析结果的应用可能需要通过 fake-ip-filter 排除相应域名。看到保留地址不一定是故障,应结合应用是否可用、DNS 请求是否经过内核判断。
redir-host 通常把真实解析地址返回给应用,与 Fake-IP 的映射方式不同。它在某些依赖真实 IP 的应用中较易兼容,但解析耗时、域名关联和共享 IP 等情况仍会影响实际处理。切换模式后,应用与系统可能还保留旧缓存,应清理相关缓存或重建连接后再比较结果。
DNS 泄漏指查询偏离预期解析路径,例如原本希望由指定解析器处理,却仍由其他解析器发出请求。浏览器安全 DNS、应用内置解析、系统设置和 IPv6 都可能改变路径,不能只看一个开关判断。检测页面展示的解析器地址也可能属于转发或公共解析服务,需要结合实际查询路径解释。
延迟表示特定探测过程的耗时,吞吐量表示单位时间能够传输的数据量,两者不能画等号。客户端的 HTTP 探测可能包含握手和响应等待,并不等于简单的 ICMP 往返时间;缓存、测试地址及网络波动也会影响结果。比较节点时应保持测试条件一致,并用真实业务连接复核,避免只凭一个数值作决定。
订阅是通过地址获取并更新配置或节点资料的交付方式,不是代理协议本身。链接可能返回完整 YAML,也可能只是节点列表,是否能直接导入取决于客户端支持的格式。地址中常带账户识别信息,应按敏感资料保存,求助截图时遮盖完整链接,也不要随意提交给陌生的在线转换服务。
节点是一组连接参数,通常包括协议、服务端地址、端口及认证信息,有时还需要 TLS 与传输设置。节点显示名称只是便于识别的标签,不能据此证明物理位置、带宽或稳定性。一个订阅可以包含多个节点,而节点被加入列表也不代表已经被当前规则或代理组选中。
YAML 以缩进表达层级,是 Clash 生态常用的配置格式,通常包含监听端口、DNS、节点、代理组与规则等部分。编辑时使用空格缩进,保持同层对齐,并留意特殊字符是否需要引号。语法能被解析不代表字段一定受当前内核支持,导入错误应同时检查格式、字段名称与内核兼容性。
常见的 Base64 订阅是经过编码的节点 URI 列表,解码后可能看到按行排列的连接信息,而不是完整 Clash 配置。Base64 是编码而非加密,不能用于保护账号或密码。是否能直接导入取决于客户端的解析能力,支持某种节点协议也不意味着支持所有订阅封装格式。
Provider 把部分资源拆出来单独加载与更新:proxy-providers 提供节点集合,rule-providers 提供规则集合。资源下载成功还不够,节点集合需要被代理组引用,规则集合也需要通过相应规则调用。排查时既要看资源状态,也要看引用名称、内容格式和最终规则顺序。
覆写用于在订阅更新之外保留本地设置,例如调整 DNS、监听端口或加入自定义规则,避免直接修改下载文件后被更新覆盖。不同客户端对合并、替换及数组追加的处理不同,同一段内容不一定能跨客户端原样使用。修改完成后应检查最终生效配置,尤其留意规则插入位置与代理组名称是否一致。