Clash常见问题
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 内核项目不会实现/修复以下内容:
- Snell
- Custom CA
- VMess Mux
- VLess
- KCP
- mKCP
- TLS Encrypted Client Hello
- TCP support for Clash DNS server
- MITM
当官方Go QUIC库发布时,以下内容将被考虑实施:
在本地机器上节点正常工作, 但在路由器或容器中不起作用
您的系统可能未与世界时间同步。请参考您的平台关于时间同步的文件 - 如果时间不同步,某些协议可能无法正常工作.
规则匹配的时间复杂度
请参考这个讨论: #422
Clash Premium 无法访问互联网
您可以参考这些相关讨论:
错误: 不支持的 RULE-SET 规则类型
如果您遇到了这个错误信息:
1 |
|
您正在使用 Clash 开源版。规则 Providers 目前仅在 免费 Premium 内核 中可用。
DNS 劫持不起作用
由于 tun.auto-route
不会拦截局域网流量,如果您的系统 DNS 设置为私有子网中的服务器,则 DNS 劫持将不起作用. 您可以:
- 使用非私有 DNS 服务器作为系统 DNS,如
1.1.1.1
- 或者手动将系统 DNS 设置为 Clash DNS (默认为
198.18.0.1
)