历史文档适用范围
本文保留原版 Clash / Clash Premium 的历史用法,适合核对旧配置。文中的“仅 Premium”“暂不支持”及平台限制不代表当前 Mihomo 的能力;不要据此替换现用客户端的配置或运行权限命令。
使用 Mihomo 时,请对照 Mihomo 当前配置文档;图形界面、安装和授权操作请以 对应客户端的项目说明 为准。
这里保留原版 Clash 的历史问题与答复。当前使用图形客户端时,请向该客户端维护者反馈;确认属于 Mihomo 内核的问题再使用 Mihomo 问题反馈。不确定项目归属时,可先查看 客户端及项目来源;原版 Clash 的新建 Issue 入口已失效。反馈前请删除日志与配置中的订阅令牌、密码等信息。
amd64 和 amd64-v3 有什么区别?
引用自 golang/go:
在 Go 1.17 之前,Go 编译器总是生成任何 64 位 x86 处理器都可以执行的 x86 二进制文件。
Go 1.18 引入了 AMD64 的 4 个架构级别。每个级别都有不同的 x86 指令集,编译器可以在生成的二进制文件中包含这些指令:
- GOAMD64=v1(默认):基线。仅生成所有 64 位 x86 处理器都可以执行的指令。
- GOAMD64=v2:所有 v1 指令,加上 CMPXCHG16B、LAHF、SAHF、POPCNT、SSE3、SSE4.1、SSE4.2、SSSE3。
- GOAMD64=v3:所有 v2 指令,加上 AVX、AVX2、BMI1、BMI2、F16C、FMA、LZCNT、MOVBE、OSXSAVE。
- GOAMD64=v4:所有 v3 指令,加上 AVX512F、AVX512BW、AVX512CD、AVX512DQ、AVX512VL。
例如,设置
GOAMD64=v3将允许 Go 编译器在生成的二进制文件中使用 AVX2 指令(这可能会在某些情况下提高性能);但是这些二进制文件将无法在不支持 AVX2 的旧 x86 处理器上运行。Go 工具链也可能生成较新的指令,但会存在动态检查保护,确保它们只在有能力的处理器上执行。例如在
GOAMD64=v1的情况下,如果 CPUID 报告说 POPCNT 指令可用,math/bits.OnesCount 仍将使用该指令。否则,它就会退回到一个通用的实现。Go 工具链目前不会生成任何 AVX512 指令。
请注意,在这种情况下,处理器是一个简化。实际上,整个系统(固件、hypervisor、内核)都需要支持。
我的系统应该使用哪个版本?
这里是一些人们在 Clash 上使用的常见系统,以及每个系统的推荐版本:
- NETGEAR WNDR3700v2: mips-hardfloat #846
- NETGEAR WNDR3800: mips-softfloat #579
- 华硕 RT-AC5300: armv5 #2356
- 联发科 MT7620A、MT7621A: mipsle-softfloat(#136)
- mips_24kc: #192
如果您的设备未在此处列出,您可以使用 uname -m 检查设备的 CPU 架构,并在发布页面中找到相应的版本。
不会修复的问题
原版 Clash 项目当时列出以下不计划实现或修复的内容;这不代表当前 Mihomo 或其他客户端的支持情况:
当官方 Go QUIC 库发布时,以下内容将被考虑实施:
在本地机器上节点正常工作,但在路由器或容器中不起作用
您的系统可能未与世界时间同步。请参考您的平台关于时间同步的文件——如果时间不同步,某些协议可能无法正常工作。
规则匹配的时间复杂度
请参考这个讨论:#422
Clash Premium 无法访问互联网
您可以参考这些相关讨论:
错误:不支持的 RULE-SET 规则类型
如果您遇到了这个错误信息:
FATA[0000] Parse config error: Rules[0] [RULE-SET,apple,REJECT] error: unsupported rule type RULE-SET您正在使用 Clash 开源版。规则 Providers 目前仅在 Premium 内核 中可用。
DNS 劫持不起作用
由于 tun.auto-route 不会拦截局域网流量,如果您的系统 DNS 设置为私有子网中的服务器,则 DNS 劫持将不起作用。您可以:
- 使用非私有 DNS 服务器作为系统 DNS,如
1.1.1.1 - 或者手动将系统 DNS 设置为 Clash DNS(默认为
198.18.0.1)
